So as we talked about in the last articles, our game is a 2D puzzle platformer for mobile that uses the light as a core mechanic.
Now let's talk about it more deeply.
How is the structure of the puzzles?
It can be described in 3 points:
1st – Observe the environment around the character;
2nd – Use the light to try to discover the whereabouts of the enemies and traps;
3rd – Formulate a strategy to overcome the enemy.
The main objective in this game is to save all of the small light creatures.
Every level have 3 light creatures that you can collect and accumulate from level to level. Each level requires that the player collects certain amount or certain type of light creatures to be unlocked and move forward in the game.
The different enemies interact with the player, damaging it. Each time the player is hit by an enemy, he begins to flash light that defines the period that he is invincible. After that, the light that comes from the player is halved and the power of the light projecting - character’s HP - is also reduced by half.
There are 3 different types of enemies all with different behaviors in order to create synergies between each other to provide a diversity of strategies available to the player. They are controlled by the artificial intelligence and have different behaviors towards the player and light.The player can only see the enemies when they are illuminated.
- Patrol enemy: Is walking on the platforms and when hits the player, steals a bit of his
light and gets scared beginning to move really fast. It's passive because it doesn't attack the player on purpose.
Flying enemy: Follows the nearest light with the intent of attacking the player. It’s aggressive.
- Jumping enemy: When sees the player, jumps towards him also with the intent of attacking the player. It’s aggressive.
All of these enemies have synergies between them so that the player can create a strategy to overcome them.
The trap only works when activated by light. If activated, when it detects movement in its reach, it shoots in straight line killing the enemies or the character.
World and Level generation
Our game world is composed by 16 rooms. Every level is procedurally generated, populating a grid with premade rooms (Spelunky style).
Four types of rooms are available:
- Rooms with left and right openings;
- Rooms with bottom and top opening;
- Rooms with just a top opening;
- Rooms with just a bottom opening.
Each room type is available in different premade layouts with different variations of:
- Enemies count,
- Enemy difficulty,
- Trap amounts,
- If they have a collectible friendly creature,
- “hp recharge spot”,
- Grass for the player to hide.
Then these rooms are used to generate a level.
The level generation is carried by an algorithm. That algorithm will get the 4 by 4 grid and build the map over it.
A random column is picked, and a starting room is generated on the first row and previous selected column. Then the algorithm searches for immediate nearby cells, to the left, right or down and create rooms randomly until it reaches the bottom of the grid and finally create a room with an exit.
The probability of the algorithm creating rooms to the sides is bigger than creating rooms going down, so we have a more horizontal path. That will create a direct main path to the exit without any walls in the way.
The rest of the grid is then populated with “random” rooms, all with openings on the sides.
There are 3 collectible light creatures (represented by the X on the diagram) that splits along the map, one creature for each of the 3 starting rows and displayed on random columns, so the player has something to explore out of the main path.
So now let's talk about art!
The world where you play in is a dark and somewhat sinister forest.
We want to give that aspect of a world that has had very little light since the enemies arrived. For this we chose to use dark colors like black and different shades of gray.
For the enemies we decided to give them a few accents of color so that we can easily distinguish them in the world.
Since we are going for a forest look, we've decided to create an environment with grass, dirt and some flowers. We don't want a realistic look, so we decided to use mostly flat colors and give the characters and environment a cartoonish look.
We are very excited about the results we are seeing throughout this process.
We really hope you like what's coming!