It’s been a while since the last dev diary, and it’s a bit of a mixed bag. Lots of things have changed, but there’s not really much to show. At the moment I’m writing a pretty hefty set of articles on the technical side of the game. There’s a lot of notes to go through so I’m not really sure when it will be ready, but it seemed like a waste to do so much work behind the scenes without sharing it.
The biggest change was the switch to a kernel based engine. It’s added a bit of overhead, and it’s probably over-engineering things, but it makes adding new functionality to the main loop a lot easier. Services can be added and removed dynamically, and can either be called every loop (like the screen renderer) or just sit in the background (like the resource database).
Once example of how useful this can be is with the debug listener. A DebugListener service object can be created and added, and it watches for changes to certain directories. Once a change is detected, it send an event so the resource manager can reload things. Because it’s added dynamically, it can be left out of non-debug releases, or even added via the debug console during runtime.