7 Steps: How to Make a Platformer Level in Geometry Dash

By Arron R.10 min read
To make a platformer level in Geometry Dash, open the editor, turn on Platformer in the level settings and build rooms with walls and hazards. Put a touch-trigg

Learning how to make a platformer level in Geometry Dash comes down to one surprise: platformer mode is just a setting on the level, and the tricky part is ending the level, not starting it. Classic Geometry Dash is an auto-runner. Your icon moves right by itself and you only control jumps. Platformer mode gives players control of horizontal movement too, so your level stops being a timed obstacle run and turns into a set of rooms that people explore at their own pace.

This guide takes you from a blank editor to an uploaded level. It also answers the two questions that stop almost every first-timer: how to end a platformer level, and how to build platforms that move or fall. At the end, if level design has you hooked and you want a platformer that runs outside Geometry Dash, there’s a section on building one in the browser.

How to make a platformer level in Geometry Dash, step by step

A platformer is a game where the main challenge is moving a character between platforms, jumping gaps and dodging hazards. Geometry Dash’s editor already has the blocks, spikes and portals you need. What changes is how you lay them out. Here are the seven steps.

  1. Create a new level. From the main menu, open the Create section, start a new level, give it a name and go into the editor.
  2. Turn on platformer mode. Open the level settings from inside the editor and enable Platformer. The same panel is where you pick the starting gamemode (cube, ship, ball and so on) and speed. If you leave Platformer off, the icon will auto-run through everything you build.
  3. Block out the first room. Lay down a floor, a left wall, a ceiling and an exit. Players can walk backwards now, so every room needs edges. In classic levels anything behind the player is irrelevant. Here, the player can reach it.
  4. Add hazards and one core mechanic. Spikes, saws and pits are your vocabulary. Choose one mechanic for the level, such as orbs, gravity flips or falling platforms, and build rooms around it.
  5. Add checkpoints. Platformer levels are longer and slower than classic ones, and sending a player back to the start after a mistake ten rooms in is the quickest way to make them quit. Put a checkpoint at the start of each room.
  6. Place the End trigger. A trigger is an invisible editor object that performs an action when it fires. Platformer levels have no automatic finish line, so you need an End trigger set to Touch Triggered. The next section covers this in detail.
  7. Playtest, verify and upload. Use the editor’s playtest constantly while building. When the level is done, you have to beat it yourself from the real start to verify it. Only then can you upload it.

That’s the whole skeleton of how to make a platformer level in Geometry Dash. Everything else is design quality: how fair the rooms feel, how readable the hazards are, and whether the ending works.

How do you end a platformer level in Geometry Dash?

This is the question new creators get stuck on most, often for an hour or more. A classic level ends when the icon reaches the end of the level, because the icon always moves forward. In platformer mode the player can stand still, turn around or wander, so the game can’t assume where the level ends. You have to tell it.

The End trigger setup

  1. Find the End trigger among the triggers in the editor’s build tab and place it where the finish should be.
  2. Select it, open its settings and turn on Touch Triggered. That makes the trigger fire when the player’s icon actually touches it, which is exactly how a finish line should behave.
  3. Put it somewhere the player can’t skip, such as inside a doorway, at the bottom of a shaft or across a narrow corridor.
  4. Add something visible on top: a flag, a glowing doorway or a decorated portal. Triggers are invisible in play, so without a marker players won’t know where the goal is.

Why the ending breaks

  • Touch Triggered is off. The trigger then isn’t tied to the player touching it, and the finish won’t act like a finish.
  • It’s out of reach. A trigger tucked into a corner the player can jump over is a level that can’t be finished. Test every route to the goal.
  • It sits in the wrong room. In big levels, creators sometimes leave a test End trigger in an early room. Search your level for stray triggers before you verify.
Diagram showing a touch-triggered End trigger placed inside a doorway at the finish of a platformer level
Put the End trigger where the player has to walk through it, and turn on Touch Triggered.

