The game

Check it out here Check out the youtube short demo

Inspiration

What makes a Rubik's Cube fun to play?

That was the question I asked myself. I was never into rubiks cubes, but my brother is. Seeing him idle away at the toy for hours on end got me wondering what made it actually fun to play in the first place. Turns out, it owes its appeal to a combination of a clear objective, simple mechanics, nearly endless possibilities, and the fact that it still takes skill to beat it. I wanted to make a game just like that.

Trying to come up with something else

I couldnt just make a rubiks cube game, that would be boring, and I dont want to make a game that I myself wouldnt play, so I turned to maze solving instead. But again, solving mazes by themselves is also very boring. So instead of solving the maze the traditional way, what about allowing the player to shift the maze so that it connects perfectly? I decide to set out on that idea, and after over 160 different build versions, I landed on the final product which I called Concentricall.

My design choices

Think of a cake. That was my original plan. The cherry on top is the player, and the bottom of the cake is where i wanted to go. each layer would be able to shift left or right, like a rotate Left function in assembly. The maze will be reconstructed by moving the layers back to their original spots. That was fine at first, but I also wanted to eventually add community based features like custom maps, and a layout like that just wouldnt be very friendly. There also came the issue of different screen sizes, which can obstruct the edges of the maze. I decided to change my inspiration, from a cake to a tree. See, a tree has rings, so why not be able to rotate each ring to solve the puzzle? This way the puzzle is always the same size and the difficulty can easily be set by just adding more rings to the maze. Thats how I landed on the name too. Concentric describes shapes, objects, or patterns that share the exact same center or axis, like an archery target or in this example, like rings on a tree. i then put -all at the end just because Concentric was already taken.

What it does

Whats the game?

At its core the mechanics are very simple. The maze starts scrambled, and you rotate each ring until the true path forms, allowing the player at the edge of the circle to make its way to the center, thereby completing the puzzle. The game will feature daily puzzles similar to Wordle from NYT, and allow for community based features like creating custom maps, versusing other players and leaderboards to compete in for points.

Creating custom maps

Creating custom maps takes just a few buttons to set up. You can start off either with a random seed or a completely blank slate, and design your maze however you like it. you can then change its difficulty, name and even win condition, like having the player beat the challenge within a certain number of moves. In order to publish a map you will have to first verify its solvable by completing it yourself. Published maps are then posted on the subreddit as challenges for other players to view and try out. After solving a challenge, players are allowed to leave a rating from 1 to 5 stars.

Versusing players

I also added the feature of 1v1s. You enter a matchmaking lobby and pair up with another player whos also searching for a match at that time. then both of you get put into a room with a random seed, difficulty and win condition. You two will then race to see who gets to solve it first. If neither of you beat it within the time, no points are awarded.

Factions and leaderboards

Clearing a puzzle will award points depending on how you complete it. These points will be reflected in your account level and stat progression, and if you join a faction, you contribute those points to your faction. Each week points for factions reset and players can compete in the leaderboard to see who can rack up the most points for their faction. There is also the player specific leaderboard which shows how far along are you from the top player. these points do not reset.

How we built it

The game was built using Unity3D, with C# as the main programming language.

Maze generation

The maze generation was built using a simple node based randomized DFS algorithm. You can find more details about it here. This algorithm was not truly random, but controlled by a seed. this way I can make sure that when versusing other players, the same map will be generated each time.

Challenges we ran into

One of the biggest challenges I ran into was that some mazes, especially the easier ones, could have multiple valid routes. The player could get lucky and get a valid route immediately which would be unfair to other players and unfun. Thus I decided to add orbs to the maps. these orbs are collectables that would grant players bonus points for completing the puzzle. That way they can still get an alternate route if they want, but they will only get a fraction of the points they would have gotten if they done the maze normally.

Accomplishments that we're proud of

The biggest accomplishment I was proud of was actually being able to develop a fully working game within the time limit. I was half expecting to give up on this project really early on, and i even had scrapped other game ideas for this game jam too, like an idle farming simulator that I poured an entire weekend into. The usage of AI to generate documentation and research the devvit API has also been a monumental help in speeding up development

What's next for Concentricall

Development will continue to iron out bugs and introduce new features. I wish to add features like a moderation system where illegitimate players will get banned, or even being able to host new limited time events like "double xp weekend" to keep the game fresh. The game doesn't need many new mechanics because I want to always keep the core idea simple, so anyone can pick up and immediately get to playing. at

Built With

Share this project:

Updates