Today was the first day in ages when I found some time (and, to be honest, motivation – as Fallout 4 is waiting right next to me) to make some progress with the game.
I restructured the code quite a bit, introducing a room class that hosts all data and events happening on one screen of the game. I now have a basic parsing structure working:
- load in the unrefined binary data of a screen/room
- create a copy to work with
- parse unneeded content out of the copy
- parse in the starting point of the player
- parse the current state of the inventory (room)
The idea is to repeat these steps whenever the player enters a room. It always starts fresh and manipulates the data to reflect the latest state just before rendering on screen. No idea if that really makes sense and given the amount of beer I drank during the last hour it doesn’t even make much sense while I write this.
Anyway, this is what the game currently looks like (no surprises here)
Some changes to the (temporary) UI happened on the way, too.
So what does the “game” really do so far?
- I can select a screen by clicking on one of the numbers
- The screen with that number displays correctly
- Some info about the room is displayed in the blue box
- The player sprite starts at the correct position
- The player can be moved with the cursor keys
- The player’s movement is limited to the dark areas only
So essentially you can load in a room and walk around in it.
The todo list is scaringly long though
- Enter and leave rooms through the doors
- Adjust the player position to the correct door
- Trigger events when touching items
- Pickup items when possible
- Use items
- Show message screens
- Animate objects
- and so so so so soooo much more
Some stuff on the list can be beaten up with the same bat, but I wouldn’t be surprised if this requires me to rewrite 90% of what I have so far.
Anyway, progress made today, motivation in the project restored.
To be continued