top of page

GEMINI

Illust_menu.jpg

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.

screen_1.png

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

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.

1.png

- 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:

SimpleDoor.png

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.

TimingDoor.png
LaserDoorsss.png
BinaryDoor.png

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

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.

TrackPlayerPosition.PNG
NbrRoationGhost.PNG
GhostPositionTime.PNG
SetPositionSkel.PNG

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.png
1
2.png
2
3.png
3
4.png
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
LaserGifRessource.gif

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.

Zone.png
DronePlayerPositionSet.PNG

- 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.

DoubleLaser.PNG

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. 

DroneGhostPositionSet.PNG
DronePostitonThroughtTime.PNG
TEAM
TEAM
nicolas.jpg
Portrait_Placeholder.png
Portrait_Placeholder.png
adelin.jpg

Nicolas Trevisan

Technical Game Artist

Lucie Pottier

Concept Artist / 3D

Alexis Mt

Environnement Artist

Adelin Pufu

Environnement Artist

tenn.jpg
gaultier.jpg
jeremy.jpg

Tennesse Maurin

Technical Game Designer

Gautier Dogneton

Level Designer

Jeremy Garceau

Level Designer

bottom of page