Week 5 Topic: “1 hit point”
To play: mash arrow keys
This one I think was a clever idea that I couldn’t quite pull off because I concentrated on the wrong things instead of staying flexible.
The idea was a RPG battle mechanic where a harmless player character with 1 hit point destroys a bunch of progressively more horrible dark souls-esque demons by cheating somehow. My thought was that I would implement a save/load system and the player would savescum a slot machine chance-to-hit sequence to always dodge and hit. I loved the idea of having demons start to complain and accuse the player of cheating.
Here are the problems with this though- first, I was using coroutines for things and saving state around running coroutines is hard. Right now the saving and loading behaves really unpredictably (it’s pretty much totally broken, saving during the rolls doesn’t work)
Second, even if it worked, it would be tricky to keep this fun past the initial pleasure of cheating and seeing demons complain. Even if you had a mechanic where really bad misses from the enemy rebounded and hurt the attacker, it would still kind of be a job killing them off? Maybe that’s ok and I could have made it work if I had managed to get saving working more reliably.
Thinking that my problem was that I was simulating what could just as easily be faked, I blew another 3 hours trying to switch this all over to sprites and animation timelines for the numbers but still ran into problems saving and loading animation state and which slot machine number is rolling, etc.
After struggling with the fiddly piece of code for a while, I asked myself if I could just test the idea with dice. Rolling dice and ‘saving’ and ‘loading’ desirable rolls was a little different than the digital prototype, which ran on a strict timer, but it let me test the mechanic to see where it went. It let me see that the mechanic would need something else to be interesting, something that counterbalanced the chance that was broken by savescumming. One idea would be to have some association between the first and last dice rolls, where a low early roll that is discarded could be valuable somehow with a rare last roll. There would have to be potential missed opportunities from playing too conservatively. You could also have a saved state be lost over time or other interventions.
Again, this is the work that I should have done on day one, but I allowed myself to tunnel time on coding or fun tasks like drawing an appealing main character. This is the work of this prototyping process- to learn to prioritize an answer to the problem statement or defining feature first. In my mind I knew that what was funny and compelling to me was a horrible tough looking demon whining that it’s cuddly opponent was cheating and that the game wasn’t fair, but without that cheating mechanic that was rebalanced to stay engaging but still feel like a transgression, the soul of the game isn’t there.
After writing this out, I think there could be a working version with crappier saving and loading just slot values to variables, getting rid of all the complex animation state saving I was trying to do, with an added mechanic to make a player decision to either ‘cheat’ or move forward be a risk. Of course these sorts of things are always easy to see in hindsight, but we have to prioritize goals and avoid traps to get to these realizations in a timely manner. Maybe I’ll try this one again later.
(badguy sprite by Akashics)