Platformer level design tips: falling platforms, rooms and pacing

Once the basics work, these patterns are what make a platformer level feel crafted rather than random.

Platforms that fall when the player lands

Lowering or falling platforms are a classic platformer request, and in Geometry Dash they’re built from parts you already know:

  1. Select the platform’s blocks and give them a shared group ID, a number that lets triggers target those objects together.
  2. Place a Move trigger that targets that group, with a negative Y movement so the platform goes down.
  3. Enable Touch Triggered on the Move trigger and place it just above the platform, so the player touches it when landing.
  4. Add easing so the drop starts slowly and reads clearly. An instant fall feels like a bug, but a short sink feels like a mechanic.

The same recipe, a group plus a touch-triggered Move, also gives you rising elevators, closing walls and crushers. Once your first level is uploaded, it’s worth learning the editor’s item and pickup triggers too. They power patterns like keys that open doors.

Design rooms in three beats

A reliable structure for each mechanic is teach, test, twist. First, show the mechanic somewhere safe. Next, ask the player to use it over a hazard. Finally, combine it with something they’ve already learned. Short, self-contained rooms with a checkpoint each make this easy to follow. The Celeste team took the same approach in Celeste 64, a 3D platformer built during a week-long game jam. It scatters checkpoint flags across its world and uses secret platforming challenges to help players get used to the controls.

Readability beats decoration

Players in platformer mode stop, look around and plan. That means they will notice every hazard that blends into the background. Keep deadly objects in one visual family, keep the floor clearly separate from decoration, and leave enough space around jumps that the camera shows where the player will land.

Common mistakes in first platformer levels

  • Building it like a classic level. Long horizontal corridors with spikes timed to music don’t make sense when the player controls speed. Think in rooms, not in a timeline.
  • No walls or ceilings. Players will try to walk off the left edge or jump over your carefully built gauntlet. Close every room.
  • Checkpoints too far apart. A hard room followed by a long walk back is tedious, not difficult.
  • Blind jumps. If the landing is off screen, the jump is a guess. Players hate guessing.
  • Testing only the intended route. Players will break your level. Try to skip sections, jump on top of walls and go backwards before you verify.
  • Making it too long before showing anyone. Upload a small level first. A short level with five clean rooms will teach you more about how to make a platformer level in Geometry Dash than a sprawling one you never finish.

Geometry Dash, Scratch or your own game: where to build a platformer

Geometry Dash belongs to the one-touch obstacle-runner family made popular by The Impossible Game, and its editor is designed around that heritage. It’s a great place to learn level design, but a level you make there only runs inside Geometry Dash. If you want your own character, your own physics and a game you can share as a standalone build, you need a different tool. Many people who start by learning how to make a platformer level in Geometry Dash end up asking how to make a platformer game from scratch, and the options look like this:

OptionWhat you controlBest forMain limit
Geometry Dash editorLayout, triggers, visualsLearning level design with ready-made physicsThe level only exists inside Geometry Dash
ScratchEverything, through visual code blocksLearning programming logic as a beginnerPlatformer physics and collisions take real effort to get right
Hand-coded with a library or engineEverythingDevelopers who want full controlYou write the movement, collisions and level loading yourself
AI game engine (WizardGenie)Everything, by describing it and iteratingGetting a playable custom platformer quicklyYou still need clear design decisions and playtesting

A game engine is the software that handles the repetitive parts of a game for you, like rendering, physics and input, so you can focus on the game itself. That’s the role the Geometry Dash editor plays for its levels. Outside it, you either pick an engine or build those pieces yourself.

Three ways to build a platformer level: the Geometry Dash editor, Scratch blocks, and WizardGenie with a prompt and live game preview
The same level idea can live inside Geometry Dash, in Scratch, or as your own standalone game.

Build your own platformer level with WizardGenie

