Click to play Endless Labyrinth
Screenshot of Endless Labyrinth game play, Jayson Ash Game Developer Studio, Sept 10, 2019
Endless Labyrinth was a weekend project for my first game jam event. Being my first game jam, I got to meet several other game developers. I learned about some of the different methods they used to create their games.
Instructions for play: Use the arrow keys on your keyboard as controls. The left arrow causes the left side of the map to lower and the right side to raise which causes the ball to roll to the left. The board tilts downward and the ball rolls in the direction of the arrow in response. Use the momentum of the ball to your advantage. I decided I would create a mini-labyrinth game that would have small maps and progress in levels. I created a system that would generate random maps. This system uses the level number as a random number seed to build the levels. The object is to find the green floor tiles to advance to the next level. Avoid falling through the red tiles with the holes in the middle.
So this simple game allows for a fun user experience. The game play starts very easy and gradually becomes more difficult. As the player progresses they find themselves working through a previous level.
Endless Labyrinth Q & A
Why did you create this project?
I've always wanted to make some kind of ball-rolling physics game. Labyrinth was a great game idea that popped into my head at the time.
What was the most interesting thing about creating this project?
The most interesting part of the project is the maze generation system. I chose Prim's algorithm for its maze generation qualities. This algorithm creates random-like corridors without repeat patterns. The Prim's algorithm provides a nice variety of scenarios for players.
What part of this project was the most challenging?
With the realization of a few issues I was able to create a playable mechanic. One of the issues was inaccurate collision detection. The collision detection issue took the majority of time to resolve. This was challenging because the game engine documentation was very limited.
Another issue was when the player fell through a hole in a red tile when the tile was on the edge of the map. The ball would frequently fall to the next level down and bounce off the side into oblivion. So I used some math to identify which levels created this scenario. prevented these levels from placing red tiles with holes in them around the edge of the map.
How did you design this project and why did you design it this way?
The first thing I created was a simple static maze for the board. Then I added a ball. Then I added controls to make the board tilt and get the ball rolling. Then I proceeded to work through issues with physics. I researched some solutions on how to generate maps randomly. I found the Prim's algorithm to be up to the task of map generation. I designed the project this way to provide a rapid prototyping method. Rapid prototyping allows to reduce risk on wasting time developing needless features.
What features would you like to add to this project?
I would add a smoother transitioning system between levels. Something I've had in mind is moving levels around so the camera moves through the holes in the mazes. Also, I'd like to add an online leaderboard so players can compete with the highest level achieved.