Celeste, the critically acclaimed indie platformer known for its challenging gameplay and touching narrative, was developed using a popular game engine called MonoGame. MonoGame is an open-source implementation of the Microsoft XNA 4 Framework. It allows developers to create games with rich graphics and smooth gameplay on various platforms.
The creators of Celeste initially built a prototype of the game in only four days during a game jam using the LÖVE game framework, which is a framework for making 2D games in the Lua programming language. However, for the full release, they moved to MonoGame to take advantage of its additional features and broader platform support.
MonoGame provided the developers with the tools needed to bring their vision to life, offering powerful capabilities to handle graphics, audio, and input, which are crucial for a precision platformer like Celeste. Furthermore, being an open-source framework, MonoGame gave them the flexibility to modify and optimize the code as necessary to suit their specific needs.
An example of how one might handle input in a MonoGame project, which would be critical for a platformer such as Celeste, is shown below:
This simple input handling allows a character to move in response to player inputs from the keyboard. The
PlayerInput class method
GetMovementDirection returns a normalized
Vector2 representing the direction the player character should move based on which keys are pressed.
Overall, MonoGame's flexibility and cross-platform capabilities were instrumental in the development and success of Celeste. Developers Matt Thorson and Noel Berry, along with their team, were able to leverage MonoGame's features to craft a game that feels great to play on multiple systems and received widespread acclaim for its tight controls and striking pixel art visuals.