On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(2 edits)

Day 4 / Hunters

I was pretty directionless at the end of day 3. I had a long list of ideas but no clear priority. I poked around with fonts and display styles in the morning and got nowhere. I was lamenting my situation to a designer friend who asked this important question:

Between my last message and the message before I implemented Hunters! They are great.

The core insight of this conversation is that this is a game about running. And if you're going to be trying to do something quickly, there needs to be a reason. I knew I would need some sort of "food" type mechanic so you can't linger indefinitely. I thought that might be a hunter bot or a bot spawner. But when I mocked up a simple "follows you" bot it became immediately clear that if you can't kill the bot that's chasing you, you have to move. And move fast. If there were no other enemies in the level, this would be no threat. With other patrollers, you often need to wait until they're in a position you can bypass easily without taking damage. If you don't have enough of a lead, the hunter will be on you quickly.

This makes the movement abilities useful. They offer you greater than one space of movement for one "tick" of the game state. You want to use them as often as you possibly can. Which in turn makes the environment useful; you need to be thinking about how to get into situations where you can most efficiently traverse the space. I still have all the movement abilities on zero CD so you can chain them together over and over again (which you'll see me do in the gifs) to build advantage. That is probably too generous to the player, and it'll be more fun to have to juggle cooldowns a little bit. 

The hunter spawns in at the elevator the player spawns from after a delay. Here's how it looks. You'll see it pop in, I head right and get a little stuck, circle back, and then manage to make some distance with moves. I took some damage on the way (ending a round in a red square) which is not ideal. One cute addition -- hunters can open doors, but they're slow at it. So it behooves you to close doors behind you as you go.

Animation

One upshot of realizing the essence of the "running" concept was that searching for objectives was not realistic. The hunter is so much pressure that one or two dead ends and your run is over. So I decided to reveal the buttons you need to press to escape at the start of the level. I took this as an excuse to do a little animation pointing them out to you.

I also added a little "ping" when you stop that shows how far away the hunter is from you. This triggers when you "pause" which I like for thematic and practical reasons. If you are pausing, it reminds you the hunter is closing in. And mechanically, if you want to know how far the hunter is you have to "spend" a turn to find out. You don't get a precise location, you just get a radius. Sometimes if it's pathing to find a door it may be "near" in radius terms but not in moves. 

Both animations are janky and low frame rate and a little busted still. I coudn't get rotjs to natively handle transparency. I was too in love with this idea to let it go, so I figured out I could just place another native HTML canvas object on top of my main game window and draw transparent rectangles on there that line up with the same tile dimensions/locations as the game. It's highly un-optimized though, so I can't get much of a frame rate on it. But it meets the functional needs of the game, at least, even if it's not pretty.

Next Steps

  • Make taking damage more visible, probably using the overlay system flashing red.
  • Consider taking damage having some consequence on the attacking bot; it probably makes sense that if the hunter "hits" you it has to power down for a couple of turns so you can get ahead again. Otherwise when it gets in range you die REALLY fast.
  • When you've hit all 3 buttons, reveal the exit like how buttons are revealed on level entry.
  • Need to stop executing moves if you hit vision during the move; right now running jump is way too strong because you take damage but aren't interrupted.
  • Add some new movement types.
    • I think I need a "burrow through wall" option with a really high cooldown. It's a bit of a get out of jail free card, but without it I fear there will be to many feel-bad deaths.
    • I don't find I use wall JUMP much, just a lot of wall run.
    • I think I need objects that you can "vault" but not see over. In other words, not walls between rooms, but something tall within the room that you could get over but not see over. That will create more options for evasion but not be as powerful as "burrow."
  • Back to my nemesis, level generation. 
  • (Reach: start thinking about tutorialization; some simple levels that teach the core concepts of movement and damage and objectives.)
  • (Reach: add some more visual variety. Walls and floors are so boring! Need some varying color and symbols to add character. And more types of tiles, too.)