@origingame/engine 0.0.0-stage → 0.1.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/bin/og.mjs +25 -0
- package/dist/web/origin-engine.d.ts +1233 -0
- package/dist/web/origin-engine.js +8628 -0
- package/dist/web/origin-engine_bg.wasm +0 -0
- package/dist/web/origin-engine_bg.wasm.d.ts +366 -0
- package/dist/web-publish/origin-engine-lanes.js +8509 -0
- package/dist/web-publish/origin-engine-lanes_bg.wasm +0 -0
- package/dist/web-publish/origin-engine.d.ts +1176 -0
- package/dist/web-publish/origin-engine.js +8313 -0
- package/dist/web-publish/origin-engine_bg.wasm +0 -0
- package/dist/web-publish/origin-engine_bg.wasm.d.ts +347 -0
- package/dist/web-publish/snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src/workerHelpers.no-bundler.js +77 -0
- package/dist/web-publish-2d/origin-engine-lanes.js +8509 -0
- package/dist/web-publish-2d/origin-engine-lanes_bg.wasm +0 -0
- package/dist/web-publish-2d/origin-engine.d.ts +1176 -0
- package/dist/web-publish-2d/origin-engine.js +8313 -0
- package/dist/web-publish-2d/origin-engine_bg.wasm +0 -0
- package/dist/web-publish-2d/origin-engine_bg.wasm.d.ts +347 -0
- package/dist/web-publish-2d/snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src/workerHelpers.no-bundler.js +77 -0
- package/knowledge/README.md +31 -0
- package/knowledge/knowledge.json +13 -0
- package/knowledge/looks/catalogue.json +1871 -0
- package/knowledge/package.json +33 -0
- package/knowledge/rules/platform.json +329 -0
- package/knowledge/scaffold/README.md +27 -0
- package/knowledge/scaffold/distribution.json +48 -0
- package/knowledge/scaffold/origin-engine.json +19 -0
- package/knowledge/scaffold/template/.origin/setup +14 -0
- package/knowledge/scaffold/template/LICENSES.md +23 -0
- package/knowledge/scaffold/template/README.md +37 -0
- package/knowledge/scaffold/template/assets/ai/guard.ogt +48 -0
- package/knowledge/scaffold/template/assets/audio/click.ogt +9 -0
- package/knowledge/scaffold/template/assets/fonts/NotoSansSC-Regular-subset.ttf.ogt +12 -0
- package/knowledge/scaffold/template/assets/fonts/OFL.txt +93 -0
- package/knowledge/scaffold/template/assets/looks/origin-game.ogt +12 -0
- package/knowledge/scaffold/template/assets/nav/yard.ogt +27 -0
- package/knowledge/scaffold/template/assets/scenes/main.ogt +34 -0
- package/knowledge/scaffold/template/assets/strings/en.ogt +14 -0
- package/knowledge/scaffold/template/assets/textures/stone_n.png.ogt +7 -0
- package/knowledge/scaffold/template/gitattributes +22 -0
- package/knowledge/scaffold/template/package.json +18 -0
- package/knowledge/scaffold/template/project.ogt +25 -0
- package/knowledge/scaffold/template/src/main.ts +246 -0
- package/knowledge/scaffold/template/tests/guard.og.ts +67 -0
- package/knowledge/scaffold/template/tests/smoke.og.ts +43 -0
- package/knowledge/scaffold/template/tsconfig.json +17 -0
- package/knowledge/scripts/lib.ts +203 -0
- package/knowledge/scripts/mount.ts +210 -0
- package/knowledge/scripts/pack.ts +24 -0
- package/knowledge/scripts/scaffold.ts +72 -0
- package/knowledge/scripts/validate.ts +749 -0
- package/knowledge/skills/og-ai/SKILL.md +386 -0
- package/knowledge/skills/og-audio/SKILL.md +191 -0
- package/knowledge/skills/og-build/SKILL.md +330 -0
- package/knowledge/skills/og-core/SKILL.md +285 -0
- package/knowledge/skills/og-feel/SKILL.md +385 -0
- package/knowledge/skills/og-game/SKILL.md +1479 -0
- package/knowledge/skills/og-i18n/SKILL.md +220 -0
- package/knowledge/skills/og-platform-sdk/SKILL.md +199 -0
- package/knowledge/skills/og-taste/SKILL.md +537 -0
- package/knowledge/skills/og-ui/SKILL.md +444 -0
- package/knowledge/wiki/ai.md +627 -0
- package/knowledge/wiki/anim.md +1187 -0
- package/knowledge/wiki/atmosphere.md +636 -0
- package/knowledge/wiki/audio.md +732 -0
- package/knowledge/wiki/camera.md +711 -0
- package/knowledge/wiki/commands.md +357 -0
- package/knowledge/wiki/game.md +220 -0
- package/knowledge/wiki/i18n.md +213 -0
- package/knowledge/wiki/index.md +1027 -0
- package/knowledge/wiki/input.md +1714 -0
- package/knowledge/wiki/load.md +1280 -0
- package/knowledge/wiki/math.md +166 -0
- package/knowledge/wiki/nav.md +1154 -0
- package/knowledge/wiki/physics.md +3142 -0
- package/knowledge/wiki/platform.md +857 -0
- package/knowledge/wiki/probe.md +1692 -0
- package/knowledge/wiki/reflect.md +285 -0
- package/knowledge/wiki/render.md +3511 -0
- package/knowledge/wiki/rng.md +393 -0
- package/knowledge/wiki/stream.md +376 -0
- package/knowledge/wiki/system.md +197 -0
- package/knowledge/wiki/systems.md +43 -0
- package/knowledge/wiki/terrain.md +727 -0
- package/knowledge/wiki/tilemap.md +422 -0
- package/knowledge/wiki/time.md +150 -0
- package/knowledge/wiki/transform.md +230 -0
- package/knowledge/wiki/tween.md +580 -0
- package/knowledge/wiki/ui.md +8000 -0
- package/knowledge/wiki/world.md +909 -0
- package/package.json +68 -4
- package/schema/api.schema.json +29675 -0
- package/shell/README.md +22 -0
- package/shell/brand/README.md +23 -0
- package/shell/brand/icon-192.png +0 -0
- package/shell/brand/icon-512.png +0 -0
- package/shell/brand/mark-on-paper.svg +6 -0
- package/shell/brand/origin-mark.svg +5 -0
- package/shell/brand/origin-motion.css +251 -0
- package/shell/brand/tokens.css +20 -0
- package/shell/brand.ts +132 -0
- package/shell/page.ts +715 -0
- package/shell/platform.ts +203 -0
- package/shell/player.ts +238 -0
- package/shell/shell.css +185 -0
- package/shell/sw.ts +177 -0
- package/shell/transport.ts +515 -0
- package/shell/wire.ts +369 -0
- package/src/e6.ts +69 -0
- package/src/env.d.ts +100 -0
- package/src/generated/abi.ts +980 -0
- package/src/index.ts +193 -0
- package/src/node/audio.ts +86 -0
- package/src/node/build.ts +109 -0
- package/src/node/device.ts +981 -0
- package/src/node/doctor.ts +60 -0
- package/src/node/index.ts +102 -0
- package/src/node/platform.ts +24 -0
- package/src/node/playtest-run.ts +249 -0
- package/src/node/png.ts +130 -0
- package/src/node/polish.ts +976 -0
- package/src/node/run.ts +373 -0
- package/src/node/web-build.ts +808 -0
- package/src/p2.ts +35 -0
- package/src/platform-local.ts +211 -0
- package/src/playtest.ts +131 -0
- package/src/runtime.ts +1509 -0
- package/src/systems/cameras.ts +247 -0
- package/src/ui-kit/bind.ts +141 -0
- package/src/ui-kit/huds.ts +303 -0
- package/src/ui-kit/index.ts +36 -0
- package/src/ui-kit/menus.ts +187 -0
- package/src/ui-kit/settings.ts +131 -0
- package/src/ui-kit/store.ts +222 -0
- package/src/ui-kit/story.ts +89 -0
- package/src/ui-kit/util.ts +106 -0
- package/src/web/a11y.ts +429 -0
- package/src/web/audio-worklet.ts +193 -0
- package/src/web/audio.ts +307 -0
- package/src/web/basis.ts +239 -0
- package/src/web/gamepad.ts +123 -0
- package/src/web/host.ts +166 -0
- package/src/web/input.ts +237 -0
- package/src/web/lanes.ts +21 -0
- package/src/web/play.ts +20 -0
- package/src/web/rpc-ring.ts +110 -0
- package/src/web/settle.ts +122 -0
- package/src/web/shell.ts +643 -0
- package/src/web/text-input.ts +248 -0
- package/src/web/worker.ts +1002 -0
- package/types/bindings.json +13654 -0
- package/types/index.d.ts +20090 -0
- package/vendor/basis/LICENSE +201 -0
- package/vendor/basis/NOTICE +15 -0
- package/vendor/basis/README.md +18 -0
- package/vendor/basis/basis_transcoder.js +19 -0
- package/vendor/basis/basis_transcoder.wasm +0 -0
- package/README.md +0 -3
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@origingame/engine-knowledge",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Origin Engine knowledge for agents: the API wiki generated from api.ogt, the ten og-* skills, the style catalogue and the project scaffold description, laid out for the OriginGame platform's knowledge packs. Not published on its own: @origingame/engine carries it as knowledge/ (docs/release.md §2).",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"private": true,
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/fran0220/origin-engine.git",
|
|
10
|
+
"directory": "packages/knowledge"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/fran0220/origin-engine#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/fran0220/origin-engine/issues"
|
|
15
|
+
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"files": [
|
|
18
|
+
"wiki",
|
|
19
|
+
"skills",
|
|
20
|
+
"looks",
|
|
21
|
+
"scaffold",
|
|
22
|
+
"rules",
|
|
23
|
+
"knowledge.json",
|
|
24
|
+
"scripts",
|
|
25
|
+
"README.md"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"prepack": "bun scripts/pack.ts",
|
|
29
|
+
"validate": "bun scripts/validate.ts",
|
|
30
|
+
"bundle": "bun scripts/validate.ts --bundle",
|
|
31
|
+
"test": "bun scripts/validate.ts && bun test ${OG_BUN_TEST_TIMEOUT:+--timeout=$OG_BUN_TEST_TIMEOUT} tests/"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"about": "The OriginGame platform's knowledge rules, transcribed as data so the package validates without a platform checkout. Refresh with `bun scripts/sync-rules.ts <origingame checkout>`.",
|
|
4
|
+
"payload": {
|
|
5
|
+
"roots": [
|
|
6
|
+
"game",
|
|
7
|
+
"game-scaffold"
|
|
8
|
+
],
|
|
9
|
+
"encoding": "utf-8 (fatal decode, BOM kept)",
|
|
10
|
+
"regularFilesOnly": true,
|
|
11
|
+
"source": "packages/game-knowledge/scripts/production-bundle.mjs (readProductionBundle)"
|
|
12
|
+
},
|
|
13
|
+
"packs": {
|
|
14
|
+
"skill": "game/skills/<name>/ -> pack skill:<name>",
|
|
15
|
+
"scaffold": "game-scaffold/<overlay>/ -> pack scaffold:<overlay>",
|
|
16
|
+
"instructions": "game/instructions.md -> pack instructions",
|
|
17
|
+
"other": "any other game/ path -> pack game",
|
|
18
|
+
"source": "agent-server/src/core/knowledge.ts (packsFromFiles)"
|
|
19
|
+
},
|
|
20
|
+
"skills": {
|
|
21
|
+
"file": "SKILL.md",
|
|
22
|
+
"frontmatter": {
|
|
23
|
+
"required": [
|
|
24
|
+
"name",
|
|
25
|
+
"description"
|
|
26
|
+
],
|
|
27
|
+
"nameIsDirectory": true
|
|
28
|
+
},
|
|
29
|
+
"namePattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
|
30
|
+
"existing": [
|
|
31
|
+
"architecture-discipline",
|
|
32
|
+
"canvas2d-substrate",
|
|
33
|
+
"component-forge",
|
|
34
|
+
"coordinating-game-production",
|
|
35
|
+
"gameplay-research",
|
|
36
|
+
"localization",
|
|
37
|
+
"og-platform",
|
|
38
|
+
"origin-engine-substrate",
|
|
39
|
+
"parameter-sweeps",
|
|
40
|
+
"performance-budget",
|
|
41
|
+
"playtest-instruments",
|
|
42
|
+
"producing-game-assets",
|
|
43
|
+
"recipe-craft",
|
|
44
|
+
"store-compliance",
|
|
45
|
+
"threejs-substrate",
|
|
46
|
+
"vgpu-effects",
|
|
47
|
+
"visual-acceptance"
|
|
48
|
+
],
|
|
49
|
+
"source": "packages/game-knowledge/production/game/skills/*/SKILL.md (every skill's front matter: name equals its directory); agent-server/src/core/knowledge.ts (frontMatterDescription: the runner reads description)"
|
|
50
|
+
},
|
|
51
|
+
"tools": {
|
|
52
|
+
"snake": "^[a-z][a-z0-9]*(?:_[a-z0-9]+)+$",
|
|
53
|
+
"notTools": [
|
|
54
|
+
"text_server_adv"
|
|
55
|
+
],
|
|
56
|
+
"retired": [
|
|
57
|
+
"codemode"
|
|
58
|
+
],
|
|
59
|
+
"known": [
|
|
60
|
+
"Task",
|
|
61
|
+
"account_usage",
|
|
62
|
+
"action_id",
|
|
63
|
+
"action_ids",
|
|
64
|
+
"ai_model",
|
|
65
|
+
"aigcc_begin",
|
|
66
|
+
"aigcc_bind_release",
|
|
67
|
+
"aigcc_confirm_cover",
|
|
68
|
+
"aigcc_generate_cover",
|
|
69
|
+
"aigcc_prepare_upload",
|
|
70
|
+
"aigcc_publish",
|
|
71
|
+
"aigcc_status",
|
|
72
|
+
"analytics_agent_reliability",
|
|
73
|
+
"analytics_compare_game_versions",
|
|
74
|
+
"analytics_compare_workflow_cohorts",
|
|
75
|
+
"analytics_event_evidence",
|
|
76
|
+
"analytics_failure_clusters",
|
|
77
|
+
"analytics_game_funnel",
|
|
78
|
+
"analytics_project_runs",
|
|
79
|
+
"analytics_run_summary",
|
|
80
|
+
"analytics_run_timeline",
|
|
81
|
+
"analytics_trace_details",
|
|
82
|
+
"animate_in_place",
|
|
83
|
+
"apply_patch",
|
|
84
|
+
"apply_tunables",
|
|
85
|
+
"archive_base64",
|
|
86
|
+
"artifact_fetch",
|
|
87
|
+
"ask_user",
|
|
88
|
+
"aspect_ratio",
|
|
89
|
+
"asset_optimize",
|
|
90
|
+
"asset_process",
|
|
91
|
+
"assets_detail",
|
|
92
|
+
"assets_download",
|
|
93
|
+
"assets_fetch_plan",
|
|
94
|
+
"assets_list_files",
|
|
95
|
+
"assets_search",
|
|
96
|
+
"assets_search_3d",
|
|
97
|
+
"assets_search_audio",
|
|
98
|
+
"assets_search_fonts",
|
|
99
|
+
"assets_search_hdr",
|
|
100
|
+
"assets_search_images",
|
|
101
|
+
"assets_used",
|
|
102
|
+
"budget_report",
|
|
103
|
+
"catalog_changed",
|
|
104
|
+
"change_fps",
|
|
105
|
+
"channel_list",
|
|
106
|
+
"character_create",
|
|
107
|
+
"character_dispute",
|
|
108
|
+
"character_get",
|
|
109
|
+
"character_id",
|
|
110
|
+
"character_list",
|
|
111
|
+
"character_media_delete",
|
|
112
|
+
"character_media_upload",
|
|
113
|
+
"character_update",
|
|
114
|
+
"checkpoint_id",
|
|
115
|
+
"code_exec",
|
|
116
|
+
"collection_get",
|
|
117
|
+
"concept_compare",
|
|
118
|
+
"content_not_ready",
|
|
119
|
+
"core_loop",
|
|
120
|
+
"cover_url",
|
|
121
|
+
"create_thread",
|
|
122
|
+
"deliver",
|
|
123
|
+
"deploy_activate",
|
|
124
|
+
"deploy_create",
|
|
125
|
+
"deploy_delete",
|
|
126
|
+
"deploy_discard_release",
|
|
127
|
+
"deploy_generate_artwork",
|
|
128
|
+
"deploy_list",
|
|
129
|
+
"deploy_prepare_upload",
|
|
130
|
+
"deploy_releases",
|
|
131
|
+
"deploy_status",
|
|
132
|
+
"deploy_update",
|
|
133
|
+
"deploy_update_metadata",
|
|
134
|
+
"design_note",
|
|
135
|
+
"discussion_categories",
|
|
136
|
+
"discussion_delete",
|
|
137
|
+
"discussion_me",
|
|
138
|
+
"discussion_post",
|
|
139
|
+
"discussion_reply",
|
|
140
|
+
"discussion_status",
|
|
141
|
+
"discussion_vote",
|
|
142
|
+
"docs",
|
|
143
|
+
"download_thread_changes",
|
|
144
|
+
"download_thread_file",
|
|
145
|
+
"duration_seconds",
|
|
146
|
+
"edit_design_graph",
|
|
147
|
+
"edit_file",
|
|
148
|
+
"edit_image",
|
|
149
|
+
"enable_original_uv",
|
|
150
|
+
"enable_pbr",
|
|
151
|
+
"engine_capture",
|
|
152
|
+
"engine_export",
|
|
153
|
+
"engine_probe",
|
|
154
|
+
"engine_reload",
|
|
155
|
+
"engine_scaffold",
|
|
156
|
+
"engine_start",
|
|
157
|
+
"engine_stop",
|
|
158
|
+
"engine_sweep",
|
|
159
|
+
"error_code",
|
|
160
|
+
"error_stage",
|
|
161
|
+
"execute",
|
|
162
|
+
"expected_revision",
|
|
163
|
+
"expires_at",
|
|
164
|
+
"export_with_geometry",
|
|
165
|
+
"extract_armature",
|
|
166
|
+
"feel_compare",
|
|
167
|
+
"find_thread",
|
|
168
|
+
"flow_map",
|
|
169
|
+
"game_comments_list",
|
|
170
|
+
"game_comments_moderate",
|
|
171
|
+
"game_id",
|
|
172
|
+
"game_leaderboard_inspect",
|
|
173
|
+
"game_leaderboard_reset",
|
|
174
|
+
"game_lineage",
|
|
175
|
+
"game_remix",
|
|
176
|
+
"game_reports_list",
|
|
177
|
+
"game_saves_inspect",
|
|
178
|
+
"gameplay_get",
|
|
179
|
+
"gameplay_search",
|
|
180
|
+
"generate_3d",
|
|
181
|
+
"generate_apply_motions",
|
|
182
|
+
"generate_audio",
|
|
183
|
+
"generate_balance",
|
|
184
|
+
"generate_complete_upload",
|
|
185
|
+
"generate_download",
|
|
186
|
+
"generate_get_tasks",
|
|
187
|
+
"generate_image",
|
|
188
|
+
"generate_meshy_artifacts",
|
|
189
|
+
"generate_meshy_library",
|
|
190
|
+
"generate_motion",
|
|
191
|
+
"generate_motion_artifacts",
|
|
192
|
+
"generate_motion_library",
|
|
193
|
+
"generate_music",
|
|
194
|
+
"generate_prepare_upload",
|
|
195
|
+
"generate_sfx",
|
|
196
|
+
"generate_speech",
|
|
197
|
+
"generate_speech_voices",
|
|
198
|
+
"generate_tripo_3d",
|
|
199
|
+
"generate_video",
|
|
200
|
+
"generate_wait_tasks",
|
|
201
|
+
"genre_browse",
|
|
202
|
+
"get_thread_status",
|
|
203
|
+
"glob",
|
|
204
|
+
"grep",
|
|
205
|
+
"height_meters",
|
|
206
|
+
"idempotency_key",
|
|
207
|
+
"image_cutout",
|
|
208
|
+
"image_url",
|
|
209
|
+
"in_progress",
|
|
210
|
+
"include_artwork",
|
|
211
|
+
"include_content",
|
|
212
|
+
"input_hints",
|
|
213
|
+
"input_reference",
|
|
214
|
+
"insufficient_scope",
|
|
215
|
+
"invalid_input",
|
|
216
|
+
"land_changes",
|
|
217
|
+
"last_frame",
|
|
218
|
+
"level_report",
|
|
219
|
+
"license_id",
|
|
220
|
+
"list_directory",
|
|
221
|
+
"main",
|
|
222
|
+
"media_id",
|
|
223
|
+
"media_persistence",
|
|
224
|
+
"media_url",
|
|
225
|
+
"mime_type",
|
|
226
|
+
"model_type",
|
|
227
|
+
"motion_task_id",
|
|
228
|
+
"node_modules",
|
|
229
|
+
"not_found",
|
|
230
|
+
"operation_id",
|
|
231
|
+
"oracle",
|
|
232
|
+
"outcome_unknown",
|
|
233
|
+
"payment_required",
|
|
234
|
+
"platform_ai",
|
|
235
|
+
"platform_channel",
|
|
236
|
+
"player_id",
|
|
237
|
+
"playtest",
|
|
238
|
+
"pose_mode",
|
|
239
|
+
"post_process",
|
|
240
|
+
"poster_url",
|
|
241
|
+
"precondition_required",
|
|
242
|
+
"prepare_production",
|
|
243
|
+
"rate_limited",
|
|
244
|
+
"read_bytes",
|
|
245
|
+
"read_design_graph",
|
|
246
|
+
"read_file",
|
|
247
|
+
"read_thread",
|
|
248
|
+
"reference_audios",
|
|
249
|
+
"reference_images",
|
|
250
|
+
"reference_videos",
|
|
251
|
+
"registry_get",
|
|
252
|
+
"registry_list",
|
|
253
|
+
"registry_search",
|
|
254
|
+
"release_id",
|
|
255
|
+
"remix_policy",
|
|
256
|
+
"remix_royalty_bps",
|
|
257
|
+
"request_secret",
|
|
258
|
+
"resource_metadata",
|
|
259
|
+
"response_format",
|
|
260
|
+
"review_playtest",
|
|
261
|
+
"rig_check",
|
|
262
|
+
"sample_rate",
|
|
263
|
+
"sdk_scaffold",
|
|
264
|
+
"search",
|
|
265
|
+
"send_thread_message",
|
|
266
|
+
"set_goal",
|
|
267
|
+
"shell",
|
|
268
|
+
"shell_kill",
|
|
269
|
+
"shell_status",
|
|
270
|
+
"should_remesh",
|
|
271
|
+
"should_texture",
|
|
272
|
+
"size_bytes",
|
|
273
|
+
"skill",
|
|
274
|
+
"source_checkpoint",
|
|
275
|
+
"stage_capture",
|
|
276
|
+
"stage_record",
|
|
277
|
+
"stage_show",
|
|
278
|
+
"sub_category",
|
|
279
|
+
"submission_unknown",
|
|
280
|
+
"system_module",
|
|
281
|
+
"target_polycount",
|
|
282
|
+
"task_id",
|
|
283
|
+
"text_preview",
|
|
284
|
+
"text_refine",
|
|
285
|
+
"text_to_motion",
|
|
286
|
+
"texture_resolution",
|
|
287
|
+
"timeout_seconds",
|
|
288
|
+
"too_large",
|
|
289
|
+
"tool_search",
|
|
290
|
+
"undo_edit",
|
|
291
|
+
"universe_search",
|
|
292
|
+
"update_annotation",
|
|
293
|
+
"update_plan",
|
|
294
|
+
"upload_id",
|
|
295
|
+
"upload_thread_file",
|
|
296
|
+
"upstream_unavailable",
|
|
297
|
+
"user_key",
|
|
298
|
+
"verify_milestone",
|
|
299
|
+
"wait_for_threads",
|
|
300
|
+
"write_file"
|
|
301
|
+
],
|
|
302
|
+
"source": "packages/game-knowledge/scripts/production.test.mjs (toolInventory and 'Game instructions and skills name only tools a Session can be offered'): production/game/instructions.md ## Tools plus packages/origin-mcp/docs/*.md"
|
|
303
|
+
},
|
|
304
|
+
"scaffold": {
|
|
305
|
+
"pinFile": "origin-engine.json",
|
|
306
|
+
"pin": {
|
|
307
|
+
"schema": 1,
|
|
308
|
+
"probe": {
|
|
309
|
+
"protocol": 5,
|
|
310
|
+
"wire": 1
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"distributionFile": "distribution.json",
|
|
314
|
+
"distributionEntry": [
|
|
315
|
+
"path",
|
|
316
|
+
"bytes",
|
|
317
|
+
"sha256",
|
|
318
|
+
"licence",
|
|
319
|
+
"source"
|
|
320
|
+
],
|
|
321
|
+
"existingOverlays": [
|
|
322
|
+
"canvas2d",
|
|
323
|
+
"origin-engine",
|
|
324
|
+
"shared",
|
|
325
|
+
"three"
|
|
326
|
+
],
|
|
327
|
+
"source": "packages/game-knowledge/production/game-scaffold/origin-engine/{origin-engine.json,distribution.json}; scripts/production.test.mjs asserts pin.distribution and pin.probe.protocol 5; production/README.md: the payload is UTF-8 text only, binary files are named with digests in distribution.json"
|
|
328
|
+
}
|
|
329
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# The Origin Engine scaffold
|
|
2
|
+
|
|
3
|
+
What `npm create @origingame/game` (`@origingame/create-game`) produces: a copy
|
|
4
|
+
of the engine repository's `templates/game/` with the project's `name` and
|
|
5
|
+
`id` filled in. The platform mounts it as the scaffold overlay
|
|
6
|
+
`game-scaffold/origin-engine-ts/` (`knowledge.json`); it stands alone, never
|
|
7
|
+
on top of the Web scaffold's `shared/`.
|
|
8
|
+
|
|
9
|
+
| Path | Role |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `project.ogt` | The manifest every `og` command reads: `name`, `id`, `engine` (the pinned `@origingame/engine` version), `entry`, `profile` (`"2d"` or `"3d"`), `tick`, `seed`, `scenes` (name to scene path under `assets/`), `scene` (the first one) and `publish` (`probe player`: a publish build keeps only the player-facing probe members; `out` the build directory) |
|
|
12
|
+
| `src/main.ts` | The game entry: components, systems and `export default og.game({...})`, starting from the design's hello world and loading `scenes/main.ogt` |
|
|
13
|
+
| `package.json` | `@origingame/engine` pinned to the same version as `project.ogt`; scripts `dev`, `start`, `build`, `publish-build`, `cook`, `test` calling `og` |
|
|
14
|
+
| `tsconfig.json` | Strict TypeScript over `src/` and `tests/` |
|
|
15
|
+
| `tests/smoke.og.ts` | The first playtest `og test` runs headless through `og run --commands` |
|
|
16
|
+
| `assets/` | Source assets with their import settings and licences: `scenes/main.ogt`, the game's look `looks/<id>.ogt` (extending a catalogue preset; `GameDesc.look` names it, og-taste §12), two glTF models, two textures (one normal map), a sound and a CJK-subset font |
|
|
17
|
+
| `LICENSES.md` | One row per asset: licence and origin |
|
|
18
|
+
| `.gitignore` | `cooked/`, `dist/` and `node_modules/` are build output |
|
|
19
|
+
| `.gitattributes` | Media (models, textures, audio, fonts) through Git LFS; `.ogt` and `.ts` text with LF endings. The template stores it as `gitattributes`, renamed by the scaffolder and the mount, because the engine repository keeps the template's media as plain blobs |
|
|
20
|
+
|
|
21
|
+
`origin-engine.json` pins the engine package and version, the template and
|
|
22
|
+
the probe protocol (5, wire 1). `distribution.json` names every binary file
|
|
23
|
+
(models, textures, audio, fonts) with its size, SHA-256 and licence, because
|
|
24
|
+
the platform's knowledge payload is UTF-8 text only; the scaffolder copies
|
|
25
|
+
binaries from the published template and checks the digests.
|
|
26
|
+
`bun scripts/scaffold.ts --write` regenerates it after a deliberate asset
|
|
27
|
+
change, and `bun run test` fails while it is stale.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": 1,
|
|
3
|
+
"about": "Binary files of the Origin Engine project template that a scaffolded Game needs but that are not knowledge text. The scaffolder copies them from the published template (@origingame/create-game) and verifies each digest.",
|
|
4
|
+
"files": [
|
|
5
|
+
{
|
|
6
|
+
"path": "assets/audio/blip.wav",
|
|
7
|
+
"bytes": 44144,
|
|
8
|
+
"sha256": "4fe30d6e883337c7d3c99f2cf0e3f2b1ca80c742587479fd878cb719580acaea",
|
|
9
|
+
"licence": "CC0 1.0 (LICENSES.md)",
|
|
10
|
+
"source": "templates/game/assets/audio/blip.wav of origingame/origin-engine; shipped in @origingame/create-game's template/"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"path": "assets/fonts/NotoSansSC-Regular-subset.ttf",
|
|
14
|
+
"bytes": 2513672,
|
|
15
|
+
"sha256": "9235b106a17bed31a2b28acc6deccb3d45a6aa02848c96fd2cc1d8540211a1e6",
|
|
16
|
+
"licence": "SIL Open Font License 1.1 (`assets/fonts/OFL.txt`) (LICENSES.md)",
|
|
17
|
+
"source": "templates/game/assets/fonts/NotoSansSC-Regular-subset.ttf of origingame/origin-engine; shipped in @origingame/create-game's template/"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"path": "assets/models/dropship.glb",
|
|
21
|
+
"bytes": 562864,
|
|
22
|
+
"sha256": "c7bf4c177bf360bc65b66d8636c1d8cf063cb65209505cf9f8e0e21461ec9c54",
|
|
23
|
+
"licence": "MIT (copyright 2026 Leichtbier) (LICENSES.md)",
|
|
24
|
+
"source": "templates/game/assets/models/dropship.glb of origingame/origin-engine; shipped in @origingame/create-game's template/"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"path": "assets/models/walker.glb",
|
|
28
|
+
"bytes": 34296,
|
|
29
|
+
"sha256": "e068aeca18b491e54b48ae8c264d208a414f9de455a571340bf55ef0c3d2face",
|
|
30
|
+
"licence": "CC0 1.0 (LICENSES.md)",
|
|
31
|
+
"source": "templates/game/assets/models/walker.glb of origingame/origin-engine; shipped in @origingame/create-game's template/"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"path": "assets/textures/stone.png",
|
|
35
|
+
"bytes": 112774,
|
|
36
|
+
"sha256": "8622957415b5174f09a2564256d319c14692998b3f7fd1ac6ae9d3709ed71a9c",
|
|
37
|
+
"licence": "CC0 1.0 (LICENSES.md)",
|
|
38
|
+
"source": "templates/game/assets/textures/stone.png of origingame/origin-engine; shipped in @origingame/create-game's template/"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"path": "assets/textures/stone_n.png",
|
|
42
|
+
"bytes": 212633,
|
|
43
|
+
"sha256": "c3bfb1778ace9010f8da8f3ea8664e68cddf446776a2dff7bdcf11f31bb22dcb",
|
|
44
|
+
"licence": "CC0 1.0 (LICENSES.md)",
|
|
45
|
+
"source": "templates/game/assets/textures/stone_n.png of origingame/origin-engine; shipped in @origingame/create-game's template/"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": 1,
|
|
3
|
+
"distribution": "origin-engine",
|
|
4
|
+
"substrate": "origin-engine-ts",
|
|
5
|
+
"engine": {
|
|
6
|
+
"package": "@origingame/engine",
|
|
7
|
+
"version": "0.1.0",
|
|
8
|
+
"repository": "origingame/origin-engine"
|
|
9
|
+
},
|
|
10
|
+
"template": {
|
|
11
|
+
"source": "templates/game",
|
|
12
|
+
"create": "@origingame/create-game",
|
|
13
|
+
"version": "0.1.0"
|
|
14
|
+
},
|
|
15
|
+
"probe": {
|
|
16
|
+
"protocol": 5,
|
|
17
|
+
"wire": 1
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Prepares this Game's cloud sandbox snapshot: Origin runs it once per
|
|
3
|
+
# snapshot build, in the checkout, without a terminal, for at most 20 minutes,
|
|
4
|
+
# and saves the result for new sandboxes of the Game. Keep it idempotent; it
|
|
5
|
+
# never receives credentials. Only ignored output is kept: node_modules/ and
|
|
6
|
+
# cooked/ (og cook is incremental, so a new sandbox starts cooked).
|
|
7
|
+
set -eu
|
|
8
|
+
if [ -f bun.lock ]; then bun install --frozen-lockfile; else bun install; fi
|
|
9
|
+
og="${ORIGIN_OG_BIN:-og}"
|
|
10
|
+
if ! command -v "$og" >/dev/null 2>&1; then
|
|
11
|
+
echo "no og on this executor class; the first og run cooks instead"
|
|
12
|
+
exit 0
|
|
13
|
+
fi
|
|
14
|
+
"$og" cook .
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Template asset licences
|
|
2
|
+
|
|
3
|
+
Every binary the template ships, with its licence; `@origingame/create-game`
|
|
4
|
+
carries this file into each scaffolded project.
|
|
5
|
+
|
|
6
|
+
| File | Licence | Origin |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `assets/models/dropship.glb` | MIT (copyright 2026 Leichtbier) | the `core-business` example of OriginGame's `origingame-examples` repository (`examples/core-business/assets/dropship.glb`, generated by its `dropship.py`); its `LICENSE` is MIT. Also a test model of the engine (`crates/og-tests/assets/`) |
|
|
9
|
+
| `assets/models/walker.glb` | CC0 1.0 | self-made by the Origin Engine authors: a 13-node skinned walker of boxes with two morph targets and six clips (LINEAR, STEP, CUBICSPLINE, weights; footstep markers in `extras."og.events"`), generated by `crates/og-anim/tools/make_rig.py` (deterministic). The scene's `trickster` and the guard are both instances of it |
|
|
10
|
+
| `assets/textures/stone.png`, `assets/textures/stone_n.png` | CC0 1.0 | self-made by the Origin Engine authors: procedural value-noise tiles and the normal map of the same height field, generated by `templates/tools/make-template-assets.py` |
|
|
11
|
+
| `assets/audio/blip.wav` | CC0 1.0 | self-made: a 0.5 s rising sine pickup sound, same script |
|
|
12
|
+
| `assets/audio/click.ogt` | CC0 1.0 | og-cook's `click` sound preset (`og sfx click`), synthesised at cook time |
|
|
13
|
+
| `assets/fonts/NotoSansSC-Regular-subset.ttf` | SIL Open Font License 1.1 (`assets/fonts/OFL.txt`) | the OriginGame platform's project-template font: Noto Sans SC Regular subset to Latin, punctuation, kana, full-width forms and GB2312 by the platform's `engine/scripts/subset-font.py` |
|
|
14
|
+
|
|
15
|
+
## Provenance note
|
|
16
|
+
|
|
17
|
+
Until 2026-10-22 the `trickster` entity was `trickster.glb`, a model copied
|
|
18
|
+
from the `edg-king-match` example of `origingame-examples`, which declares
|
|
19
|
+
no licence (that repository grants none for the collection); the public
|
|
20
|
+
template ships nothing whose licence is not named (docs/release.md §4 R6),
|
|
21
|
+
so the entity is the walker now. The engine's own test copy stays in
|
|
22
|
+
`crates/og-tests/assets/` and in `templates/fx-showcase`, which no package
|
|
23
|
+
ships.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# The game template
|
|
2
|
+
|
|
3
|
+
What `npm create @origingame/game` writes: the smallest whole Origin Engine
|
|
4
|
+
project, and the hello of the engine's design grown into a scene. A menu's
|
|
5
|
+
Start button (or S, or Enter) spins the trickster and drops a crate onto
|
|
6
|
+
the ground; a guard patrols the yard, sees only inside its cone and not
|
|
7
|
+
through the wall, raises the alarm, chases, searches and goes back.
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
og run . # headless with the probe; og dev . reloads on save
|
|
11
|
+
og test . # tests/smoke.og.ts and tests/guard.og.ts
|
|
12
|
+
og polish . # the taste and feel scores of those playtests
|
|
13
|
+
og build . # the play page
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## What it demonstrates, and the skills it exercises
|
|
17
|
+
|
|
18
|
+
| Part | Where | Skill |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| The project: `project.ogt`, the entry's `og.game` default export, `cooked/` from `assets/` | `project.ogt`, `src/main.ts` | og-game §2, §5 |
|
|
21
|
+
| Components, a resource, systems over archetype columns, one job each | `Health`, `Velocity`, `Spin`, `Run`; `Move`, `StartSpin`, `Drop`, `Rotate` | og-core §4, §5; og-game §3 |
|
|
22
|
+
| The frame's art direction as data: a look extending a catalogue preset, applied by `GameDesc.look` | `assets/looks/origin-game.ogt` (a created game's is `<id>.ogt`), `og.game({ look })` | og-taste §1, §12 |
|
|
23
|
+
| A text scene spawned before the first tick, a glTF model, a font, a box with a collider that falls | `assets/scenes/main.ogt`, `start` | og-game §4, §6, §13 |
|
|
24
|
+
| A menu panel whose button answers with a look and a sound (og sfx's click preset) | `Menu`, `assets/audio/click.ogt` | og-ui §1, §3; og-taste §6; og-audio §2, §3 |
|
|
25
|
+
| Every word the menu shows from a string table, the base one in the source language | `assets/strings/en.ogt`, `Menu` | og-i18n §1, §2 |
|
|
26
|
+
| A guard as data: a state machine on og.ai, a navmesh cooked from the yard, sight cones against the wall | `assets/ai/guard.ogt`, `assets/nav/yard.ogt` | og-ai §1–§5 |
|
|
27
|
+
| Commands with their usage in `help`, facts for playtests | `commands`, `commandHelp`, `facts` | og-game §3; og-build §1 |
|
|
28
|
+
| Playtests that assert on dumps and facts, never on the code | `tests/` | og-build §3, §4 |
|
|
29
|
+
|
|
30
|
+
`og polish .` (2026-10-19): taste 100, feel 87 (tests/evidence/E7/polish/
|
|
31
|
+
in the engine repository). The feel row below 90 is idle frames: the guard
|
|
32
|
+
playtest stages its scenario without pressing Start, so for half its ticks
|
|
33
|
+
only the guard stands still at a corner of its search, and the smoke
|
|
34
|
+
playtest waits half a second on the title before its press. A game made
|
|
35
|
+
from the template should keep a playtest that plays it.
|
|
36
|
+
|
|
37
|
+
Asset licences: `LICENSES.md`.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
type behaviour
|
|
2
|
+
version 1
|
|
3
|
+
---
|
|
4
|
+
# The guard's state machine (og.ai; every node is in the og-ai skill). It
|
|
5
|
+
# patrols its post until it sees the trickster in its view cone, raises the
|
|
6
|
+
# alarm (the game's `alarm` command) and chases; when it loses sight it
|
|
7
|
+
# searches where it last saw it for 3 seconds, then goes back to its post.
|
|
8
|
+
name "guard"
|
|
9
|
+
route post {
|
|
10
|
+
point -6 0 -3
|
|
11
|
+
point -6 0 4
|
|
12
|
+
point -1 0 6
|
|
13
|
+
}
|
|
14
|
+
machine {
|
|
15
|
+
initial patrol
|
|
16
|
+
state patrol {
|
|
17
|
+
patrol post {
|
|
18
|
+
wait 1
|
|
19
|
+
speed 1.5
|
|
20
|
+
}
|
|
21
|
+
to alert {
|
|
22
|
+
check sees
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
state alert {
|
|
26
|
+
enter {
|
|
27
|
+
command alarm
|
|
28
|
+
}
|
|
29
|
+
chase {
|
|
30
|
+
speed 3
|
|
31
|
+
reach 1.5
|
|
32
|
+
}
|
|
33
|
+
to search {
|
|
34
|
+
check sees is false
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
state search {
|
|
38
|
+
move_to lastSeen {
|
|
39
|
+
speed 2
|
|
40
|
+
}
|
|
41
|
+
to alert {
|
|
42
|
+
check sees
|
|
43
|
+
}
|
|
44
|
+
to patrol {
|
|
45
|
+
after 3
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type import
|
|
2
|
+
version 1
|
|
3
|
+
---
|
|
4
|
+
# The atlas covers Latin-1, CJK punctuation and the strings the template shows.
|
|
5
|
+
# `charset all` cooks every glyph of the platform subset (GB2312 + kana): see
|
|
6
|
+
# crates/og-cook/README.md for its size and time.
|
|
7
|
+
font {
|
|
8
|
+
charset latin cjk-punct
|
|
9
|
+
chars "开始游戏设置退出暂停继续分数最高关卡生命时间胜利失败加载中"
|
|
10
|
+
em_px 32
|
|
11
|
+
px_range 4
|
|
12
|
+
}
|