GEMINI
PITCH
GEMINI is a 2.5D puzzle platformer with a main feature of recall. The character has a clone that reproduces all that he does with a delay of 4 seconds.
Theme: Afterimage
​
Genre: Puzzle Platformer
​
Target: midCore Gamer
​
Number of player: One
​
Engine: Unity
PROJECT CONTEXT
Gemini is a Puzzle Platformer game made in 12 days in a team of 8 students.
​
Special thanks to Robin Blanc and Flavien Caston, of the Old Skull Game Studio team, for the base package and the help during the project.
GAME DESIGN
Durind this project, i work on all Game Design features:
- Ghost features:
First we wanted that the Character can Rewind to an ancient location to solve puzzle. Thats where we find the idea of the Ghost as a simple Sign & Feedback. After that he became the center of the project when we add the Laser system for more interaction on the game.
- Doors & Traps
How make a Puzzle Platformer without Puzzle ? To make this part we use 4 differents Doors that can be open each in a different way, with a differents color:
Green doors are simple switch on / off. When the Character or the Ghost pass throught the switch, the doors open or close. Depending on is current status.
Blue doors using timing. When the Character or the Ghost active the switch, the doors open for a time & close after that.
Red doors can be open with the use of the Laser. When a Laser shoot by the Character or the Ghost trigger the Generator for more than 1 seconds, the doors open and close after a certain delay.
This system is a Trap that can kill the Character in two differents way:
- When its Yellow, if the Character pass through it dies but not if its the Ghost
- When its Red, if the Ghost pass through it dies but not if its the Character
Switchs turn the trap in this two statuts depending on their color.
PROGRAMMING
The main mechanic of the game is the Ghost who follow & reproduce evry move the character did with 4 seconds spacing. I spend the most of my time to find the best way to do that with the less performance drope possible.
​
I find a solution that i use in the two feature who get encompass by the Ghost feature:
- The rewind system
- The laser
REWIND SYSTEM
In this game, we can back in time to the position we have been 4 seconds later. The signe & feedback for illustrate this feature is a ghost who reproduce the same movement & animation of the player 4 seconds later.
- Reproduce of the Movement & Animation:
To reproduce the Movement of the character, to the ghost with 4 seconds of shift, I create sevral list who listning evry information of the character evry frame (Position, rotation, time, ect...). Depending on the difference of Time between the moment of the variable was set and the actual time of the game, the variable will be deleted if she is higher than 3 seconds, to allways have that timing between the ghost and the player, without getting impacted by the number of frame.
For the reproduction of the Animation, I listing evry bones of the character mesh and using the same methode as below, setting they positions evry frame, and applicate them to the ghost after 4 seconds delay. Despite the hard methode I use, it dosn't impact the framerate at all.
- Back in time:
1
2
3
4
To back in time, I use the same listing below to catch the position of the ghost 4 seconds later and travel the Character to this one.
​
For the Feedback when the Recall is trigger, the movement of the Character frezze and he travel back to the Ghost position, leaving Afterimage behind him. To do the travel back, the Character listning the list of his position inversely.
During the Freeze the position is not incremanting to not speed up the time of the Ghost.
LASER
The Character can use a Drone who can shoot a Laser a the direction he aim. This Laser trigger generator that open doors during a certain amonth of time. The Ghost will also shoot a laser at the same location the Character 4 seconds later to solve Puzzle.
- Drone Controler:
For shoot the Laser the Player need to aim in a direction first. To show this, a Drone will follow the Character, and go to the direction where the Player aim. The Player can aim at 360° around the Character
​
For that i make that the drone can only be move around a certaine Radius when the Player aim somewhere and comeback when he dosn't.
- Laser Shoot:
The Laser is shoot where the Drone is looking, and stoping and the first contact. But the most important thing is that the Ghost can replicate the Laser to.
To do that, i use the same technique as the other feature to reproduce the position of the drone and the use of the Laser throug time. I use a list that listing position, rotation, and if the Laser is use or not. Then i use the same code the Character have to shoot the Raycast.
TEAM
Nicolas Trevisan
Technical Game Artist
Lucie Pottier
Concept Artist / 3D
Alexis Mt
Environnement Artist
Adelin Pufu
Environnement Artist
Tennesse Maurin
Technical Game Designer
Gautier Dogneton
Level Designer
Jeremy Garceau
Level Designer