Project Overview
Araka is a turned based mobile puzzle game where the player needs to progress through levels by programming his movement and finding the quickest way to the end. The world evolves when the avatar moves which creates interesting challenges where the player has to predict and time his movement in order to access tiles. 

My Contribution
The project was made in the span of four months by 5 Game designers from ICAN .
I was in charge of leading the project, the programmation, the game design, and the Level Design.
Custom AI pathFinding
In the early developpement of the game we created a pathfinding scripts that shows the optimal path to the player and moves the avatar onto it. 
In order to make it work each tile had a an int variable that contained the value of the smallest number of movement ned by the player to reach it.
To get that value I checked the available cases around the player and gave them the value 1, then those tiles checked the available cases around them and gave them the value 2. The effect continued to spread through the grid with each tile always keeping the smallest possible number.
Once the grid was mapped with that value we ned to create a system to identify the shortest path from the avatar tile to the selected tile.
To do that I checked the value of the tile selected and checked the value of the 4 available tiles around it. I only kept the tile with this value and did this process again from this tile. I continued to do this system until I reached the tile with the value 0 which was the tile the player is occupying. I put all these tiles in a list and then made them highlighted. When the player clicked on a tile he followed the path created by going through the list and moving to each tile before removing them from the list until the list is emptied.

Part of the script used to do the Path Assignation

Part of the script used to highlight the right tiles

Part of the script used to make the player follow the highlighted path

State Machine
In Araka we decided to change from a pathfinding system to a swipe system that makes the avatar move from one tile to another. This system was more effecient on a mobile device and solved problems we had with our dynamic terrain.
In order to make this system work we ned to have a priority of event.
We decided to make the player move and then the dynamic tiles will move.

But this process on every movement slowed down significantly the flow of the game. We decided to make the movement of the player and the movement of the dynamic tiles happen at the same time when the player was neither on a tempo tile or about to move onto one.
To make this system work we created a StateMachine that handled the priority of events depending on multiple factors. We used an animator to make it since we might add animations to events.

Animator of the state machine handling inputs, player Movement
and dynamic tiles movement

Level Editor
Araka is a puzzle game that heavily relies on a good level design. We decided to make it easier for the level designers to work efficiently to create level editor tools that would make their life easier.
In this gif you can see the whole process of creating a scene in our game and placing tiles and effects quickly. The level designer can change the type of tiles they are placing by just clicking a bool in the editor or sliding a cursor to choose an integer.
We also made procedural tile map generation to have the available path change dynamicly in game but also in the editor to have an accurate idea of how the level looks at all time.

Part of the script used to make the dynamic level editor

Part of the script used to make the procedural map tiling

You may also like

Back to Top