Yep. I made it.
The last gameplay screen has been implemented and for the first time I am able to play the complete game from first to last room – everything included. I wasn’t sure I would ever reach this state, therefore the satisfaction is through the roof.
The code number room was pretty difficult for me. I didn’t want to fake the view or shortcut anything and keep using the original data, not so easy. Moreover, I was stuck for way too long with my KeyboardController. It was the only piece of code I got from somewhere and I had no idea why it kept failing. In the end I had to rewrite a good portion of it, make it a proper class and it worked. On the upside, solving this issue is beneficial for the other screens left to include, so that’s something. On the downside, the code I wrote in the last two days is most likely the ugliest piece of shit ever written by anyone. I’m not exaggerating.
So, the current state:
It looks like I’m almost done, but there’s heaps of issues to take care of
- I still have no sound at all
- The title screen and the intro screen need to be implemented
- When the player dies, quit the game and go back to the title screen
- Test if everything falls apart when playing multiple rounds
- Include a better asset loader, mine is crap
And then there’s the additional stuff that I’d like to do
- Include all screens for the German version
- Create a proper start menu to choose between the versions
- Eventually do a “trainer” with a cracktro
- Setup a nice little page where the game can be played, including additional information, trivia and so on
- Offer additional features, like an inventory, turn scanlines on/off, music on/off
- do a proper code review to reduce the embarrassment this project will cause me
- Provide a hint system
And finally there’s the awesome stuff I’d like to do (but might never)
- Offer a color corrected version of the game
- Offer a version with different charset
- Do some nice artworks to download
- redo the music for the C64
- convert the game to the C64 (could be easier than this project)
- Change the Display class to render to Three.js (making this game 3D)
The list is almost discouragingly long.
But for today, I’ve won another battle.
And that’s pretty damn cool.