
Maze Trudger!
This game is from ldjam.com, which is currently unavailable.
You can try viewing the original page on Web Archive (may not load correctly).
You can try viewing the original page on Web Archive (may not load correctly).
You've found yourself in an intricate maze. You must trudge all the way to the furthest south-eastern most point to escape. Along the way you will encounter a great deal of some sort of sticky, smelly muck that you will have to trudge through as there is no way around it. Unfortunately this muck sticks to you, and when it's disturbed a strong odor emits from it that gets some maze creatures all riled up, causing them to have the seemingly insatiable desire to go for a jog through the maze. The more muck you disturb, the more likely it is that you'll encounter one of them -- or that they'll encounter you. While they probably won't chase you, as your paths cross it is likely they'll take a little nip (or maybe more than just a little), and your only defense is to run away.
You'll also find health packs scattered about to recouperate from those pesky bites, and flares that you can launch to briefly illuminate parts of the unknown maze. Good luck, you may or may not get out alive,but every maze is different...
You start with full health, no flares and no muck (like the clothespin nose icon on that power bar? hee hee)
As for muck, don't worry you'll find _PLENTY_ throughout the maze. Up to 30% of cells will contain some, and of those that do some will have enough to get you on up to three passes through that cell.
Health and flares are scattered randomly throughout the maze. Up to 15% of cells will have one of the other, and of those cells there's a 50-50 chance they'll have one or the other. It's _likely_ you'll encounter both, but there is a chance that you won't encounter any in some mazes -- it's all random.
#### Tools used:
- Phaser JS game engine -- more specifically, this starter project which took care of much of the overall _environment_ config.
- Photoshop to draw the art assets
- Texturepacker to prep spritesheets
- Reaper for audio editing & timing of audio sprites
- VS Code for the code editor
#### Notes
- This is my first game jam, and really the first completed game of any sort with graphics -- although it's a more complex reimagining of a basic maze crawler I built using a similar algorithm for an extra credit project in a Pascal class back in highschool (~24yrs ago, specifically).
- There is no start menu, ran out of time to implement that. But really all that would've been is a play button. The game will begin automatically after the intro screen, on win or death you'll just launch back into a new game again automatically. So while a menu would maybe be nice it's not a big loss to not have it.
- I also did not get a chance to include control buttons for mobile devices which pretty much prevents playing on an ipad/etc. Though it would be easy enough to add that in, just need buttons that trigger the same move function.
- For the math geeks and technically interested folk; maze generation uses the classic Prim's Algorithm.
- Struggled a number of hours trying to get creature AI implemented so that they would actively seek the player out, that had several unfortunate results:
1. Actively running pathfinding logic for up to 100 creatures in a 1500 cell maze pretty reliably crashed the game or used so much processor that the game became entirely unresponsive
2. Most performant pathfinding algorithms seem to expect a different type of grid than the data structure used to maintain the maze structure, I'd have to experiment more to see if something like A\* would work with the structure used (it's a 2-dimensional array representing cells in height & width, where each cell contains an array of 0/1 values for top, right, bottom & left walls.) It seems for things like A\* to work I'd need a flat grid instead.
3. Using less intelligent seeking behavior resulted in creatures just deciding to stop moving, or exhibiting very stupid behavior (repeatedly moving between two cells indefinitely)
In the end, the "AI" is only intelligent enough to keep track of their own previous cell locations, and it then randomly selects any _other_ direction to move whenever possible. The result is that creatures very actively free-roam large swaths of the maze, and very little processing overhead is involved. In testing I was able to have several hundred active creatures with no negative impact on game play (other than a ridiculous number of creatures in the maze!)
Ultimately not having the creatures actively seeking you out is beneficial, the game wouldn't be at all enjoyable with 100 creatures who always know exactly which way to go to find you. The existing implementation, albeit not smart about finding the player keeps it more fun, and gives you some semblance of a chance of finding the maze exit (lower right corner, always).
You'll also find health packs scattered about to recouperate from those pesky bites, and flares that you can launch to briefly illuminate parts of the unknown maze. Good luck, you may or may not get out alive,but every maze is different...
Game Controls:
Navigate with arrow keys, launch flares with the space bar.You start with full health, no flares and no muck (like the clothespin nose icon on that power bar? hee hee)
As for muck, don't worry you'll find _PLENTY_ throughout the maze. Up to 30% of cells will contain some, and of those that do some will have enough to get you on up to three passes through that cell.
Health and flares are scattered randomly throughout the maze. Up to 15% of cells will have one of the other, and of those cells there's a 50-50 chance they'll have one or the other. It's _likely_ you'll encounter both, but there is a chance that you won't encounter any in some mazes -- it's all random.
#### Tools used:
- Phaser JS game engine -- more specifically, this starter project which took care of much of the overall _environment_ config.
- Photoshop to draw the art assets
- Texturepacker to prep spritesheets
- Reaper for audio editing & timing of audio sprites
- VS Code for the code editor
#### Notes
- This is my first game jam, and really the first completed game of any sort with graphics -- although it's a more complex reimagining of a basic maze crawler I built using a similar algorithm for an extra credit project in a Pascal class back in highschool (~24yrs ago, specifically).
- There is no start menu, ran out of time to implement that. But really all that would've been is a play button. The game will begin automatically after the intro screen, on win or death you'll just launch back into a new game again automatically. So while a menu would maybe be nice it's not a big loss to not have it.
- I also did not get a chance to include control buttons for mobile devices which pretty much prevents playing on an ipad/etc. Though it would be easy enough to add that in, just need buttons that trigger the same move function.
- For the math geeks and technically interested folk; maze generation uses the classic Prim's Algorithm.
- Struggled a number of hours trying to get creature AI implemented so that they would actively seek the player out, that had several unfortunate results:
1. Actively running pathfinding logic for up to 100 creatures in a 1500 cell maze pretty reliably crashed the game or used so much processor that the game became entirely unresponsive
2. Most performant pathfinding algorithms seem to expect a different type of grid than the data structure used to maintain the maze structure, I'd have to experiment more to see if something like A\* would work with the structure used (it's a 2-dimensional array representing cells in height & width, where each cell contains an array of 0/1 values for top, right, bottom & left walls.) It seems for things like A\* to work I'd need a flat grid instead.
3. Using less intelligent seeking behavior resulted in creatures just deciding to stop moving, or exhibiting very stupid behavior (repeatedly moving between two cells indefinitely)
In the end, the "AI" is only intelligent enough to keep track of their own previous cell locations, and it then randomly selects any _other_ direction to move whenever possible. The result is that creatures very actively free-roam large swaths of the maze, and very little processing overhead is involved. In testing I was able to have several hundred active creatures with no negative impact on game play (other than a ridiculous number of creatures in the maze!)
Ultimately not having the creatures actively seeking you out is beneficial, the game wouldn't be at all enjoyable with 100 creatures who always know exactly which way to go to find you. The existing implementation, albeit not smart about finding the player keeps it more fun, and gives you some semblance of a chance of finding the maze exit (lower right corner, always).