Game design

Why Does Celeste Feel So Good to Play?

Celeste feels good because every movement curve, grace window, feedback cue, and level interaction supports player intent.

The character has to feel good first

If you are making a platformer, the main character has to feel good before almost anything else can work. Sloppy physics, unresponsive controls, floaty jumps, and imprecise movement are toxic to the genre because every room asks the player to trust the character. If the player cannot put the hero where they meant to put them, the level design starts to feel unfair no matter how clever the layout is.

Celeste is one of the clearest modern examples of a platformer built around that trust. Madeline, the climber at the center of the game, feels tight, precise, and responsive. She can ping from platform to platform with fluidity and accuracy, but the controls do not only work in casual rooms. They also hold together in the game's toughest challenges, where players are asked to perform sequences that would collapse under loose movement.

That is why the feel of the character has to be treated as design, not just implementation. In a platformer, the player is constantly making tiny predictions: how far a run will carry, how quickly a jump will rise, whether a wall grab will catch, and whether a dash can still be corrected after commitment. Celeste answers those predictions consistently enough that the player can focus on solving the room instead of negotiating with the controls.

That feel comes from more than one magic number. It comes from run curves, jump shape, air control, camera framing, climbing, dashing, animation, sound, tiny pauses, hidden forgiveness, and a willingness to keep changing the character while the levels reveal what the game needs. Celeste is a useful case study because it shows how platformer feel is designed as a whole system, not tuned one variable at a time in isolation.

The run is short, fast, and controlled

A character's run can be split into three basic parts: acceleration, top speed, and deceleration. Acceleration is how long it takes the character to reach full speed after the player moves the stick. Deceleration is how long it takes the character to stop after the player lets go. Those two curves shape the first impression of control.

If acceleration and deceleration are too short, the character can feel stiff and robotic. Mega Man 11 is an example of movement that can read as very direct but also somewhat mechanical. If the curves are too long, the character can feel heavy when setting off, like Super Meat Boy, or slippery when stopping, like Super Mario Bros. 3. Mario games usually feel excellent, but Mario can still feel like he is running on ice at times because the stop takes a while.

Madeline sits at the short end of that spectrum. She reaches full speed in about six frames, roughly four times faster than Super Meat Boy. She comes to a stop in about three frames, about nine times faster than Mario in New Super Mario Bros. U. Those values are long enough that she still feels animated and human, but short enough that she almost immediately does what the player asks.

The curves are also short enough to make edge control reliable, but not so short that the character becomes a pure cursor. If Madeline reached full speed instantly and stopped instantly, the movement would lose some body. If she took much longer, the player would start compensating for inertia instead of reading the level. Celeste lands in the narrow space where the character still has motion, but that motion does not become the challenge by itself.

That is why slipping off a platform in Celeste rarely feels like the character drifted away from the input. The game is demanding, but the basic run does not fight the player. Madeline's top speed is also relatively low, and there is no separate run button that pushes her into a faster state. She moves quickly enough to feel fluid, but slowly enough that the player can stay in control at all times.

The jump is low, quick, and readable

The same kind of analysis applies to the jump. One useful measure is jump height relative to the character's body. In New Super Mario Bros. U, Mario can jump to about four times his own height. Meat Boy can jump much higher, to about six times his own height. Those numbers change how much space the character can cross and how much time the player spends in the air.

The jump curve matters too: the climb, the hang time, the fall, and the total jump duration. Meat Boy's tall and lengthy jump can make him feel floaty. Yarny from Unravel has a shorter jump with little hang time, which makes that woolly character feel surprisingly heavy. These are not right or wrong answers by themselves. They create different player expectations.

Madeline again stays short and sharp. She rises and falls quickly, but with enough hang time that the player can line up a landing. Her jump reaches about three times her own height, which is modest compared with many platformer heroes. Like the run, the jump is bouncy enough to feel alive but far from floaty. The player spends very little time waiting for gravity to return control.

Celeste also gives Madeline fast direction changes and strong air friction. If the player stops moving the stick in mid-air, Madeline almost immediately drops straight down. That makes precise landings easier because the player can cancel horizontal drift instead of watching the character sail past the intended spot.

The camera makes precision easier

The movement numbers are supported by the camera. Celeste is zoomed out, and many rooms are framed by a static viewpoint. The screen does not constantly chase, recenter, or lurch around while the player is trying to land a jump. If Madeline is the only major thing moving, it becomes easier to place her exactly where she needs to go.

That choice has a tradeoff. A zoomed-out view leaves less room for character and environment detail, especially in a pixel-art game. But the tradeoff supports the core experience. Celeste cares more about reading a room, planning a path, and trusting the character than about showing large close-up animation. The camera is not just presentation. It is part of the control design.

This is a useful reminder for any platformer. A character can have excellent movement code and still feel worse if the camera fights precision. A jump that feels fair on a stable screen can feel sloppy when the camera adds extra motion, hides the landing, or changes the player's visual reference point. Celeste's camera gives the controls room to be judged cleanly.

The numbers were tuned through feel

