summer-engine 4.5.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/.factory-plugin/plugin.json +1 -1
- package/CHANGELOG.md +13 -0
- package/dist/cli/commands/setup.js +175 -32
- package/dist/installer/agent-config.d.ts +29 -0
- package/dist/installer/agent-config.js +75 -11
- package/dist/installer/agent-detect.d.ts +44 -0
- package/dist/installer/agent-detect.js +166 -0
- package/dist/installer/agent-table.d.ts +19 -0
- package/dist/installer/agent-table.js +130 -0
- package/dist/installer/setup-error.d.ts +19 -0
- package/dist/installer/setup-error.js +34 -0
- package/dist/installer/version-check.d.ts +5 -0
- package/dist/installer/version-check.js +21 -0
- package/dist/mcp/ops-surface.d.ts +7 -0
- package/dist/mcp/ops-surface.js +12 -1
- package/dist/project-memory/agent-instructions.js +11 -3
- package/gemini-extension.json +1 -1
- package/library/skills/make-game/SKILL.md +4 -4
- package/package.json +1 -1
- package/registry/generated/gemini-extension.json +1 -1
- package/registry/generated/index.json +1 -1
- package/registry/generated/marketplace.claude.json +1 -1
- package/registry/generated/plugin.claude-directory.json +2 -2
- package/registry/generated/plugin.claude.json +1 -1
- package/registry/generated/plugin.codex.json +1 -1
- package/registry/generated/plugin.cursor.json +1 -1
- package/registry/generated/plugin.factory.json +1 -1
- package/registry/generated/server.json +2 -2
|
@@ -23,6 +23,13 @@ import type { HostedLocalHook } from "./hosted-mount.js";
|
|
|
23
23
|
*/
|
|
24
24
|
export declare const SUMMER_SEARCH = "summer_search";
|
|
25
25
|
export declare const SUMMER_CALL = "summer_call";
|
|
26
|
+
/**
|
|
27
|
+
* The first-game look rule. It opens the engine instructions because clients
|
|
28
|
+
* keep only the start of long server instructions (Codex: the first 512
|
|
29
|
+
* characters), and a project's first frame decides whether the person keeps
|
|
30
|
+
* going. The same rule is in the AGENTS.md block (project-memory/agent-instructions.ts).
|
|
31
|
+
*/
|
|
32
|
+
export declare const FIRST_GAME_LOOK_RULE: string;
|
|
26
33
|
export declare const OPS_MCP_INSTRUCTIONS: string;
|
|
27
34
|
/** The assets profile's version: no engine tools, so it names none. */
|
|
28
35
|
export declare const OPS_MCP_ASSETS_INSTRUCTIONS: string;
|
package/dist/mcp/ops-surface.js
CHANGED
|
@@ -29,7 +29,18 @@ import { FOOTER_SUFFIX } from "../core/library-read.js";
|
|
|
29
29
|
*/
|
|
30
30
|
export const SUMMER_SEARCH = "summer_search";
|
|
31
31
|
export const SUMMER_CALL = "summer_call";
|
|
32
|
-
|
|
32
|
+
/**
|
|
33
|
+
* The first-game look rule. It opens the engine instructions because clients
|
|
34
|
+
* keep only the start of long server instructions (Codex: the first 512
|
|
35
|
+
* characters), and a project's first frame decides whether the person keeps
|
|
36
|
+
* going. The same rule is in the AGENTS.md block (project-memory/agent-instructions.ts).
|
|
37
|
+
*/
|
|
38
|
+
export const FIRST_GAME_LOOK_RULE = "First game in a new project: make it look finished, even if they asked for a quick prototype, because the first frame decides if they keep going. " +
|
|
39
|
+
"Keep their features and raise the look: sky and sun with shadows, fog, a texture on every surface, real models for player, characters and props (starter project and summer_assets_search first, never capsules or boxes as final art), one palette, a styled UI font. " +
|
|
40
|
+
"Before you say it is ready, play it and check a screenshot of the running game.";
|
|
41
|
+
export const OPS_MCP_INSTRUCTIONS = "Summer Engine MCP. " +
|
|
42
|
+
FIRST_GAME_LOOK_RULE +
|
|
43
|
+
" Write GDScript files directly; create scenes and import assets through Summer while the project is open. summer_get_project_context tells you which project you are connected to. " +
|
|
33
44
|
"Listed tools are the common jobs; for anything else, summer_search describes the job in words and returns the operation and its exact input, then summer_call runs it. " +
|
|
34
45
|
"More than 3 scene edits: one summer_run_script with scenePath. Each engine tool's full guide: summer_docs_read. Long work answers with a job: jobs.wait. " +
|
|
35
46
|
"Going live: skill/release-checklist, then store.go_live with the person's yes; a game is live once Summer's automated checks pass, so never tell anyone to wait for a review. Prices and other live changes may answer needs_approval with a link: give it to the person. " +
|
|
@@ -36,10 +36,18 @@ export function renderAgentsBlock(commands = projectCommands()) {
|
|
|
36
36
|
"",
|
|
37
37
|
"This is a game made with Summer Engine, the game engine built for AI. Game code is GDScript (`.gd`), scenes are `.tscn`, resources are `.tres`, and `project.godot` is the project file.",
|
|
38
38
|
"",
|
|
39
|
+
"## First game: make it look finished",
|
|
40
|
+
"",
|
|
41
|
+
"People judge Summer by the first frame of their first game, so make it look finished even when they ask for a quick prototype. Keep the features they asked for and raise the look:",
|
|
42
|
+
"- sky and sun with shadows, tonemapping, a little fog;",
|
|
43
|
+
"- a texture on every surface, and real models for the player, characters and main props (the starter project and the Summer asset library first), never capsules or boxes as final art;",
|
|
44
|
+
"- one colour palette and a styled UI font.",
|
|
45
|
+
"Before you say it is ready, play it and look at a screenshot of the running game, not the editor: the editor shows a preview sky and sun that the game does not have.",
|
|
46
|
+
"",
|
|
39
47
|
"## How to work on it",
|
|
40
48
|
"",
|
|
41
|
-
"-
|
|
42
|
-
"- With Summer's MCP server,
|
|
49
|
+
"- Write GDScript (`.gd`) files directly. Create and change scenes and import assets through Summer while Summer Engine has the project open: it imports new files, and the editor rewrites `.tscn` files when it saves, so hand edits to an open scene get lost.",
|
|
50
|
+
"- With Summer's MCP server, use the `summer_*` tools; `summer_get_project_context` tells you which project you are connected to. Without it, run the same operations as `summer` commands in the shell (the `summer-cli` skill). If `summer` is missing or older than 4.0, use `npx -y summer-engine@latest` in its place.",
|
|
43
51
|
"- Summer's skills teach each part of a game. `npx -y summer-engine@latest setup <agent> --yes` installs them for your agent (add `--cli` for no MCP server). Start with `using-summer`, and find the right one with `summer docs search --query \"<the task>\"`.",
|
|
44
52
|
"- `.summer/` is the project's memory: `GameSoul.md` says what the game is, `memory/` holds the decisions to keep. Read them before you change the game's look, sound or story.",
|
|
45
53
|
"- Check your own work: script errors, a screenshot, a play run. Ask the person to play only for feel and fun.",
|
|
@@ -50,7 +58,7 @@ export function renderAgentsBlock(commands = projectCommands()) {
|
|
|
50
58
|
"",
|
|
51
59
|
"## Publishing",
|
|
52
60
|
"",
|
|
53
|
-
"The `publish-your-game` skill has the steps; `summer ops search \"publish my game\"` finds each operation.
|
|
61
|
+
"The `publish-your-game` skill has the steps; `summer ops search \"publish my game\"` finds each operation. Going live needs the game owner's yes. A game goes live as soon as Summer's automated checks pass; Summer's staff review it after it is live, so never tell anyone to wait for a review.",
|
|
54
62
|
SUMMER_BLOCK_END,
|
|
55
63
|
].join("\n");
|
|
56
64
|
}
|
package/gemini-extension.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED from integrations/gemini — do not edit; npm run generate:registry",
|
|
3
3
|
"name": "summer",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.6.0",
|
|
5
5
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. The Summer Engine MCP server, context primer and game-dev skills.",
|
|
6
6
|
"contextFileName": "GEMINI.md",
|
|
7
7
|
"mcpServers": {
|
|
@@ -48,7 +48,7 @@ These rules from the playbooks apply to every genre:
|
|
|
48
48
|
|
|
49
49
|
- **2D scales to the viewport.** Set `display/window/stretch/mode = canvas_items` and `stretch/aspect = expand`; UI uses Control anchors; code-positioned nodes compute from `get_viewport_rect().size`. Never hardcode 1920x1080.
|
|
50
50
|
- **Playable slice, not tech demo.** Name the core loop in one sentence; every input gets feedback (tween, sound, particle, flash, shake); progression is visible; a restart exists. The bar is "feels good for 30 seconds".
|
|
51
|
-
- **
|
|
51
|
+
- **The first playable already looks good.** People judge Summer by the first frame of their first game, so the first version looks finished even when they ask for a quick prototype: keep the features they asked for and raise the look. Sky and sun with shadows, tonemapping and a little fog; a texture on every surface; real models for the player, characters and main props from the starter project or the Summer asset library (`summer_assets_search`), never capsules or boxes as final art; one colour palette; a styled UI font. Generation takes minutes, so it never blocks the first play: use starter and library art first, plus at most one or two generated assets the person asked for, and generate the rest in later passes. Before you say it is ready, play it and look at a screenshot of the running game, not the editor (the editor shows a preview sky and sun that the game does not have).
|
|
52
52
|
- **A way back to the title.** From inside play, a pause menu or a **Leave** button returns to the title screen without quitting the app.
|
|
53
53
|
- **Text the default font can show.** No emoji or symbols (▲ ◀ ★ ♥ ✓) in UI text: they render as boxes with hex codes. Use words or icons; see `ui-basics`.
|
|
54
54
|
|
|
@@ -201,7 +201,7 @@ Repeat until every mechanic in the plan is implemented OR the user calls cut.
|
|
|
201
201
|
|
|
202
202
|
## Phase 5: Layer (look + sound)
|
|
203
203
|
|
|
204
|
-
**Goal**: the
|
|
204
|
+
**Goal**: deepen the look and add sound. The first playable already looks good (see "The first playable already looks good" above); this phase writes the art bible, replaces the remaining stand-in art and adds audio.
|
|
205
205
|
|
|
206
206
|
```
|
|
207
207
|
Skill: art-direction
|
|
@@ -276,7 +276,7 @@ If the brief said "jam" or "prototype", skip this phase. If the brief said "game
|
|
|
276
276
|
|---|---|
|
|
277
277
|
| Skip the brainstorm because the user said "FPS" | Even with the genre named, you need the scope cut list. Otherwise mechanic 4 quietly sneaks in and the game never ships. |
|
|
278
278
|
| Let mechanic 2 start before mechanic 1 is verified clean | Compounding bugs. You'll spend the rest of the session debugging which mechanic broke what. |
|
|
279
|
-
|
|
|
279
|
+
| Change the art style while mechanics are unfinished | Art changes are reversible only if the underlying scene structure is stable. Get mechanics done before a new style; the first playable still starts good-looking. |
|
|
280
280
|
| Treat "polish" as required | If the brief says "jam in 2 days", polish is a cut item. Respect the brief. |
|
|
281
281
|
| Run all phases without confirming | The user owns scope. Stop at every checkpoint. |
|
|
282
282
|
| Ship online play behind a setting nobody changes | Hosted join is never exercised, so it breaks without anyone noticing. Reachable by default, or the owner joins online before every release. |
|
|
@@ -313,7 +313,7 @@ No Summer MCP tools in this session? Run each one as a command; when `summer --v
|
|
|
313
313
|
|
|
314
314
|
| In this skill | Command |
|
|
315
315
|
|---|---|
|
|
316
|
-
| `assets.search` | `summer assets search` |
|
|
316
|
+
| `assets.search`, `summer_assets_search` | `summer assets search` |
|
|
317
317
|
| `summer_docs_read` | `summer docs read` |
|
|
318
318
|
| `summer_add_node` | `summer engine add-node` |
|
|
319
319
|
| `summer_batch` | `summer engine batch` |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "summer-engine",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.0",
|
|
4
4
|
"description": "MCP server, CLI and skills for Summer Engine, the game engine built for AI. Connect Claude Code, Cursor, Codex and other agents to build, test and publish full games to summer.games.",
|
|
5
5
|
"mcpName": "io.github.SummerEngine/summer",
|
|
6
6
|
"keywords": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED from integrations/gemini — do not edit; npm run generate:registry",
|
|
3
3
|
"name": "summer",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.6.0",
|
|
5
5
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. The Summer Engine MCP server, context primer and game-dev skills.",
|
|
6
6
|
"contextFileName": "GEMINI.md",
|
|
7
7
|
"mcpServers": {
|
|
@@ -2284,7 +2284,7 @@
|
|
|
2284
2284
|
"id": "skill/make-game",
|
|
2285
2285
|
"kind": "skill",
|
|
2286
2286
|
"version": "1.2.0",
|
|
2287
|
-
"content_hash": "
|
|
2287
|
+
"content_hash": "b6078a16547b4d8e14ccc75125b1f3be70543e30f3fb6bc2ab508f5ddae8e069",
|
|
2288
2288
|
"summary": "Orchestrate 'make me a game': brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship.",
|
|
2289
2289
|
"use_when": [
|
|
2290
2290
|
"the user says 'make me a game', 'build me a game', 'I want to make a [genre] game', or 'let's build something' — running the full game-dev pipeline",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "summer",
|
|
12
12
|
"source": "./",
|
|
13
|
-
"version": "4.
|
|
13
|
+
"version": "4.6.0",
|
|
14
14
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. A first-run guide (/summer:start), game-dev skills, and two MCP servers: the bridge to the Summer Engine desktop app, and Summer's hosted cloud server for people without it.",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "Summer Engine",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "summer",
|
|
4
4
|
"displayName": "Summer Engine",
|
|
5
|
-
"version": "4.
|
|
5
|
+
"version": "4.6.0",
|
|
6
6
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. A first-run guide (/summer:start), game-dev skills, and two MCP servers: the bridge to the Summer Engine desktop app, and Summer's hosted cloud server for people without it.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Summer Engine",
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"command": "npx",
|
|
159
159
|
"args": [
|
|
160
160
|
"-y",
|
|
161
|
-
"summer-engine@4.
|
|
161
|
+
"summer-engine@4.6.0",
|
|
162
162
|
"mcp"
|
|
163
163
|
]
|
|
164
164
|
},
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "summer",
|
|
4
4
|
"displayName": "Summer Engine",
|
|
5
|
-
"version": "4.
|
|
5
|
+
"version": "4.6.0",
|
|
6
6
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. A first-run guide (/summer:start), game-dev skills, and two MCP servers: the bridge to the Summer Engine desktop app, and Summer's hosted cloud server for people without it.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Summer Engine",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED from integrations/codex — do not edit; npm run generate:registry",
|
|
3
3
|
"name": "summer",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.6.0",
|
|
5
5
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. Game-dev skills, lifecycle hooks, and a 125-tool MCP bridge to the Summer Engine desktop app.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Summer Engine",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"_generated": "GENERATED from integrations/cursor — do not edit; npm run generate:registry",
|
|
4
4
|
"name": "summer",
|
|
5
5
|
"displayName": "Summer Engine",
|
|
6
|
-
"version": "4.
|
|
6
|
+
"version": "4.6.0",
|
|
7
7
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. Game-dev skills, lifecycle hooks, and a 125-tool MCP bridge to the Summer Engine desktop app.",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Summer Engine",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"_generated": "GENERATED from integrations/factory — do not edit; npm run generate:registry",
|
|
3
3
|
"name": "summer",
|
|
4
4
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. Game-dev skills, lifecycle hooks, and a 125-tool MCP bridge to the Summer Engine desktop app.",
|
|
5
|
-
"version": "4.
|
|
5
|
+
"version": "4.6.0",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Summer Engine",
|
|
8
8
|
"email": "founders@summerengine.com",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.SummerEngine/summer",
|
|
4
4
|
"title": "Summer Engine",
|
|
5
5
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it.",
|
|
6
|
-
"version": "4.
|
|
6
|
+
"version": "4.6.0",
|
|
7
7
|
"websiteUrl": "https://summerengine.com",
|
|
8
8
|
"icons": [
|
|
9
9
|
{
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
{
|
|
23
23
|
"registryType": "npm",
|
|
24
24
|
"identifier": "summer-engine",
|
|
25
|
-
"version": "4.
|
|
25
|
+
"version": "4.6.0",
|
|
26
26
|
"transport": {
|
|
27
27
|
"type": "stdio"
|
|
28
28
|
},
|