Wednesday, July 11, 2007

New Debugging and Stability Tools

It's been a few days since I last posted, mostly because I've been caught up with a few things, and quite frankly couldn't find anything I really wanted to sit down and write. I still have more then a week before I will be able to sit down to code a bug project so I've been slowly working at some functionality for dynamic to make it more stable, and I have some more things planned to help with debugging. The most notable change I did this week is to write some code to cleanly shutdown instead of crash. As long as the game doesn't hit an infinite loop then there is no reason why the game wont shutdown cleanly, saving all player and world data. This was implemented using a java shutdown hook. The hook allows you to create a thread that will be started when the application is terminated. For more details check out the Java Runtime Class.

The next major debugging tool I plan on writing wont happen until sometime after my next two 'weekend projects'. I am considering writing some code that would dump the state of every variable in the game when it exits prematurely (crashes). This would give me a snapshot of everything at the moment of the crash, and would be very beneficial for spotting the causes of bugs. Most importantly it will help me diagnose issues that occur when I am not around to see them, which will become an increasingly important issue as dynamic gets to the point of release.

No comments: