Posted March 10, 2025 by Brain in a Bowl
#7drl #postmortem
I'm writing this a day after finishing the game. Is that too early for a post-mortem? I wouldn't know, I've never done this before.
When I started thinking up a concept for the game, I quickly settled on a couple of pillars.
I quickly settled on making this in HTML, CSS, and JavaScript. Next to TIC-80/Lua this is the environment I'm most comfortable with, and it would easily allow me to set up the device using 3D-transformed CSS elements. Ahead of the challenge, I set up a project where I built the basics of the 3D advice. I also borrowed some code from my last two entries, so I had a CSS CRT simulation, input handlers, Dijkstra's algorithm, and a handful of helper functions ready to go. I also put in a PR for an open source midi library so I could use some midi music in my project.
I had a rough idea for the game in my head, but didn't plan anything out on paper. I mentally divided the project in six rough chunks for the six days, so I'd have a spare day for things that would go wrong.
I created basic event-driven system easily and in way less time than I had planned for. To celebrate this, I allowed me to spend the time saved playing with the aesthetics. The Gruvbox color palette worked very well for what I was trying to achieve, and I quickly and easily slapped together a little music player (inspired by Quadrilateral Cowboy) to add to the device.
While a basic event-driven system was quickly implemented, it didn't account for the type of time travel I was using. I didn't want to just go back in time, I wanted to go back in time and add events to the timeline. This meant some events should be affected by the time travel, and some shouldn't. This also meant events weren't allowed to spawn other events, since this would mean the events would duplicate whenever the player would go back and forth in time. Getting this to work properly took me almost two additional days, forcing me to drop the item/equipment system, character progression, an in-game tutorial, and more advanced AI.
While the time travel issues were a big time sink, I don't think I handled it poorly. I just lacked the experience required to get it right immediately, which is exactly the reason to do these kind of jams.
What I should've done differently is the enemy AI: enemies should move. At the moment, they only twirl around until they see the player, making the world reactive instead of proactive. I don't know how I managed to overlook this during development and testing, but I did.
Overall, the game could've done with being a bit more approachable, with more information and better feedback for the player.
I usually start planning changes and updates for my jam projects, only to never get around to them. This time, I'm happy to let this one be. It was fun to work on and I'm happy with the result, but it's time to move on.
I do think I'll adopt and expand the event-system. I'm still hoping to finish/redo my unsubmitted 7DRL2023 project, and the event system would be perfect for that.