Oh no, ghosts are approaching the town!

Mayor Wombledon has begged ALFREDO THE GHOUL BANISHER to team up with THE WILY WIZ to protect the town. Can they put aside their differences and work together, or will evil spirits devour the populace?

Controls

  • Arrow keys: move
  • Z: swap heroes
  • Enter/P: pause (level select, volume controls)
  • X: next level

Outcomes

  • 1 night protected: You have the villagers' sincere gratitude 🙏
  • 5 nights protected: The villagers are beginning to hope again 😭
  • 10 nights protected: Valiant Heroes 🏆
  • 40 nights protected: Local Deity 🤯

Tips

  • Alfredo can dig up graves with his fearsome claws.
  • The Wiz can swap places with nearly anything.
  • You can change levels freely in the pause menu.
  • Never give up; always fight with your full strength.

   


1024 bytes, made by pancelor for PICO-1K 2023. Thanks to timp + shrinko8 for compression help!

The layouts were randomly generated, but they don't change. My best times for the first 5 levels are 7 / 11 / 15 / 39 / 41.

If you enjoyed this, you might also enjoy my game Hungry Eggbug, or the board game that loosely inspired this game: Ricochet Robots.

StatusReleased
PlatformsHTML5, Windows, macOS, Linux
Rating
Rated 5.0 out of 5 stars
(4 total ratings)
Authorpancelor
GenrePuzzle
Made withPICO-8, Aseprite, Sublime Text
TagsGhosts, High Score, knights, pico1k, PICO-8, sizecode, Wizards
Average sessionA few seconds
InputsKeyboard, Gamepad (any), Smartphone
AccessibilityInteractive tutorial, Textless
LinksBBS

Download

Download NowName your own price

Click download now to get access to the following files:

ghost-patrol-windows.zip 1,010 kB
Version 11
ghost-patrol-linux.zip 761 kB
Version 11
ghost-patrol-osx.zip 3.3 MB
Version 11
ghost-patrol-raspi.zip 2.2 MB
Version 11
ghost-patrol.p8.png 11 kB
Version 7
ghost-patrol.p8.rom 1 kB
Version 9

Comments

Log in with itch.io to leave a comment.

(+1)

This is cool! I like this combination of flexible movement mechanics and randomly generated levels. I have to figure my own way out! And it's often fiddly but I can make it work!

I'm curious, how did you choose which levels to put in the game? Were these the best ones, or are they sort of random?

Also, I'm curious why the level isn't actually randomly generated each time I play? Was it maybe too chaotic or unbeatable?

(1 edit) (+1)

thank you!

“how did you choose?” – the game was made for a jam with a constrained code-size (here’s the entire source code!) and I wanted consistent layouts, so I seeded the RNG with the current level number (srand(lvl)) and then placed some number of mountains/graves/heroes at completely random locations. I think level 1 was too easy (it wasn’t good enough preparation for level 2), so then I tried srand(lvl/7) (which makes different layouts but keeps the code-size small) and then landed on srand(lvl/3). I think those were the only three things I tried. I chose based on how level 1 felt – it needs to be not too hard (relatively speaking) but it needs to be hard enough that you learn the game enough to be prepared to take on level 2, when the game gets a lot harder (maybe I should have kept looking – the grave sitting out in the open near the town is maybe too hard!)

but why did I want consistent layouts in the first place? (after all, seeding the RNG added code!) Hard to say… I think it was something similar – level 1 needs to be a stepping stone into the rest of the game. If you can just reset until you get an easy level 1, you won’t be prepared for level 2, which will be frustrating. Maybe you could just reset until you get an easy level 2? Maybe it would work, but my gut said to make the levels consistent.

It also helps to give the game a sense of place, rather than procgen oatmeal. I like the feeling of losing and then trying the same level again, to do it better (or winning, and then trying to get your move-count down). And I think if I were playing the first level for the first time, I would care more about protecting the town that lives in this one particular valley than I would about Random Oatmeal Town #37. making every level random (er, randomly random, rather than consistently random) would emphasize the fakeness of the game too much for me. I think it would also “use up” the interesting parts of the game too quickly – I like having the player sit in one valley for a while and explore what makes that particular one interesting. (The move counter points in that direction too)

(one final note: “chaotic or unbeatable?” – chaotic yes, but not unbeatable! I knew the generator would be consistent + simple procgen from the start, so I designed the rest of the mechanics to work with any level. In theory, the generator can certainly spit out unbeatable levels, but in practice I haven’t found any yet in the hundred or so levels that I’ve played.)

great questions, thank you! I didn’t realize I had this much to say about it :) I should clean this up a bit and post it as a devlog

(1 edit)

Thanks for the answers! Good points about a sense of place in level 1, and about properly exploring it over multiple attempts.

cute!!

that is so difficult

damn this is really clever pancelor

😁