Blink is a one-player runner/shooter game prototype that I developed individually using the Unity 3D engine in the context of my Programming class at Supinfogame.
My main intention during the creation of this concept was to rethink the shooter component of the game in order to give an innovative approach to the gameplay. I chose to use the projectiles as scouting elements, allowing them to reveal the obstacles to the player.
This is a video of the prototype :
In this game, the player embodies a constanly moving avatar that he controls in order to avoid obstacles. If he gets dragged outside of the screen by any obstacle, he loses one life. Once he has lost all his lives, the game is over. Contrary to other games of this genre, in Blink the player cannot see the obstacles as long as they are not exposed to light.
In order to light an obstacle, he has to shoot a projectile into it. When exploding, they leave a light which briefly reveals nearby objects. A blade can also be used to destroy some specific obstacles.
Each time the player uses the projectile or the blade, his energy decreases. Energy increases over time and if it reaches zero the player cannot use any of his skills as long as it is not back to normal.
There are 3 types of obstacles:
- The normal obstacles that are just objects that the player cannot go through and block his progression.
- The traps that the player must destroy (with his blade or his projectiles) before they reach the bottom of the screen. Otherwise they will activate and momentarily raise the bottom limit of the screen, increasing the difficulty of the game by reducing the playable area.
- The destructible obstacles, that can be destroyed using projectiles or blade.
Also, there are some bonuses such as an Energy Boost which increases the energy level, a power-up which improves the light projectiles or the blade, a score multiplier or an extra life.
At the end of each level, the player gets a score based on many criteria such as the number of projectiles shot and their type, the remaining lives, the number of traps destroyed etc.
The first feature I had to code in order to have a runner was the scrolling. First, I created a system generating planes juxtaposed to each other and scrolling toward the player. However, I decided in the end to fake the scrolling by just moving the textures and creating a backward force on the particles emitted by the player.
Then, I used lights and specular textures (textures modified by light reflection) in order to create objects only visible when lightened.
Regarding controls, it was important to me to have precise movements. That is why I chose to implement the possibility to use an Xbox 360 controller to play the game.
I worked on a system combining randomly generated and predefined patterns in order to create random levels, on the heat system and on the score. If I get enough time, I will try to make a save system allowing the player to keep his scores and to save some random levels so he can play them again.
I decided to use a graphical style mainly based on light effects since it complemented very well the theme of the game and the specular effects that I had to use.
Since the graphical aspect was only secondary I chose to use simple shapes and textures in order to focus on gameplay and programming.