063 - Shadows

April 19, 2020

I started off the week giving a bit of thought to how to decrease the iteration time when working on assets.

Right now after editing an asset I need to run ak asset compile and then launch the game in order to see it in game.

Our ideal future is either hot reloading of those assets while I have the game running, or in certain cases being able to edit different assets and settings while I'm in the game through a world editor interface.

This initiative will require some thought and dedicated effort that I was not ready to spend.

So for now I started by adding a benchmark to the asset compilation process and seeing where I could save some time.

The bulk of the asset compilation time is spent encoding PNG files when packing texture atlases.

By parallelizing the texture atlas generation I was able to shave things down from 11 seconds to around 7.5 seconds.

I cut things short there - in the future I'll circle back and continue investing in faster asset iteration.

Making the game look better

I've decided that I'm not going to let my inexperience with applying the artistic side of my brain be an excuse for producing a low quality visual experience.

For some reason I've always had an aversion to buying a course. It's strange because I'll buy a book in a heart beat.

I haven't thought too deeply into the exact reason.

But I decided to get over it and bought a Blender course that was 90% on sale for a cool $17 and have begun working through it.

It's giving me some confidence and I'm learning some new things - but ultimately the real gains will come when I stumble into an art style or muse that has me inspired and motivated to push my own boundaries.

All in due time.


On the subject of making the game look better - I added shadow mapping.

Rendering shadows Rendering shadows in the game

The FPS dropped to a noticable choppiness. A few minutes of profiling suggests that the issue lies in the terrain rendering pipeline, but I'll need to dive deeper into that.

I decided to make some more progress on the art and gameplay before fixing up the performance.

So I'll save performance profiling as a weekend task.

Next Week

  • Plan out the first area of the game and start creating the assets

  • Need to get continuous deployment back up and running soon. I shut it off when we migrated to Kubernetes around a month ago because the old process was no longer applicable. Not having CD is leading me to not always running the entire test suite before deploying - which is slowly leading to more and more tests failing. This is pretty important to address so that quality trends upwards not downwards.

  • Make some performance optimizations over the weekend

Cya next time!