This week my focus was on gameplay for the little SRP maze project, hoping to make it more like a game and less like a walking simulator.
I wanted to keep it simple, improving on the original project, and addressing obvious issues with its game design.
I covered a lot of ground this week, so I’m splitting them up into multiple articles just to keep them short.
The original project “Minotaur Maze” was my first Unity web project, made way back in 2013. This was when Unity had plans to integrate Flash, which they quickly abandoned. So like any first attempt, its game design was boring.
But something I discovered when reviewing its code was that I’m still using code from that project even now, all these years later.
If it works well, why change it.
The first thing I started on was improving the maze algorithm and adding support for looping paths.
Some of the maze results often felt linear, making it feel like you’re following a path more than exploring a maze. Pick the right path, you win, pick the wrong path, backtrack to the right path.
The common solution to this problem is to remove walls at random, which creates a chance to connect areas and introduce loops.
But randomly removing walls won’t always keep the feeling of a “true maze” since it can also add room-like areas.
To prevent rooms from being generated, I check if the path on the other side of the wall is reachable before removing a wall. If it’s reachable, I keep the wall. But if it’s not reachable, it’s a safe candidate to have the wall removed without creating a room.
The change increases the number of possible paths for the player to choose to reach the end, while also increasing the chance for them to get lost through walking in circles.
For a little added challenge, I added pits to help break up all the walking by having player’s jump over them.
They can also act as loose landmarks for the player to keep track of where they’ve been, especially if they’ve been walking in circles.
Just don’t fall in them.
The original project never had pits, even though I intended to add them. At the time, I couldn’t figure out how to generate meaningful pathing information that AI could use. So I left them out.
These days, it’s not a problem.
In the next article, I’ll be adding the Minotaur into the maze and rebuilding its AI.