Boy, progress is sometimes hard to measure.
The sticky notes with ‘user stories'(just small units of work really) are not moving as fast as I hoped (and sometimes they get pulled down by my cat). There also new notes appearing whenever I realise I need more then what I anticipated, but that’s to be expected.
There are good reasons for the lack of obvious progress. Before this week my game was still largely based on what I made for the Ludum Dare. It had a pretty good structure if you only have one level. If you want more levels and texts between levels you need something that is more flexible, some sort of game states. I think I have a much better structure now to accommodate an easy flow of the program. I have lots more constants, variables and there are now also more macro’s so the code becomes more readable.
For instance: the transition from the Help-screen to an introscreen that will exit to level 1 is now two lines:
1. “showscreen LVL1IntroScreen,continueWithLevel1”
2. “SetState StateInfo”
I hope to see this progress reflected in a higher speed of realising the other stories.
Another way to measure progress is how big the program is:
It’s now about 80 blocks on loading (approx. 20k). It’s uncompressed but after loading all kinds of stuff is moved around, so after playing a game the program will have left its impression on about half of all the 64k of memory. This can be optimised a lot, so no need to worry yet.
I think I have done an overhaul between 30 and 50% of the code (not including data). So there’s a lot of progress.
And lastly progress can be measured best in a more enjoyable game experience.
Sadly that is not the case. I break the game several times a day. It can sometimes take several hours to get it working again (and I use the word ‘working’ in a very broad sense).
I think my main goal for this and coming week will be to have a game with three levels that can be played till their (happy or tragic) conclusion. Polishing of text and graphics and creation of music will have to come after that. But it means that hopefully within two weeks playtesting can begin.
I know it’s not best practice to have something playable so late in the process, but I think I had to do the refactoring to be able to make changes without drowning in bugs.
I’ll end this lengthy post (TL;DNR) with a screenshot of level 2.
If you think it looks a lot like the screenshot several weeks ago, you’re right. But I can assure you: a lot has changed and been improved (no really!).
Oh: the bar you see on the side is an indication of how much screentime my program uses: it changes to grey, when my interrupt starts (where now everything happens) and changes back to red after that. The maximum now lies at 20-25%. That sounds like a lot but there are not many forseeable processor-intensive tasks to add.
If I have to, I can probably get it down to 15% by using double buffering for the scroll.