You are not signed in. You need to sign in if
you want to post.
Progress Sharing #36
STATISTICS
Total posts 30 •
Total topics 21 •
Total members 206 •
Our newest explorer is lyricoholic
izzy
Posts: 23
Joined: 1st Apr, 2015 9:15pm
Progress Sharing #36
We had a pretty good two weeks work, and did a huge amount of stuff. Most work (3 days) went into adding
Procedurally generated cave geometry
Here it is how it looks vs wireframe type. And how it works? Well, I subdivide 3D geometry in 3 pieces vertically, then subdivide each chunk in another four pieces. Each vertex is then randomly offseted on x or y coordinate. After randomization I just ensure that some vertices are on same position (start and end vertex on each z level), just to have seamless transitions between two type of walls.
On those screenshots I do only 3 different distorted type of walls, mainly because of speed. Caves look good enough, and complete level generation, with procedurally generated walls AND caves is around 0.5-2 sec.
As post processing I recalculate normals on each face, then manually darken or lighten those faces.
Lightmaps
I had some nasty lightmap issues, where certain map areas were in complete dark. Basically, this bug is some leftover from ASCII engine, when certain tiles have foreground color and black background, and it was reflected into HD engine as well. This is how it look when the bug was fixed.
Unfortunatelly, I had to change a complete lightmap handling. Although it sounds as a lot of work, it took me less than half hour :). Now I am using lighmap generation from ASCII version, and complete game started to look different. Complete level got different shade and some parts even different color. There were nice side effects like here where lava is illuminating walls, so they get reddish color (yes, ASCII version is doing the same effect). Another side effect was that water got bluish and self illuminated color. It doesn't look so bad, I will leave it for now.
Another big game change was to reduce light radius for player to 5-6 tiles. The game got some mystic feel, and it was much more pleasurable to play. Off course torches and other light sources illuminate dark part of the dungeon, so you can see far away in a straight line. The end solution will be to add torch in player's hand, so removing torch will leave player in darkness, but that is a task for stealth part of the game.
Another issue with lightmap was that transition between two tiles was not smooth. Here is slowed down example:
After fixing some math issues:
Delayed Conditional Events
One really big change was involving attacks that happen in middle of animation. Like hitting, dodging and similar. Look at this example. Barrel is destroyed on beginning of animation. This was off course normal, because everything was descended from ASCII version and in one ASCII roguelike you usually don't have animations. When actor initiated attack combat sequence looked like:
Solution was to add Delayed Conditional Events. Now the combat sequence looks like:
Now, the trick is that these Delayed Conditional Events also work in ASCII game. It was really tricky to incorporate these events into the game, to work in ASCII and HD. It works similarly to promises in javascript, only in C++ :) and without threads.
Quality of life improvements
Bug fixes