Features added to finish off the milestone:
- Music support was added to the audio module. I can now play MOD, S3M and XM file formats. Impulse Tracker IT files don't seem to work for some reason at the moment, but I can cope with the alternatives.
- Volume and panning were added to the sound effects.
I've got a "to do" list as long as your arm, and I know of several nasty performance problems due to the prototype code that I'll have to finish eventually, but I've got the full set of features I need to make a simple game. That means it's time to switch to the Mark Beth development phase.
Mark Beth - Feature Expansion and Demo Games
Mark Beth is the phase where I take the very simple and not particularly good prototype I currently have and build it up into a feature rich 2D gaming package that makes it easy for me to make the games I want to. After some refinement of my initial plan I'm making Mark Beth purely a feature expansion phase - I was originally also going to tidy up the system and lock down the interfaces, but that can wait until the next phase.
My opinion is that the only way I can properly gauge what features I need to make games with the library is to... make games with the library. Yeah, it might seem obvious, but I tended to get trapped in the featuritis stage in earlier attempts at library building and forget that I'm actually meant to be making games with this thing. What good is an extra feature if it isn't going be used?
So for Mark Beth, I'm going to resurrect an old plan I had for building a good library; to alternate between building game demos and tweaking library features. The idea is to spend just one week building a simple game based on the current feature set, with the focus on completing the game as best as I can within the time frame. Then the following week, using the knowledge I learn from making the game I can fix bugs and add features to the library in preparation for the next week, when I start on the next game. Repeat the cycle until I'm happy with the state of the library.
This week, I'll start by making a fairly standard Breakout clone, which I suspect should be doable with the current state of the library.
Better start my normal Monday; I'll start preparing the game later this evening.