If you’ve learned how to make a platformer level in Geometry Dash and want to take the same skills further, WizardGenie is the cleanest next step. It’s the AI game engine inside Sorceress. You describe the game you want, and WizardGenie writes it, runs it and iterates on it in real time. It runs on the web with nothing to install, and there’s also a Windows desktop app with an auto-updater, which gives you native file access and longer agent sessions. It works with the leading AI coding models, and you can switch between them freely with your own API key.

Here’s how to bring your Geometry Dash level design habits into it:

  1. Describe the room structure, not just the genre. “A side-scrolling platformer” is vague. “Five short rooms, each with a checkpoint at the entrance, spikes that reset you to the checkpoint, and a green exit door at the end of room five” is a design.
  2. Name your mechanic the way you would in the editor. For example: “In room three, platforms sink when the player lands on them, slowly at first, then they fall away.” This is the same falling-platform idea, explained in plain words instead of groups and triggers.
  3. Playtest and give one change at a time. “The jump is too floaty,” “The gap in room two is too wide,” “Move the checkpoint closer to the saw.” Small, specific notes produce clean iterations.
  4. Ask for the level as data. Request that rooms be stored as text grids or arrays (the next section shows what that looks like), so you can edit the layout yourself without touching movement code.

For art, Sorceress has dedicated tools: Auto-Sprite v2 (Pro) makes game-ready 2D character sprites and animations, and Tileset Forge (Pro) turns AI art into game-ready tilesets, with seamless tiling for floors and walls. For music and jump sounds, Sound Studio covers music, SFX and voice. The tools guide lists everything else, and the WizardGenie overview explains the engine in more depth.

What a platformer level looks like in code (Phaser example)

Under the hood, a platformer level is usually just a grid of characters. Here’s a short, complete Phaser 3 example that reads a text grid, builds solid blocks, spikes and a goal, and gives you a player who runs, jumps and respawns. It’s the same structure you’d ask WizardGenie to use, and a handy way to see how to make a platformer game from first principles. Load Phaser 3 on the page, then run this script.

const TILE = 32;
const LEVEL = [
  "                              ",
  "                              ",
  "                              ",
  "                    ####      ",
  "                              ",
  "            ###               ",
  "  P     ^         ^^     ^  E ",
  "#############   ##############",
];

class LevelScene extends Phaser.Scene {
  create() {
    this.solids = this.physics.add.staticGroup();
    this.spikes = this.physics.add.staticGroup();

    LEVEL.forEach((row, y) => {
      [...row].forEach((ch, x) => {
        const px = x * TILE + TILE / 2;
        const py = y * TILE + TILE / 2;
        if (ch === "#") this.solids.add(this.add.rectangle(px, py, TILE, TILE, 0x6c5ce7));
        if (ch === "^") this.spikes.add(this.add.triangle(px, py, 0, TILE, TILE / 2, 0, TILE, TILE, 0xff4757));
        if (ch === "P") this.spawn = { x: px, y: py };
        if (ch === "E") this.goal = this.add.rectangle(px, py, TILE, TILE, 0x2ed573);
      });
    });

    this.player = this.add.rectangle(this.spawn.x, this.spawn.y, 24, 24, 0xffd166);
    this.physics.add.existing(this.player);
    this.physics.add.existing(this.goal, true);

    this.physics.add.collider(this.player, this.solids);
    this.physics.add.overlap(this.player, this.spikes, () => this.respawn());
    this.physics.add.overlap(this.player, this.goal, () => {
      this.add.text(380, 40, "Level complete!", { fontSize: "24px" });
      this.physics.pause();
    });

    this.cursors = this.input.keyboard.createCursorKeys();
  }

  respawn() {
    this.player.body.reset(this.spawn.x, this.spawn.y);
  }

  update() {
    const body = this.player.body;
    if (this.cursors.left.isDown) body.setVelocityX(-180);
    else if (this.cursors.right.isDown) body.setVelocityX(180);
    else body.setVelocityX(0);

    if (this.cursors.up.isDown && body.blocked.down) body.setVelocityY(-420);
    if (this.player.y > LEVEL.length * TILE + 100) this.respawn();
  }
}