Madeline's movement is hard-coded rather than left to broad built-in gravity or physics defaults. That gave the developers exact control over input, acceleration, collision, friction, and special cases. The point was not to simulate a real body. The point was to make a platformer character who responds the way the player expects.

The specific values came from experience, intuition, experimentation, and playtesting. The team tried things, watched players, and changed the numbers when the movement did not create the intended rhythm. Some adjustments were small. Some were large. The character and the levels changed together throughout development.

Graphs and frame counts can explain the result after the fact, but they do not replace the process. A curve that looks elegant on paper may still feel wrong when the player is trying to correct a missed landing, chain a wall jump, or stop before a spike. Celeste's movement was not tuned to be mathematically impressive. It was tuned so the player could repeatedly form an intention and see Madeline respond.

That matters because a good platformer controller is not discovered by theory alone. You can graph run speed and jump height, but the final test is whether the player feels in control while solving real rooms. Celeste's movement works because the numbers support the game it became, not because they represent a universal formula every platformer should copy.

Climb and dash create different kinds of control

The basic run and jump are only the foundation. Celeste adds two core moves for scaling the mountain: climb and dash. Each one changes how the player thinks about space.

Climbing lets Madeline snap to a wall while the player holds a trigger. From there she can climb up, hold position, or spring away with a wall jump. Unlike a character who slides up and down walls loosely, Madeline sticks to surfaces with confidence. The move is limited by stamina: a hidden pool of 110 points that drains at different rates depending on whether the player is holding still, climbing, or doing a climb jump.

The dash is more explosive. Press the dash button and Madeline fires in the held direction. She can only dash once in mid-air until she touches the ground or grabs a crystal, and the game communicates that state by changing her hair color. The dash briefly takes control away because Madeline launches at maximum speed, but that lockout lasts only about 0.15 seconds. After that, the player gets control back and can cancel momentum before flying into danger.

That return of control gives the dash nuance. It is not only a fixed burst from point A to point B. It is a risky, expressive movement option with a short uncontrolled start and a controllable ending. Compared with the simpler dash in Celeste's PICO-8 precursor, the final version gives players more room to shape the move after committing to it.

The contrast between climb and dash is important. Climbing is stable, readable, and deliberate. Dashing is fast, forceful, and a little dangerous. Because both moves can solve some of the same spatial problems, the player is often choosing between security and speed. That choice gives rooms a rhythm: hold, release, burst, correct, recover, and try again.

Together, jump, climb, and dash turn Celeste into a rapid resource-management puzzle about vertical space. The player jumps, dashes, grabs a wall, releases to regain stamina, touches ground or crystal to refresh the dash, and launches again. Each move has a different feel, speed, and level of control. The dash is the chaotic option. The climb is the methodical option. Many rooms can be solved in more than one way because those tools overlap without feeling identical.

Feedback sells the movement

The numbers are not the whole feel. Art, animation, sound, vibration, and timing all help the player read movement as physical action. Celeste uses squash and squeeze on Madeline's jump to emphasize the motion in her body. Dust kicks up and the controller rumbles when she lands, selling the impact.

The dash gets its own punch. A four-frame pause and microscopic screen shake make the sudden burst feel heightened. A shadow trail and bright contrail emphasize speed and direction. These effects are short and subtle rather than overwhelming, but they do a lot of work. They make inputs visible. They tell the player that an action happened, where it went, and how hard it hit.

The brevity of the feedback matters. A pause that lasts too long would interrupt flow. A shake that is too large would make precision harder. A trail that lingers too much would clutter the room. Celeste uses these effects as punctuation marks, not decoration. They sharpen the player's understanding of timing and direction, then get out of the way before the next decision.

Celeste is not an excessive juice showcase where every button press becomes a fireworks display. The feedback is restrained enough that the room remains readable, which matters in a game about precision. But it is also strong enough that the character never feels like a sterile collision box moving through tiles. The feedback connects the player's hands to the character's body.

Forgiveness makes precision feel fair

Celeste can be extremely difficult, especially when the player goes after strawberries, cassette tapes, B-Side levels, and deeper optional challenges. Yet the game is also generous. Hidden in the code are many hacks and special cases that make the experience less punishing than it looks.

The best-known example is coyote time: a small window that lets the player jump a few frames after leaving a platform. The name comes from the old cartoon gag where a character runs past a ledge and hangs in the air for a moment before falling. In practice, coyote time means the game honours the player's intent when they press jump just a little late.

Celeste has many other grace notes. Dashing into a corner can slide Madeline around the platform edge instead of stopping her cold. Spikes use a slightly forgiving hitbox, so grazing the very tip is not always fatal. Certain blocks can still grant momentum even when the input is a little late. If the player starts a climb jump and quickly pushes away from the wall, the game can switch to a wall jump and refund the stamina. If the player presses jump just before touching the ground, the game can remember the input and execute it on landing.

These systems are not about making the game easy. They are about making mistakes feel like the player's mistakes, not the controller's mistakes. Pressing jump one frame before landing and getting nothing feels like the game ate the input. Celeste tries to interpret that button press as intent, so the player remains focused on solving and executing the room instead of feeling betrayed by timing.

