New game guide
How to make a good game, starting from one verb
A method that works for a first game and a tenth one. Find the action that is fun, prove it in a short slice, watch strangers play it, tune the feel with real numbers and start collecting wishlists early.
The short answer
To make a good game, pick one core action, build the loop around it and prove it in a 10-minute vertical slice before you make more content. Watch five new players try it without helping, keep the scope small enough to finish in about a month, and tune the feel with concrete values such as 0.1 seconds of coyote time. Put a Steam Coming Soon page up early, because Valve requires one to be public at least two weeks before release.
Most advice about making a good game is true and hard to act on. Make it fun, find the fun, polish it. None of it tells you what to do on Monday morning. This guide is a sequence you can follow, with the numbers working developers use and an order that stops you from spending months on content for a game that is not fun yet.
The order matters more than any single tip. A core verb comes before a level, a level before a slice, and a slice tested with strangers before any art pass. Each step is cheap to throw away, and each one tells you whether the next step is worth doing.
It works in any engine. Where Summer helps, the page says exactly how, with templates to start from, an agent that builds and runs the game, and MCP tools that let an agent play the game and read its state back.
What it does
One verb and its loop
Name the one action the player repeats, then the reason to do it again. Jump to reach a ledge, reach it to collect a key, use the key to open the next room. That chain is the loop.
A 10-minute slice first
Build ten minutes of play close to final quality before you build the other fifty levels. It is the cheapest proof that the loop holds up.
Watch, do not ask
Five new players per round, silent observation, and notes on where they stop, what they try and where they smile.
A scope you can finish
About a month for a first game, with one mechanic, one setting and three to five levels. Finishing teaches what prototypes skip.
Feel in numbers
Coyote time, jump buffering, variable jump height and hit feedback are values you can read, change and test, not a mystery.
A store page early
Wishlists take months to collect, and Steam requires a public Coming Soon page for at least two weeks before a new game releases.
How it works
- 1
Step 1: Write the verb and the loop
One line each. The verb is what the player presses. The loop is the verb, the reward and the reason to press again. If the loop needs more than three parts, cut until it does not.
- 2
Step 2: Greybox the verb in one room
No art. Boxes, one test room and the core action with a placeholder sound. Tune it until pressing the button is satisfying with nothing else on screen.
- 3
Step 3: Build a 10-minute vertical slice
One short level from start to end with the real loop, one obstacle type, a way to win, a way to fail, a title screen and near-final feedback. This is what you show people.
- 4
Step 4: Test with five strangers
Give each tester the controls and say nothing. Write down every stop, every wrong guess and every smile. Fix the top three problems, then test five new people.
- 5
Step 5: Cut the scope to a month
List every feature, keep the ones the slice proved, and move the rest to a list called later. Plan three to five levels or one loop that repeats with variation.
- 6
Step 6: Open the Steam page
When the slice looks like the game, put up a Coming Soon page with capsule art and a short gameplay clip so wishlists start collecting while you build the rest.
Two ways to run it
In Studio, or from the agent you already use
In Summer Studio
Once the verb is proven, Studio generates what the slice still needs, such as sprites, 3D models, sound effects, music and voice lines, into the same asset library the desktop engine uses. Use it after the greybox test, not before it.
Open Summer StudioFrom Claude, Cursor or Codex via MCP
From Claude Code, Cursor or Codex with the Summer MCP, an agent can build the slice, run it, send input with summer_game_input and read the game state back with summer_game_probe. That is useful for checking that a level can be finished and that values like coyote time are wired as intended. It does not replace watching people play.
Example prompt for your agent
Read the Summer project context, add 0.1 s of coyote time and a 0.1 s jump buffer to the player controller, then run the game, walk off the first ledge, press jump shortly after, and report whether the jump fired.Set up the Summer MCP
| Constant | Value | What it does |
|---|---|---|
| JumpGraceTime | 0.1 s | Coyote time. A jump still works for 0.1 s after walking off a ledge |
| VarJumpTime | 0.2 s | How long holding jump keeps the jump rising, which gives variable jump height |
| HalfGravThreshold | 40 px/s | Near the top of a jump, gravity is halved while jump is held, so the apex floats slightly |
| Gravity | 900 px/s per s | Downward acceleration |
| MaxFall and FastMaxFall | 160 and 240 px/s | Normal fall speed cap, and the faster cap while holding down |
| MaxRun and RunAccel | 90 px/s and 1000 px/s per s | Top run speed, reached in under a tenth of a second |
| AirMult | 0.65 | Horizontal acceleration in the air is 65% of the ground value |
| DashSpeed, DashTime, DashCooldown | 240 px/s, 0.15 s, 0.2 s | The dash and how soon it can be used again |
Examples
Prompts that work, and what comes back
Things to try this week. Each one works with the built-in agent or through the MCP, and each ends in something you can play or act on.
Greybox the verb
Prompt
Start a new 2D project with one grey test room and a player that can only jump. Add a jump sound and a small squash on landing.
What you get
A playable room where the only thing to judge is how the jump feels.
Tune the jump
Prompt
Set coyote time to 0.1 s, add a 0.1 s jump buffer, end the upward boost when jump is released, and expose all three values in the inspector.
What you get
Tuning values you can change and retest in seconds.
Build the slice
Prompt
Turn the grey room into a 10-minute level with three sections that reuse the jump in new ways, one hazard, a checkpoint, a goal and a title screen with restart.
What you get
A short, finished slice you can hand to a stranger.
Run a silent playtest
Prompt
Five testers who have never seen the game. Say nothing. Note every stop longer than five seconds, every wrong guess and the moment each one first smiles.
What you get
The three problems to fix before the next round.
Check the level can be finished
Prompt
Run the game, play through the slice with scripted input, and report any jump the player cannot make with the current values.
What you get
A list of gaps that are too wide before a human ever hits them.
Pick one verb and build the loop around it
A verb is the thing the player does most, written as one word. Jump, shoot, dash, place, steer, match, talk. The best small games often have exactly one and spend every level finding new uses for it. Celeste has jump, dash and climb, and every screen is a puzzle built from those three. Its dash moves at 240 pixels per second for 0.15 seconds with a 0.2 second cooldown, values you can read in the source its developers published.
The loop is the verb plus a reason to repeat it. Write it as a short chain. Dash to cross a gap, cross the gap to reach a collectible, collect it to open a harder route. If you cannot write the loop in one line, the game does not have one yet, and more content will not add it.
Test the verb alone first. In an empty grey room with no goal, is pressing the button still fun for a minute? If yes, you have something to build on. If no, change the verb before you build anything else.
Build a 10-minute vertical slice before content
A vertical slice is a short, finished piece of the game with a start, the loop, a challenge, an ending and feedback close to final. Ten minutes is long enough to show whether the loop holds up and short enough to rebuild in a week if it does not.
Resist the pull toward content. More levels, enemies and story all multiply the cost of every later change. A slice that is fun makes content easy to justify. A slice that is not fun turns content into a way to avoid the problem.
- One level from start to finish, with a way to win and a way to fail
- The real core loop, repeated at least three times with small variations
- Placeholder art is fine, placeholder feedback is not, so sounds and hit reactions go in now
- A title screen, restart and quit, so testers never need your help
Playtest with five strangers and watch instead of asking
Jakob Nielsen's usability research found that about five users uncover roughly 85% of the problems in a design, and that three rounds of five teach more than one round of fifteen. Games are not websites, but the lesson carries over. Small, repeated tests beat one big one.
Strangers matter. Friends are kind, and anyone who watched you build the game already knows the answers. Hand over the controls, say nothing, and note where players stop, what they try that does not work and where they smile. What they do is more reliable than what they say afterwards. If three of five miss the same jump, the jump is the problem.
When you are ready for strangers you cannot sit next to, Steam Playtest is a free, separate app attached to your store page. Players request access from the page, and the playtest does not touch your reviews or wishlists.
The first-game scope rule
Make the first game small enough to finish in about a month, with one mechanic, one setting and three to five levels or one loop that repeats with variation. Finishing teaches the parts prototypes skip, such as menus, save data, builds, store pages and bugs that only appear on someone else's computer.
Small does not mean unambitious. Celeste Classic was made by two developers in four days in PICO-8, and it grew into the full Celeste, released on Steam in January 2018. The small version proved the idea first.
A quick test is to write the whole game on one page. If the page needs a second sheet, cut features until it does not.
Game feel with concrete numbers
Game feel is the difference between a jump that feels sticky and one that feels right, and it lives in a handful of values. The Celeste developers published their Player class, so you can read their values instead of guessing. The table above lists the key ones.
Coyote time lets a jump register for a moment after the player walks off a ledge, and Celeste uses 0.1 seconds. Jump buffering does the reverse, remembering a jump pressed just before landing and firing it on touchdown. A buffer of about 0.1 seconds is a good starting point. Players never notice either one, they only notice when it is missing.
Feedback is the other half. Every input should answer with a sound, an animation and a change in the world. Add them in layers and play after each one, the way Jan Willem Nijman does in his talk The Art of Screenshake, where a flat shooter becomes a satisfying one without any change to its rules.
- Coyote time around 0.1 s
- Jump buffer around 0.1 s
- Variable jump height, so a tap gives a short hop and a hold gives a full jump
- Falling that caps at a readable speed, with a faster cap when the player holds down
- A short sound and a visual reaction on every hit
Put up a Steam Coming Soon page early
Steam requires a Coming Soon page to be public for at least two weeks before a new product releases, and Valve recommends posting it as soon as you are ready to talk about the game publicly. Its documentation says there is no strong downside to a long Coming Soon period and that wishlists collected far ahead of launch can convert as well as later ones.
Valve's caveat is useful too. If the art direction or core features may still change a lot, wait, because early wishlisters may be confused by a very different game. That is one more reason to finish the vertical slice first. When the slice looks like the game, it is ready to become the store page.
Publishing on Steam costs a 100 USD Steam Direct fee per game, recouped after that game earns 1,000 USD. The money guide covers the full list of fees, store shares and waiting periods.
What to do once your game works
Port it to make money
For a first commercial game, Steam and itch.io are the usual stores for a desktop build, and neither needs an invite. Steam charges a 100 USD Steam Direct fee per game, recouped after 1,000 USD in revenue, and needs a public Coming Soon page for at least two weeks. itch.io is free to upload to and lets you set its revenue share yourself. Summer exports Windows and macOS builds for both.
How to make money from indie gamesRelease it on Summer Games
Summer Games is a new store for games made with Summer. It is launching soon. A new game is well placed for it if it is built in Summer from the start, finished and reviewed, and single-player first. The slice-first method on this page produces exactly that kind of game.
See Summer Games (launching soon)Grow it
Start growing while you build. The Coming Soon page collects wishlists, capsule art decides whether anyone clicks, a trailer shows your verb in the first seconds, and creators who play your genre bring players. The marketing guide covers each step.
How to market an indie gameRemake it in Summer
If you already have a jam game or an abandoned prototype with a good verb, a remake is often faster than a new idea. Start from a template, give the agent the old code and your notes as the spec, rebuild one system at a time and playtest each one in the engine.
Remake your game in SummerFrequently asked questions
What makes a game good?
A core action that feels good on its own, a loop that gives a reason to repeat it, feedback on every input, and a scope small enough that everything in it gets polished. Games that feel bad usually have too many ideas and too little tuning.
How do I make a good gameplay loop?
Write it as a chain of the verb, the reward and the reason to do it again, for example jump to reach, reach to collect, collect to open the next room. Test it in a greybox room. If it is not fun with boxes, art will not fix it.
What is a vertical slice?
A short piece of the game finished to near final quality, with a start, the core loop, a challenge, an ending and real feedback. Aim for about ten minutes of play, and build it before the rest of the content.
How many playtesters do I need?
About five per round. Nielsen's usability research found that five users uncover roughly 85% of problems, and several small rounds beat one big one. Use strangers and watch them rather than asking what they think.
What is coyote time?
A short window after the player leaves a ledge in which a jump still works. Celeste uses 0.1 seconds. It makes jumps feel fair, because players press slightly late more often than they realise.
How do I make my game more fun?
Make the core action satisfying before you add anything. Tune it in a grey room, add feedback on every input (a sound, an animation and a change in the world), and cut features that playtesters skip. Fun is usually subtraction and tuning, not more content.
Does this work for Roblox or Scratch games?
Yes. The verb, the slice, silent playtests and small scope apply in any tool. Only the game feel numbers change, because each engine measures speed and time in its own units.
Can I make a good game in Summer?
Yes, with the same method. Summer is a desktop engine for macOS and Windows with a built-in agent that edits scenes and GDScript and runs the game, and it exports desktop builds for Steam and itch.io. It does not decide what is fun. Your playtests do.
Related tools and guides
Sources
- NoelFB/Celeste, Source/Player/Player.cs (MIT licensed)
- Noel Berry, Celeste Classic (made in 4 days with PICO-8)
- Celeste on Steam (release date 25 January 2018)
- Jakob Nielsen, Why You Only Need to Test with 5 Users (2000)
- Jan Willem Nijman, The Art of Screenshake, INDIGO Classes 2013
- Steamworks, Coming Soon page
- Steamworks, Steam Playtest
- Steamworks, Steam Direct fee
- itch.io, Accepting payments and getting paid
Make your game. Grow your game.
Even if it is built in another engine.
Free to download for macOS (Apple silicon) and Windows.