new Phaser.Game({
  type: Phaser.AUTO,
  width: 960,
  height: 256,
  backgroundColor: "#0b1020",
  physics: { default: "arcade", arcade: { gravity: { y: 900 } } },
  scene: LevelScene,
});

A few details carry over directly from Geometry Dash. The gap under the floating platform is a pit, and falling into it respawns you, just like a checkpoint reset. The goal is a touch-based finish, the code version of a touch-triggered End trigger. With 420 jump velocity and 900 gravity, the player clears about three tiles of height, so every platform in the grid has to sit within that reach. Change one number and you have to re-check the level, which is exactly why playtesting matters in any editor.

One trade-off to know: the spikes here use their full tile as a hitbox, which feels harsh. Shrinking hazard hitboxes slightly is a standard platformer trick for making deaths feel fair, and it’s a good first change to ask for once the level runs.

The workflow at a glance

  • In Geometry Dash: create a level, turn on Platformer in the level settings, build closed rooms, add one core mechanic, put a checkpoint in every room, place a touch-triggered End trigger behind a visible marker, then verify and upload.
  • For moving pieces: group the objects, then target them with a touch-triggered Move trigger. Easing makes the motion readable.
  • Before you verify: try to break the level by skipping, going backwards and jumping on walls, and remove stray test triggers.
  • Beyond Geometry Dash: describe your rooms, mechanics and checkpoints to WizardGenie, store the level as a grid, and iterate one playtest note at a time.

Once you know how to make a platformer level in Geometry Dash, you already understand the core of platformer design: rooms, readable hazards, fair checkpoints and a clear goal. Those skills transfer to any engine. The only real choice is whether your next level lives inside someone else’s game or inside your own.

Frequently Asked Questions

How do I make a Geometry Dash level as a beginner?

Open the Create menu, make a new level and go into the editor. Build one short section with ground, a few blocks and some spikes, then playtest it right away. Keep your first level small, with three or four rooms if it’s a platformer. Fix anything that feels unfair, then verify it by beating it from the start and upload it. Small finished levels teach you more than big unfinished ones.

How do I end a platformer level in Geometry Dash?

Platformer levels don’t end on their own, so you need to place an End trigger where the finish should be. Open the trigger’s settings and turn on Touch Triggered so it fires when the player actually touches it. Put something visible over it, like a flag or a doorway, so players know where the goal is. Then test that you can reach it from every route through the level.

How do I find my level ID in Geometry Dash?

A level only gets an ID once it’s uploaded. After uploading, open the level from your online levels and look at its info panel, which shows the ID number. Other players can type that number into the online search to find your level directly, so it’s worth copying it down when you share the level with friends or in a community server.

Is Geometry Dash considered a platformer?

Classic Geometry Dash is usually described as a rhythm-based auto-runner. Your icon moves forward by itself and you only control jumps and flight, much like The Impossible Game. Platformer mode changes that by giving players control over left and right movement, so levels made in that mode work like true platformers, where you move between platforms at your own pace.

How do I make platforms that fall when the player stands on them?

Give the platform blocks a group ID. Place a Move trigger that targets that group with a negative Y movement, enable Touch Triggered, and position the trigger just above the platform so the player touches it on landing. Add a short delay before the drop by chaining a spawn delay, or use easing so the fall feels readable rather than instant.

Can I make my own platformer game instead of a Geometry Dash level?

Yes. A Geometry Dash level only runs inside Geometry Dash, but you can build a standalone platformer with a game engine, with Scratch, or by writing code with a library like Phaser. An AI game engine such as WizardGenie lets you describe the platformer you want and then writes, runs and iterates on the game for you, which is a fast route for beginners.

Sources

  1. Platformer — Wikipedia
  2. The Impossible Game — Wikipedia
  3. Celeste 64: Fragments of the Mountain — Wikipedia
  4. Game engine — Wikipedia
Written by Arron R.·2,480 words·10 min read

Related posts