That distinction is central to good action design. A strict simulation might ask whether the button was pressed on the exact legal frame. A player-facing control system can ask a better question: what did the player plainly mean to do? If the answer is clear, a tiny grace window can preserve the intended action while still leaving the challenge intact. Celeste is demanding because the rooms ask for skill, not because the input parser refuses to help at the edges.

The same grace windows also raise the skill ceiling. Casual players simply feel that the game is responsive and fair. Expert players learn the exact size of those windows and use them deliberately to cross gaps, chain moves, and route stages faster. Forgiveness and mastery are not opposites. A well-tuned grace window can make the game friendlier at first and deeper at the top end.

Advanced movement gives the game a ceiling

Celeste's movement code supports advanced techniques that turn its hardest stages into flowing dances. A forward dash can be cancelled into a massive jump that carries dash momentum through the air. If the player performs a version while crouching, the result is a lower but faster hyperdash. By spacing the dash and jump inputs slightly farther apart, players can extend these moves and regain the dash in mid-air.

Momentum can be chained even further. After an extended hyperdash, a diagonal down-forward dash can preserve and multiply speed in some situations, creating the ultradash. A dash cancel upward along a wall can create boosted height and vertical speed, often called an up-hyper or wallbounce.

What makes these techniques interesting is how smoothly they fit the level design. Many of them are intentional, and some are taught directly inside the game. They are not just glitches pasted onto a finished controller. They grow from the same movement rules that make the basic game feel responsive. The novice player can run, jump, climb, and dash through the main path. The expert player can read those same verbs at a much higher resolution.

That gives the controls a long life. A movement system with no advanced expression may feel good for the first hour and then flatten out. Celeste keeps revealing more depth because the same verbs can be timed, cancelled, extended, and chained. The result is not a separate expert game hidden inside the main game. It is the main game continuing to reward sharper understanding.

Movement should be fun in an empty room

One of the strongest lessons from Celeste is that the character should feel good even without a goal. If someone sits in an empty room with a controller, moving the character around should already be enjoyable. Before adding a mountain of content, the player itself should have enough responsiveness, rhythm, and expressiveness to be fun.

That idea is easy to underrate because platformers are usually judged by their levels. But levels only amplify the character. If the run feels mushy, the jumps feel floaty, and the dash feels unpredictable, a clever room will expose those problems immediately. If the character is fun to move with no goal, then levels can start asking interesting questions instead of compensating for basic feel.

Super Mario Sunshine is a good comparison point. Running around Delfino Plaza can be fun even before a specific objective appears because Mario's movement has enough texture, responsiveness, and playful options. Celeste has a very different style, but the principle is similar: the player should enjoy being the character before the game asks them to master the character.

Levels and movement shape each other

Movement is not finished before level design begins. In Celeste, adding mechanics such as pinball bumpers, trampoline clouds, moving blocks, wind, and aggressive hazards forced the team to revisit the movement code. A new level idea could reveal that the character needed a different number, and a controller change could force many rooms to change in response.

That iteration can be painful. A designer may tune the player character until it feels good, build a set of levels, test them, and discover that the character still needs to change. That means the levels need to change too. But this back-and-forth is not wasted work. It is how the game reveals what it wants to be.

Being willing to throw away work is part of that process. A cool idea or promising direction may not fit the actual game once it is playable. Removing it can still move the project forward because the attempt becomes knowledge. The team learns more about the character, the rhythm, the room size, the challenge level, and the moves that belong in the final game.

This is why polishing movement before adding content does not mean freezing it too early. The controller needs to be good enough that levels can test it honestly, but it also needs to remain flexible enough to respond when the levels expose a weakness. Celeste's final feel comes from that loop: movement creates level ideas, level ideas stress movement, and both keep changing until the game becomes coherent.

Celeste is one answer, not the only answer

Celeste shows one excellent way to make a platformer feel tight and responsive, but it is not the only valid movement style. Change the curves and the game changes. Playdead's Inside uses realistic animation and weight. N+ pushes intense air control. Sonic games are about building and maintaining momentum, so Sonic's long acceleration curve and difficulty stopping are not accidents. They serve a different fantasy.

The important lesson is not that every platformer should copy Madeline's numbers. The lesson is that the numbers have to serve the intended play. Acceleration, deceleration, top speed, jump height, hang time, air friction, camera, feedback, forgiveness, and skill ceiling all work together. If one part contradicts the others, the player feels it immediately.

Madeline remains a strong place to start when thinking about platformer character design because her movement exposes the main questions so clearly. Get the basic curves right. Add mechanics that create meaningfully different ways to navigate space. Use feedback to emphasize motion. Forgive tiny timing and collision errors when the player's intent is clear. Leave room for advanced mastery. Keep testing, tweaking, and cutting while the levels teach you what the game actually needs.

That is why Celeste feels so good to play. The controls are not simply precise. They are precise in service of intent, readable in motion, generous at the edges, expressive at the top end, and flexible enough to grow with the levels around them.