Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(5 edits)

Day 6 - Signature Moves, Validation, and Garbage Collection

I got my first "win" screen today with all mechanics in place! So we're at a complete state with a day to spare. 

My main charismatic feature today was the addition of move cooldowns. We talked about how hunters are the driving character pushing you forward and the special moves are your way to stay ahead. Well, now that resource is limited so you gotta make it count. The philosophy that developed today was that moves should be common but not constant. You should want to use them more or less as often as they come off cooldown, but it should feel impactful when you do use them. So a lot of the moves got more powerful, but more rare since you get them less often. This also forces you to want to FIND uses for your cooldowns. This is especially the case for move (3), which is less flexible (you have to have a wall behind you to do it) but I find myself creating the scenarios to use it and get it on cooldown.

Two moves added today really brought the game together. The first is "burrow."

Hunter bearing down on you in a dead-end location? Back against the wall? BURROW! It moves you two spaces through a wall. There must be a free space on the other side. When you burrow, you leave behind a closed door. So if you burrow yourself into a dead end you CAN get back the way you came. But hunters will be delayed; they're slower at opening doors than you.

This move really brought the game to live. The level generator is now more prone to creating dead ends, and this gives you a way out. Most importantly, it feels cool. It's got a very long cooldown; it's a once-or-twice-per-level type move. But it can save a bad situation, or hasten your escape if you're close to the exit where your cooldowns will refresh.

Storytime My 7 year-old kid is very curious about this whole process, and I've been offering him chances to playtest. He has MANY suggestions (all day, all the time) and really gets the game systems. I built burrow (and some other stuff) and then went to the kitchen while he played. A few minutes later he darts into the kitchen to report "I just totally tricked a hunter with burrow!!!" and walked me through how he burrowed in a way that saved him from the hunter and how tickled he was at choosing a good location to burrow into. Seeing him connect with the mechanics and have that feeling about the move was really special. A core memory of the jam.

The other move is NOT my 7yo's favorite. He insists it's basically impossible to use. But I promise you it is not! It is "enemy jump." Basically, if you can get the spacing right between you and an enemy, you can hop over them!

A bit like burrow in that it's a "reversal" move versus a "get ahead" move, but it has very different spatial constraints. It's good in more open areas, and you have to really set it up proactively. Consequently, it's lower cooldown than burrow and you can conceivably use it often if you can engineer the circumstances right.

These two moves have really sealed the game into "fun" territory for me. It's legitimately hard, and certain situations and choices can be run-ending. These "problem solving" moves make it feel more fair, though.

Validation

The other aspect of my game that really had an impact on my kid was when he was about to win a run and discovered that the exit was blocked by faulty level generation. That moment brought legitimate tears to his eyes. He was so excited to advance a level he'd never advanced to before and then ... a wall. Literally. 

So my most computationally complex task today was building level generation that both had a pretty high success rate at building winnable level designs, but also building a mechanism that could PROVE they were winnable and re-generate if they weren't. Learned a lot about how to do this structurally. I wasn't set up for it. Most critically, I discovered I actually needed to be able to CREATE bad levels to test my validator, and expose a lot of metadata about what was causing the validator to view a level as good or bad.

Garbage Collection

Finally, I ran into a bunch of bad assumptions I'd made early on when I was only doing one level a time. I wanted to string together some number of levels with increasing difficulty. But when I was testing I'd only really play the first level. When I loaded into the second level, I discovered all manner of bizarre bugs including phantom enemies from previous levels still existing and shooting at you periodically. Some studious garbage collection, and the phantoms were cleaned out.

Next Steps

The final day dawns! My priorities:

  • Tutorial. I have a vision of some hand crafted starter levels that introduce you to the structure of the game and the movement mechanics. This may be more ambitious than I can achieve.
  • Scaling difficulty. At the moment, all 3 levels have the same generation. I may add more enemies as you go deeper, more buttons to press, and so on.
    • Level generation at the moment is also pretty high variance on difficulty. Sometimes the buttons are near each other, or you at the start. Sometimes you spawn with an enemy "looking" at you. Cleaning up these very easy and very hard situations may also help me layer on more difficulty later. 
  • More enemy types.
    • Thinking primarily a bot that sits in the wall and doesn't move. A sort of "tax" on your move CDs because you have to have certain moves available or you can't get past without damage. 
  • Graphics for the title card.
    • Something more exciting for winning than a few words saying you win?! We can dream.
  • JUICE!
    • Animations on the title card
    • Animating enemy vision, so it "pulses" 
    • Some sort of animation when you move that makes it feel more satisfying
    • etc.