Hello here,
I just finished the demo and oh my, this game is awesome! It's really interesting how you managed to create so many puzzles using a small walking area.
It plays very easily and it's great at teaching the rules to the player. Also the animations are really fun to watch :)
Level 20... Wow, man! I loved the open area and the frog encounter: the level plays exactly as you'd expect and it's so satisfiying to to complete!
Also the enemy pathfinding is really top notch! How did you make it? :)
I can't wait to play the full release! I just donated :)
Will be waiting for more updates :)
Hey, thanks for playing the game! Yeah, it's meant to be a sort of "pocket-sized" puzzle that you can play on the go since it's ultimately intended for mobile. But I figured a web demo would have the most reach, to gather feedback and UX data.
I'm glad that it was easy to learn. Also glad to hear the animations are fun! I spent a little too much time on some of them haha...
Congrats on beating the demo! Were you able to get all the stars?
Ah... the pathfinding algorithm. It was a lot of fun coming up with it. Essentially, I give each enemy a priority based on a number of parameters. Then the enemies will, in order, take turns trying to place a reservation for what spot to move to; this loops until all enemies have successfully placed a reservation, or the max iteration count has been reached. Then the enemies all move at once. Happy to go into more detail if you're curious.
Thanks so much for the donation! 🙏
I'm hoping to release this for iOS some time next year. Stay tuned for updates. 😎
There's just one level on where I couldn't get all stars :( But otherwise I always kept trying until I got them all and ooh boy, some levels were challenging :) This sort of "small" puzzles really gets to your head, having you say "it's tiny, I can beat that" until you actually get stuck in a corner of lock the exit xD It was really fun!
The web version is surely a great idea, or at least if you publish the build on itch it really makes sense.
The reservation makes sense for the enemies with this movement pattern. I'm curious: how about the actual path finding? I mean, to they look for the nearest free cell to move to? Is there a specific rule that makes them move horizontally rather than vertically in certain scenario?
Do they try to repeat the player's last input? Because I tried many times to get them to change spot by bouncing up and down or left and right on the same 2 cells and yet they all moved the same way every time, so it seemed like there was no "random factor" there, making them feel actually smart.
I also loved how you played with the double jump: that was game changer. Also liked how jumping to a leaf keeps all enemies stuck where they are.
These are the sort of things that give depth to a gameplay :)
Haha, I'm glad you felt motivated to keep trying. Really helpful to hear this feedback.
> how about the actual path finding?
Yes, all the motions are basically deterministic. The pathfinding uses the mp_grid_* functions in GML (I read it uses the A* algorithm). Basically, you construct a grid that matches the movement resolution of your game, then set which squares are not walkable. I use mp_grid_path to generate a shortest rectilinear path, where only right angles are allowed, from the enemy to the player. And from the path, you can extract some interesting variables to use in other calculations: the starting direction, the length, whether a path exists, etc.
> I mean, to they look for the nearest free cell to move to?
Yeah, so to determine where to place an enemy's reservation—for example, the space suggested by the mp_grid_path, or where the player was previously standing—I check a bunch of different conditions, like where the enemy is in relation to the player's previous spaces, whether there's an unobstructed straight orthogonal path to the player. If you get an enemy to trail you, you might notice some predictable movement patterns start to emerge. 😎
The algorithm itself took several iterations to perfect, and some manual regression testing to make sure the puzzles are all still solvable. I'd often change one thing, and see another thing break haha. But I think I've accounted for most of the edge cases now (hopefully!).
> I also loved how you played with the double jump: that was game changer.
Could you elaborate on that one? Curious to know what was meant by "double jump".
> Also liked how jumping to a leaf keeps all enemies stuck where they are.
Haha yup! A core mechanic of the game is that every move has potential to change the board, so that not all solutions are clear just by looking at the starting state.
Glad you found the gameplay so captivating!