Saturday, May 11, 2013

#screenshotsaturday Thunder Moon pics & notes

Here's a few shots taken during the week of work on Thunder Moon.

Here's a portal that is used in one of the missions.


Here are some neat looking beam effects. The still picture doesn't really do it justice.

This week has been a crazy one with a large amount of time spent going through all the missions, tuning them, making sure mid-mission saves work correctly, and working towards finishing the remaining few missions that are just stubbed out right now. I'm actually on the second to last mission now which is pretty exciting and I hope all these special encounters are fun for people. Of course, if missions & story isn't your thing, there is also Survival mode, which is pretty much the world without the missions to guide the gameplay, and Explore mode, which is an empty world that is designed for non-threatening exploration & construction.

I also spent a fair amount of time troubleshooting some very difficult problems with the low level serialization system. The game is an open world, with the ability for NPCs and other game units to be added and saved in the world, allowing you to return to a spot and have not only the modified world geometry but also any NPCs or special units that may have been placed there. Missions rely on the persistence to set up encounter areas. There were some problems related to units not always being deserialized correctly, which I am glad to have finally fixed and the game is more stable than ever now. I'm a big believer in good systems to build upon, and the efforts put into serialization system have really paid themselves off not only for tracking the world state, but also for all the not so obvious state data required by the inventory, missions, and character stat systems. Perhaps the best part of all is that it works with reasonable performance on the XBox, which has a notoriously slow file system that requires a specialized solution like this in order to avoid major performance problems when storing this much data.