In the past two weeks, I've been working a lot on "polishing" the engine. This means investigating all sorts of bugs and problems that I had noticed, but didn't have the time to fix so far.
For example, I added support for minidumps. When the engine/program crashes, the exception gets intercepted and generates a dump file that contains a stack trace as well as local variable values. It works in release mode too, so there's no performance cost; the only restriction is that I need to keep the .pdb files associated to a release. From a user's point of view, a small dialog box pops up and asks whether a minidump should be saved or not. If agreed, it generates a file called 'minidump.dmp' near the executable. This can be packed together with the log file and sent to me for further investigations.
All future releases of prototypes, ASEToBin, StoryGen etc.. should include this minidump.
Lava experiments
On the "visual" side, I've spent a couple of hours on lava. The effect is "okay" I believe; later on, I plan to add a screen-space heat ( distortion ) effect.
The current shader samples a lava texture and combines 14 octaves at different frequencies. The last layers ( closer to the ground ) are animated, but it's quite subtle. A self-illumination term is calculated and added back additively. However, that alone isn't enough: lava emits light on the surrounding terrain; so to help a bit, I've added a bit of red-ish lighting additively, that is a function of the distance above the lava plane.
With HDRI enabled ( like in those screenshots ), and the glowing effect, it's looking rather nice. I've included day and night shots.
I'm thinking of using a similar shader ( with probably a lot of copy/paste ) for the sun surface effect.
At this point, what is worrying me the most are the z-fighting artifacts between the ocean/lava and the terrain.
I've also created a small terrain editor that allows to tweak the procedural parameters ( those were previously hardcoded ), change the frequencies, etc..