Review of productivity last week: I seemed to be getting things done, but if you look at the number of crossed off items at the top of the journal it proves otherwise. My grand total of completed list items last week was... one. Just one. And that one item, the signal system, technically still isn't finished; I have to properly unit test it, and it turns out my memory pool strategy wasn't that brilliant in any case.
Furthermore, I've had to add another three items in before I start on what I thought would be the next task, log files. I need a proper unit testing strategy, as well as a scheme for proper cross platform development. I also need to implement a good way of reading and writing files on multiple platforms.
I suppose it is expected that my initial estimate of what needed to be done was off, but I did tend to stray off from what I actually need to complete. I have to remember that this version of my game library is intended as a proof of concept or prototype, and if I want to get it completed in a month I'll need to focus on getting the bare functionality done and not worry so much about improving the implementation. That can wait until Mark Beth, the next version of the library.
I've added in the features that I had planned to do this week to the list above, even though it has bloated them out somewhat. The first milestone I'm aiming for in my engine is the sprite and collision test at the end of the list. I'm not sure I can make it this week given the large number of preceding items, but we'll see how far I get.
As an aside: I don't think I've posted my general strategy for this Diagonal Game Library yet, so all these posts might be slightly confusing (particularly with me throwing in terms like "Mark Beth".) It might be worth me posting a brief overview.
The Diagonal Game Library is a 2D game engine I'm developing for the specific sort of games I'd like to make. It has a triple purpose; to act as a learning exercise on all aspects of programming and engine design; to then act as a straightforward game system that I can use to easily whip together simple games; and to eventually have the low level structure I think I need for some of the more advanced features I'd like to experiment with.
I've currently got at least three phases slated down for the Diagonal Game Library. I've labelled them with letters from the Phoenician alphabet (I didn't think version numbers were quite appropriate, Latin/English letters are boring and Greek letters are already in use to mean something different)
Mark Aleph is the prototype version phase that I'm currently working on. Its main function is a proof of concept and to get the basics down and working together to act as a starting point for the later versions. I'm not (or at least shouldn't be) as fussed at getting everything right in this version. This phase will over when I have enough functionality to make simple games.
Mark Beth is the production version phase. The goal of this phase is to clean up the interfaces and the implementation until I have a well structured and documented basic system that I can rely on. If I decide to release the source (and I'm strongly considering that) then this will be the phase when that happens. This phase will be over when I am satisfied that the basic system is solid enough for the games I'd like to make.
Mark Gimel is the extension phase, where I start adding in some of the more advanced features I'd love to experiment with; things like dynamic music and SVG to textures. The exact nature of this phase is yet open as it's a fair way away.
As for the competition; I'm starting to get a better idea of what kind of feel I'd like to give it. Given there's been some interest in using it as a springboard for the Four Elements competition, I'm leaning towards making it a lot closer to the intent of the Experimental Gameplay Project and make the purpose more about developing an appealing prototype of a game idea in a week. This would be useful for prosepective entrants for 4E6.
I'll post more on that in the related thread once I've got my ideas in a more solid form later this week; I'm planning on spending the Sundays as my main "competition" days, but I might squeeze in an hour here and there during this week to get everything set up.