Home › Guides › Levels and a difficulty curve from one prompt: how to describe them so they come out right

Levels and a difficulty curve from one prompt: how to describe them so they come out right

How to ask for levels, a speed ramp, star ratings and a level map in a prompt, what the preview shows, and how to fix a curve that spikes — with the exact sentences to type.

Updated October 2, 2026 · 1264 words · Ready-made apps · more on this topic

Describe three things — what changes per level, how fast it changes, and what finishing a level earns — and the agent generates a level table plus a map screen. Tune the curve by naming the level range that feels wrong.

Why levels are a data problem, not a code problem

The first version of a game built here has one loop: spawn things, move things, check collisions, keep score. Levels do not change that loop. They change its numbers: how fast obstacles fall, how many coins appear, how wide the gap is, how many moves you get. The agent therefore keeps levels as data — a list of rows with a number per parameter — and the loop reads the current row. That is why asking for fifty levels is cheap and why a curve can be fixed without touching the game itself.

It also means the prompt that produces good levels is a prompt about numbers and feelings, not about code. You say what should get harder and by how much; the agent decides the table.

The three sentences a level prompt needs

Whether you type it into the box on the home page or into the chat of a game that already runs, a level request works when it covers:

  • What changes. Speed, spawn rate, move budget, grid size, number of enemies, time limit. Name the one or two that matter; the agent will not invent a fourth.
  • How it changes. "Ten percent faster each level", "one more row every three levels", "the move budget shrinks by two until level 10, then stays". A ramp with a cap avoids the impossible level at the end.
  • What a level earns. Stars by moves or time, a score multiplier, an unlock. This is what makes a map screen worth having.

Here is the shape, written for a lane runner:

Add levels. Each level lasts 45 seconds. Obstacle speed starts at 1.0 and rises 8% per level, capped at 2.4. Coins per level go from 10 to 30 by level 10. Finishing a level awards one to three stars based on coins collected (under half, half, all). Add a level map screen with 20 levels; a level unlocks when the previous one has at least one star.

Everything in that paragraph is either a number or a rule, and the agent turns it into a levels table and two small screens. If you leave out the cap, say so on purpose: endless games want the ramp to continue.

What the preview shows you

After the request, the emulator preview reloads with the map screen first. Levels you have not unlocked are greyed; tapping an unlocked one starts the game with that row's numbers. The HUD shows the level and, if you asked for it, the star targets. Play two or three levels with the mouse to confirm the ramp exists at all — then install the test APK, because a thumb on glass is faster than a pointer, and early levels that feel tight in the preview are often fine on a phone.

For a mobile game, progress — which levels have stars — lives in component state or, once the game has a data layer, in a collection, because React Native has no localStorage. For a browser game the preview keeps it in localStorage, but the published site does not persist storage, so ask the agent to store progress in the backend if the link is going to real players. The leaderboard guide walks through that data layer.

Fixing a curve that spikes

Most curves fail in one of three ways, and each has a one-line fix:

  • A wall. Level 7 is where everyone quits. Say: "Levels 6 to 9 ramp too fast; spread the speed increase of level 7 across 6, 7 and 8." The agent edits those rows only.
  • A plateau. Levels 12 to 20 feel identical. Say: "From level 12 add a second kind of obstacle every two levels instead of raising speed." That is a new parameter, so the agent adds a column and a spawn rule.
  • An ending that is not one. Level 20 is beatable but nothing happens. Ask for a finish screen with total stars and a "play endless" button that keeps the last level's numbers and removes the timer.

Keep each fix to one message. The agent shows the changed rows in the chat, so you can see that level 7 went from 1.56 to 1.48 and nothing else moved.

Hand-made levels for puzzles

Runners and arcade games take a formula. Puzzle games want authored layouts: this grid, these blocked cells, this target picture. The trick is to describe the format once and then dictate levels in it:

Levels are 6x6 grids written as six rows of six characters: "." empty, "#" wall, "S" start, "E" exit, "K" key. Level 1: S....# .##..# .#K..# .##### .....E ###### Add a move budget per level and three stars for finishing within it.

From then on, "add level 4: …" followed by six rows is all it takes, and the agent appends a row. Ask for a "level editor screen" only if you want players to make levels; for your own authoring, the chat is the editor.

Stars, unlocks and the map screen

Stars are the cheapest retention feature a small game has, and they fall out of the level table: the row says what one, two and three stars require, the finish screen compares, the map draws them. A few rules that keep them meaningful:

  • Make three stars genuinely hard on the first try, so there is a reason to replay.
  • Gate the next world (levels 11 to 20, a new background) on a total star count, not on finishing every level — it lets players skip the one they hate.
  • Show the current best on the level tile, not only on the finish screen.

Say any of those in a sentence and the agent changes the rule in one place. The same goes for themes: "every ten levels change the background colour and the obstacle shape" is a column in the table, not a new screen.

Endless mode and daily runs

If the game is a score chase, levels can be invisible: the ramp continues forever and the "level" is only shown as a distance. Ask for "endless mode uses the level formula without a cap, and the score is distance plus coins". A daily run — the same seed for everyone for 24 hours — is one more sentence, and pairs well with the leaderboard: "add a daily board that resets at midnight UTC, keyed by the date". See how the board is stored before you promise it on a store listing.

Checklist before you ship levels

  • Play levels 1, 5 and the last one in the installed APK, not only in the preview.
  • Confirm the map remembers stars after closing the game — if it does not, the game needs a data layer.
  • Decide what happens after the last level: a finish screen, endless mode, or both.
  • Look at a few games made here to compare how their map screens are laid out before asking for a redesign.
  • If the game will carry ads, read where an interstitial fits between levels — the end of a level is the one place players accept one.

A difficulty curve is never finished; it is tuned by the people who play. Keep the rows readable, keep the fixes to one range at a time, and the game stays yours to adjust for as long as it lives.

Frequently asked

How many levels can I ask for?

As many as the data allows: levels are rows in a table the agent generates, so fifty levels cost the same as five. Hand-tuned levels with unique layouts take one message each.

Can I change the curve after the game exists?

Yes. Say which level range feels wrong and how ("levels 4 to 8 ramp too fast"); the agent edits the level data, not the game loop, and the preview reloads.

Do browser games get levels too?

Yes. The same level table works in a canvas game; the difference is where progress is saved — in memory or the backend, because the published site has no persistent storage.

Why does level 1 feel hard in the preview but easy on the phone?

Mouse input is slower than a thumb. Test the curve in the installed APK before tuning the early levels down.

Build it now — free to start

Type the idea, sign in, and the agent builds it in your browser. Change anything by describing it.

Open the builder ›