I renamed the project to Hibernator and released it on Itch.
Work Since Last Devlog
- Made a big push to fill out the remaining screens and crop / cull / cap the game in terms of scope. There are now only three jump power-ups to collect, and I removed the entire top row of the map. I’m just about out of gameplay ideas that fit within the confines of the existing programmed elements.
- Implemented the food items.
- Added smaller 12×12 versions of the transporter gates for ladders and small horizontal pathways.
- Ended up using the Point Man enemy after all, though just as a very slow-moving patrol hazard, not as a jumper.
- Various graphical adjustments: tinting the blocks more blue on the underground screens, and even more on the bottom row. Cleaned up backgrounds and added detail tiles.
- Another milestone of sorts: I finally ran into performance issues with having every in-game actor being global and running all the time. (Running game logic at a stupidly high tick rate probably isn’t helping.)
- While investigating adding an off-screen despawn / respawn feature, I found that the game ran fine if the player started near the top of the map, and got progressively slower if starting near the bottom. The culprit was a very inefficient function for returning the ID / numbered index of the player actor to other actors, which is slower the higher the player’s actor ID number is. This stems from a misunderstanding I had about how Lua indexing and strings work. As a quick fix, I changed the scene initialization to spawn the player actor first. This is a bad solution, but I’ll deal with it properly after this one game is out the door.
- Also added a flag to each actor indicating whether they should be processed at all when off-screen. Average tick processing time went from 2.5 – 2.8 milliseconds down to about 1.09 ms.
- Implemented preserving and restoring world state when passing a checkpoint and upon being defeated, respectively.
- Implemented a simple automap.
- To be honest, I stopped keeping track of stuff near the end.
Thoughts
Whelp, this got out of hand. I’m not sure I’d classify this as a good game, but it is a game, barring some absent features. I’ve gotten some feedback from members of the LÖVE Discord regarding controls / input that I’ll try to add within the next week or so.
Plans For Next Post
- Fix reported issues and added requested features within reason. Otherwise, don’t think about it for a week or so.
- The week after: tear out the engine and determine highest-priority needs for the next project.