Celeste 4 2
If the video demo above is not working, it can also be viewed at:
https://www.youtube.com/watch?v=tS5WWnFnFi4
The game can be downloaded and played at:
https://drive.google.com/drive/folders/1JE9Nr49NotdWjYM4MSwN6d_XKma2vVZ7?usp=share_link
To play the game, simply unzip and run “Celeste.exe”. Read “Controls.txt” or Game Design-Mechanics-Control in this document for keyboard configurations.
The whole project can be downloaded and viewed at:
Introduction
Celeste 42 (Celeste for two) is a hardcore co-op platformer game inspired by the famous indie platformer, one of my personal favorites, Celeste. The essence of Celeste 42 is to explore the possibility of including puzzles that are unique to cooperative gameplay while maintaining the challenging, unforgiving aspects of original Celeste. Twice as many players, twice as much fun!

Target Audience
Celeste 42 is specifically made for hardcore players who enjoy working together to tackle platforming challenges. Casual players are also welcome to play, but the difficulty can be discouraging.
Game Design


Controls
Jump, Dash, Clamp/Grab
Death & Win Condition

This game is only available for 2 players to share one keyboard and play. The configurations are listed below:
Player 1:
MOVE: WASD
JUMP: H
DASH: J
GRAB/CLAMP (WALL): K
Player 2:
MOVE: ↑↓←→
JUMP: NUM 1
DASH: NUM 2
GRAB/CLAMP (WALL): NUM 3
This game adopts the classic platformer controls: both players can run, jump, dash and climb walls. They need to work together and beat the level by reaching the corresponding doors while avoiding dangerous spikes!
Mechanics
Jumping is a pretty standard mechanic in platformers. It is worth noticing that in Celeste 42, the jump height is not a constant. It is instead determined by the duration the player presses the jump key. The longer the player presses the key, the higher they jump—it is a matter of .3 or .5 seconds and there is, of course, still a height limit. This arrangement is to enable some very delicate handles by the players.
Dashing is also a classic mechanic. Players always have exactly one dash charge when they are on the ground. Once they use the
Clamp/Grab the wall to climb is as straightforward as it sounds. The only thing worth mentioning is that the original Celeste introduced the stamina mechanic, meaning the player cannot grab the wall for too long before they fall. This is not included in Celeste 42 because it was never an essential part of level design and the absence does not really influence difficulty or playability of the game.
Players can die when they run into spikes, fall, or get smashed in between the walls. It is worth mentioning that whenever one player dies, this run counts as a death in the death counts and both players respawn. After all, it is a co-op game!
Players beat the level once they both reaching the corresponding doors. Who goes to which door can be determined by the transparency filter of the players and the doors.
Special Items
Spikes are lethal. Avoid them.





Doors are win conditions introduced in the previous section.
Disappearing platforms will disappear after 1.2s of encountering players and reappear after 2s of disappearing.
Donuts are special collectibles in hidden secret rooms of each level. They do not affect the outcome of any run but are really cool to have!
Switching Platforms is a mechanic unique to level 2. All the red platforms will be active when the level starts. After 1.5 seconds, they become air and the blue platforms become active. And then they switch again after 1.5 seconds and so on.

Co-op/Interaction
It is essential to design special themes for Celeste 42 to make the game feel like a co-op game instead of two players playing Celeste at once. In both demo levels, one of these themes occur twice. One player is able to step on another player in the air to refresh the dash charge. This simple mechanic is very important for it allows them to reach platforms otherwise unreachable by one player. From the designing standpoint, this allows interaction between players and possibility to design much more difficult challenges.
Level Design
In this section I will be giving introduction, drafts and instructions for playthroughs for both demo levels. There are more than a few ways to complete a level so it is really up to players to find out more exciting ways than reading my instructions! Notice that the drafts will be slightly different from the actual levels because I may add and delete stuff when developing the game.
Notations: Player 1 (the more transparent one)’s instructions in red and Player 2’s in green.
Run/Move: Line
Jump: Arrow
Dash: Arrow + Circle
Clamp and climb: Arrow on the wall
‘Inter’ indicates an interaction between players. The color indicates the player stepping on their partner.
Tutorial Level
There is not much challenge in this tutorial level. It mainly serves to introduce the basic game mechanics and some of the objects that can be interacted with to players, so that they don’t get confused in future levels by anything they had never seen.


Level 2
This is a very challenging level. This level plays with the switching platforms mechanics and has a Crypt of the Necrodancer feel to it: the platforms switch every 1.5 seconds so 40 times a minute, and I chose an 80 bpm techno music as the background music so that players almost get the feeling of playing a rhythm game.


Developing (Unity)
The development of this project is done in Unity 2020.3.24f1. I did the scripting for player movements, controls, items that can be interacted with and so forth. All the scripts can be found on Github link in the beginning of this document. In this section I want to mainly introduce how handles are optimized in details because I believe these optimizations are what make the game feel ‘smooth’ and needless to say, feeling smooth is very important in a hardcore platformer where micros within .5 seconds matter.
I have never seen a platformer more smooth than Celeste. And while the developers released Madeline’s controller scripts to public, the scripts were more than 5000 lines in length and not the cleanest to read. I found the scripts educational in certain ways but too difficult to reference. I did gain a lot of insights into how to make the handles smooth from a Youtube video “Why Does Celeste Feel So Good to Play?” at
https://www.youtube.com/watch?v=yorTG9at90g.
Introducing Coyote Time: the mechanic that enables the player to jump even after they leave the platform (within 4 frames). This gives some tolerance to the players by accounting for human errors.


Final Game Presentation


