incanto 0.69.0 → 0.71.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/_behaviors-loader.mjs +22 -0
- package/bin/_read-json.mjs +28 -0
- package/bin/incanto-assets.mjs +5 -4
- package/bin/incanto-check.mjs +58 -31
- package/bin/incanto-editor.mjs +128 -5
- package/bin/incanto-env.mjs +3 -2
- package/bin/incanto-feel.mjs +24 -13
- package/bin/incanto-frame.mjs +8 -1
- package/bin/incanto-multiplay.mjs +11 -9
- package/bin/incanto-new.mjs +105 -10
- package/bin/incanto-play.mjs +158 -16
- package/bin/incanto-playtest.mjs +66 -23
- package/bin/incanto-skills.mjs +14 -2
- package/bin/incanto-verify.mjs +121 -102
- package/bin/incanto.mjs +3 -2
- package/dist/2d.d.ts +296 -34
- package/dist/2d.js +4 -4
- package/dist/3d.d.ts +157 -9
- package/dist/3d.js +8 -8
- package/dist/{agent8-CvsfVskX.js → agent8-Cfmd3ar_.js} +61 -8
- package/dist/{audio-player-C0j2k-yB.d.ts → audio-player-L8yccdMP.d.ts} +2 -2
- package/dist/{behavior-rm8vVzu_.d.ts → behavior-Dcz0fr1S.d.ts} +755 -46
- package/dist/{create-game-CwxEDlCm.js → create-game-CH4kt78v.js} +143 -60
- package/dist/{create-game-CvJ1wSRP.js → create-game-LCHBLfA4.js} +98 -48
- package/dist/debug.d.ts +1 -1
- package/dist/debug.js +2 -3
- package/dist/diagnostics-Cu85N3tL.d.ts +12 -0
- package/dist/{editor-switch-CnIOiyNJ.d.ts → editor-switch-CFU9mCec.d.ts} +22 -13
- package/dist/editor.js +1088 -882
- package/dist/env.d.ts +1 -1
- package/dist/env.js +5 -3
- package/dist/{environment-presets-BO-7XoFV.js → environment-presets-99BzP_L-.js} +298 -45
- package/dist/{frame-report-Dlq13Gyj.js → frame-report-D-_7YF2G.js} +1 -1
- package/dist/{gameplay-D1KixWK8.js → gameplay-CNULJvwh.js} +914 -214
- package/dist/gameplay.d.ts +254 -10
- package/dist/gameplay.js +2 -2
- package/dist/{heightmap-CRK0M4jT.js → heightmap-BYgD5Edk.js} +1 -1
- package/dist/index.d.ts +179 -13
- package/dist/index.js +10 -12
- package/dist/json-CfTjpvW8.js +67 -0
- package/dist/{loader-DadV2QCT.d.ts → loader-8-IHvbKD.d.ts} +2 -2
- package/dist/net.d.ts +27 -3
- package/dist/net.js +2 -2
- package/dist/{noise-CGUMx44x.js → noise-D3nPpmFg.js} +1 -1
- package/dist/{physics-2d-CF5yyjbj.js → physics-2d-FhrXUc6B.js} +136 -11
- package/dist/{physics-3d-DbYaEcZy.js → physics-3d-CFEGxBXZ.js} +104 -23
- package/dist/{teardown-CMqFVxO9.js → picking-DVo7fI13.js} +104 -13
- package/dist/react.d.ts +2 -2
- package/dist/react.js +2 -2
- package/dist/{register-DbVArsns.js → register-BYQCBySi.js} +429 -28
- package/dist/{register-mmfugpaQ.js → register-DuVdzxbq.js} +594 -831
- package/dist/{replay-BEHLDcQV.js → replay-DEvp3kyV.js} +224 -14
- package/dist/{replay-BQfkX4x7.d.ts → replay-F7IZHdFR.d.ts} +20 -3
- package/dist/{schema-B6ugCV1Q.d.ts → rng-Bb-IutXB.d.ts} +38 -21
- package/dist/{rng-DP-SR7eg.js → rng-CDOMybym.js} +22 -0
- package/dist/{loader-DZE7B07H.js → save-slots-Bvuh2p_r.js} +4619 -2318
- package/dist/{split-screen-Cg76MCV5.d.ts → split-screen-CIYf1zSf.d.ts} +36 -4
- package/dist/{split-screen-CauMwu6y.js → split-screen-eULetcg-.js} +159 -26
- package/dist/{sprite-animation-CY-mrr1L.js → sprite-animation-CqR2o3SA.js} +39 -8
- package/dist/{src-CYEu-_S9.js → src-_jk0qLsS.js} +2 -17
- package/dist/test-CmN54kWv.js +4264 -0
- package/dist/test.d.ts +639 -30
- package/dist/test.js +3 -3
- package/dist/touch-BnCyPA0G.js +519 -0
- package/dist/vite.d.ts +20 -37
- package/dist/vite.js +177 -7
- package/dist/{webgl-unavailable-Z5_g8x9H.js → webgl-unavailable-C8aDbGmR.js} +44 -0
- package/editor/assets/agent8-yLIEYHbd.js +1 -0
- package/editor/assets/{debug-CMULinBW.js → debug-u31w_yhq.js} +2 -2
- package/editor/assets/index-DK9xMGpW.js +11046 -0
- package/editor/index.html +1 -1
- package/package.json +4 -14
- package/schemas/scene.schema.json +34 -3
- package/skills/incanto-3d-character.md +14 -1
- package/skills/incanto-3d-models.md +12 -0
- package/skills/incanto-assets.md +9 -1
- package/skills/incanto-audio.md +8 -2
- package/skills/incanto-behaviors-and-scripts.md +105 -7
- package/skills/incanto-building-2d-games.md +97 -10
- package/skills/incanto-building-3d-games.md +58 -4
- package/skills/incanto-editor.md +46 -7
- package/skills/incanto-environment.md +19 -1
- package/skills/incanto-game-feel.md +70 -0
- package/skills/incanto-gameplay-behaviors.md +172 -20
- package/skills/incanto-hud.md +142 -7
- package/skills/incanto-localization.md +13 -5
- package/skills/incanto-multiplayer.md +83 -3
- package/skills/incanto-node-reference.md +239 -59
- package/skills/incanto-performance.md +52 -0
- package/skills/incanto-physics-and-input.md +123 -24
- package/skills/incanto-playtesting.md +112 -2
- package/skills/incanto-save-slots.md +217 -7
- package/skills/incanto-scene-json-authoring.md +69 -12
- package/skills/incanto-verifying-your-game.md +207 -10
- package/skills/incanto-web-integration.md +28 -0
- package/skills/incanto-your-first-game.md +3 -1
- package/templates-app/beacon-isle-3d/generate-world.ts +77 -9
- package/templates-app/beacon-isle-3d/package.json +2 -2
- package/templates-app/beacon-isle-3d/src/behaviors.ts +22 -0
- package/templates-app/beacon-isle-3d/src/game.scene.json +143 -600
- package/templates-app/beacon-isle-3d/src/main.ts +11 -1
- package/templates-app/beacon-isle-3d/tsconfig.json +1 -1
- package/templates-app/beacon-isle-3d/verify.ts +3 -1
- package/templates-app/molehill-2d/.incanto/playtest/lost-seed1.json +4277 -0
- package/templates-app/molehill-2d/PROJECT/Context.md +58 -0
- package/templates-app/molehill-2d/PROJECT/Requirements.md +39 -0
- package/templates-app/molehill-2d/PROJECT/Status.md +27 -0
- package/templates-app/molehill-2d/PROJECT/Structure.md +48 -0
- package/templates-app/molehill-2d/docs/project-2d-rules.md +44 -0
- package/templates-app/molehill-2d/index.html +73 -0
- package/templates-app/molehill-2d/package.json +23 -0
- package/templates-app/molehill-2d/src/behaviors.ts +198 -0
- package/templates-app/molehill-2d/src/game.scene.json +1205 -0
- package/templates-app/molehill-2d/src/main.ts +41 -0
- package/templates-app/molehill-2d/tsconfig.json +13 -0
- package/templates-app/molehill-2d/verify.ts +247 -0
- package/templates-app/molehill-2d/vite.config.ts +12 -0
- package/templates-app/platformer-2d/package.json +2 -2
- package/templates-app/platformer-2d/src/game.scene.json +178 -986
- package/templates-app/platformer-2d/src/main.ts +11 -1
- package/templates-app/platformer-2d/tsconfig.json +1 -1
- package/templates-app/star-survivor/package.json +2 -2
- package/templates-app/star-survivor/src/game.scene.json +43 -216
- package/templates-app/star-survivor/src/main.ts +11 -1
- package/templates-app/star-survivor/tsconfig.json +1 -1
- package/templates-app/tps-3d/PROJECT/Context.md +1 -1
- package/templates-app/tps-3d/package.json +2 -2
- package/templates-app/tps-3d/src/behaviors.ts +19 -1
- package/templates-app/tps-3d/src/game.scene.json +66 -263
- package/templates-app/tps-3d/src/main.ts +13 -2
- package/templates-app/tps-3d/tsconfig.json +1 -1
- package/templates-app/village-quest-3d/.incanto/playtest/swapped-seed1.json +1735 -0
- package/templates-app/village-quest-3d/package.json +2 -2
- package/templates-app/village-quest-3d/src/behaviors.ts +42 -4
- package/templates-app/village-quest-3d/src/grove.scene.json +68 -306
- package/templates-app/village-quest-3d/src/main.ts +11 -1
- package/templates-app/village-quest-3d/src/village.scene.json +202 -863
- package/templates-app/village-quest-3d/tsconfig.json +1 -1
- package/templates-app/village-quest-3d/verify.ts +14 -1
- package/dist/duplicate-Dj4L-5AA.js +0 -22
- package/dist/json-CwwhxQgb.js +0 -36
- package/dist/registry-CF70EArN.js +0 -212
- package/dist/rolldown-runtime-D7D4PA-g.js +0 -13
- package/dist/test-D6ISmuFE.js +0 -2383
- package/dist/touch-DEAmqGdf.js +0 -225
- package/editor/assets/agent8-BDvaZMQJ.js +0 -1
- package/editor/assets/index-CZIRr5EL.js +0 -10958
|
@@ -11,24 +11,14 @@
|
|
|
11
11
|
"turbidity": 3.2,
|
|
12
12
|
"rayleigh": 2
|
|
13
13
|
},
|
|
14
|
-
"fog": {
|
|
15
|
-
|
|
16
|
-
"far": 180
|
|
17
|
-
},
|
|
18
|
-
"shadows": {
|
|
19
|
-
"mapSize": 2048
|
|
20
|
-
},
|
|
14
|
+
"fog": { "near": 40, "far": 180 },
|
|
15
|
+
"shadows": { "mapSize": 2048 },
|
|
21
16
|
"exposure": 1.05,
|
|
22
|
-
"ambient": {
|
|
23
|
-
"color": "#bcd0f0",
|
|
24
|
-
"intensity": 0.28
|
|
25
|
-
},
|
|
17
|
+
"ambient": { "color": "#bcd0f0", "intensity": 0.28 },
|
|
26
18
|
"iblIntensity": 0.8,
|
|
27
19
|
"background": "#243047"
|
|
28
20
|
},
|
|
29
|
-
"physics": {
|
|
30
|
-
"gravity": [0, -9.81, 0]
|
|
31
|
-
},
|
|
21
|
+
"physics": { "gravity": [0, -9.81, 0] },
|
|
32
22
|
"input": {
|
|
33
23
|
"move": {
|
|
34
24
|
"type": "vector2",
|
|
@@ -39,30 +29,12 @@
|
|
|
39
29
|
"right": ["KeyD", "ArrowRight"]
|
|
40
30
|
}
|
|
41
31
|
},
|
|
42
|
-
"jump": {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
},
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
"keys": ["ShiftLeft", "ShiftRight"]
|
|
49
|
-
},
|
|
50
|
-
"fire": {
|
|
51
|
-
"type": "button",
|
|
52
|
-
"keys": ["Mouse0", "KeyF"]
|
|
53
|
-
},
|
|
54
|
-
"reload": {
|
|
55
|
-
"type": "button",
|
|
56
|
-
"keys": ["KeyR"]
|
|
57
|
-
},
|
|
58
|
-
"pause": {
|
|
59
|
-
"type": "button",
|
|
60
|
-
"keys": ["Escape"]
|
|
61
|
-
},
|
|
62
|
-
"restart": {
|
|
63
|
-
"type": "button",
|
|
64
|
-
"keys": ["KeyR"]
|
|
65
|
-
}
|
|
32
|
+
"jump": { "type": "button", "keys": ["Space"] },
|
|
33
|
+
"sprint": { "type": "button", "keys": ["ShiftLeft", "ShiftRight"] },
|
|
34
|
+
"fire": { "type": "button", "keys": ["Mouse0", "KeyF"] },
|
|
35
|
+
"reload": { "type": "button", "keys": ["KeyR"] },
|
|
36
|
+
"pause": { "type": "button", "keys": ["Escape"] },
|
|
37
|
+
"restart": { "type": "button", "keys": ["Enter"] }
|
|
66
38
|
},
|
|
67
39
|
"assets": {
|
|
68
40
|
"characters/base": {
|
|
@@ -93,22 +65,12 @@
|
|
|
93
65
|
"root": {
|
|
94
66
|
"name": "Game",
|
|
95
67
|
"type": "Node",
|
|
96
|
-
"script": {
|
|
97
|
-
"name": "ScoreKeeper",
|
|
98
|
-
"props": {
|
|
99
|
-
"lives": 3
|
|
100
|
-
}
|
|
101
|
-
},
|
|
68
|
+
"script": { "name": "ScoreKeeper", "props": { "lives": 3 } },
|
|
102
69
|
"children": [
|
|
103
70
|
{
|
|
104
71
|
"name": "Flow",
|
|
105
72
|
"type": "Node",
|
|
106
|
-
"script": {
|
|
107
|
-
"name": "GameFlow",
|
|
108
|
-
"props": {
|
|
109
|
-
"pausePanelPath": "%PauseMenu"
|
|
110
|
-
}
|
|
111
|
-
},
|
|
73
|
+
"script": { "name": "GameFlow", "props": { "pausePanelPath": "%PauseMenu" } },
|
|
112
74
|
"uid": "n_ofc39vdgsw837grt"
|
|
113
75
|
},
|
|
114
76
|
{
|
|
@@ -119,10 +81,7 @@
|
|
|
119
81
|
"name": "Floor",
|
|
120
82
|
"type": "StaticBody3D",
|
|
121
83
|
"props": {
|
|
122
|
-
"collider": {
|
|
123
|
-
"shape": "box",
|
|
124
|
-
"size": [48, 0.1, 48]
|
|
125
|
-
},
|
|
84
|
+
"collider": { "shape": "box", "size": [48, 0.1, 48] },
|
|
126
85
|
"position": [0, -0.05, 0]
|
|
127
86
|
},
|
|
128
87
|
"children": [
|
|
@@ -132,10 +91,7 @@
|
|
|
132
91
|
"props": {
|
|
133
92
|
"mesh": "box",
|
|
134
93
|
"size": [48, 0.1, 48],
|
|
135
|
-
"material": {
|
|
136
|
-
"color": "#3a4253",
|
|
137
|
-
"roughness": 1
|
|
138
|
-
},
|
|
94
|
+
"material": { "color": "#3a4253", "roughness": 1 },
|
|
139
95
|
"receiveShadow": true
|
|
140
96
|
}
|
|
141
97
|
}
|
|
@@ -145,10 +101,7 @@
|
|
|
145
101
|
"name": "Wall1",
|
|
146
102
|
"type": "StaticBody3D",
|
|
147
103
|
"props": {
|
|
148
|
-
"collider": {
|
|
149
|
-
"shape": "box",
|
|
150
|
-
"size": [49, 3, 0.5]
|
|
151
|
-
},
|
|
104
|
+
"collider": { "shape": "box", "size": [49, 3, 0.5] },
|
|
152
105
|
"position": [0, 1.5, -24.25]
|
|
153
106
|
},
|
|
154
107
|
"children": [
|
|
@@ -158,10 +111,7 @@
|
|
|
158
111
|
"props": {
|
|
159
112
|
"mesh": "box",
|
|
160
113
|
"size": [49, 3, 0.5],
|
|
161
|
-
"material": {
|
|
162
|
-
"color": "#4a5468",
|
|
163
|
-
"roughness": 0.9
|
|
164
|
-
},
|
|
114
|
+
"material": { "color": "#4a5468", "roughness": 0.9 },
|
|
165
115
|
"receiveShadow": true
|
|
166
116
|
}
|
|
167
117
|
}
|
|
@@ -171,10 +121,7 @@
|
|
|
171
121
|
"name": "Wall2",
|
|
172
122
|
"type": "StaticBody3D",
|
|
173
123
|
"props": {
|
|
174
|
-
"collider": {
|
|
175
|
-
"shape": "box",
|
|
176
|
-
"size": [49, 3, 0.5]
|
|
177
|
-
},
|
|
124
|
+
"collider": { "shape": "box", "size": [49, 3, 0.5] },
|
|
178
125
|
"position": [0, 1.5, 24.25]
|
|
179
126
|
},
|
|
180
127
|
"children": [
|
|
@@ -184,10 +131,7 @@
|
|
|
184
131
|
"props": {
|
|
185
132
|
"mesh": "box",
|
|
186
133
|
"size": [49, 3, 0.5],
|
|
187
|
-
"material": {
|
|
188
|
-
"color": "#4a5468",
|
|
189
|
-
"roughness": 0.9
|
|
190
|
-
},
|
|
134
|
+
"material": { "color": "#4a5468", "roughness": 0.9 },
|
|
191
135
|
"receiveShadow": true
|
|
192
136
|
}
|
|
193
137
|
}
|
|
@@ -197,10 +141,7 @@
|
|
|
197
141
|
"name": "Wall3",
|
|
198
142
|
"type": "StaticBody3D",
|
|
199
143
|
"props": {
|
|
200
|
-
"collider": {
|
|
201
|
-
"shape": "box",
|
|
202
|
-
"size": [0.5, 3, 48]
|
|
203
|
-
},
|
|
144
|
+
"collider": { "shape": "box", "size": [0.5, 3, 48] },
|
|
204
145
|
"position": [-24.25, 1.5, 0]
|
|
205
146
|
},
|
|
206
147
|
"children": [
|
|
@@ -210,10 +151,7 @@
|
|
|
210
151
|
"props": {
|
|
211
152
|
"mesh": "box",
|
|
212
153
|
"size": [0.5, 3, 48],
|
|
213
|
-
"material": {
|
|
214
|
-
"color": "#4a5468",
|
|
215
|
-
"roughness": 0.9
|
|
216
|
-
},
|
|
154
|
+
"material": { "color": "#4a5468", "roughness": 0.9 },
|
|
217
155
|
"receiveShadow": true
|
|
218
156
|
}
|
|
219
157
|
}
|
|
@@ -223,10 +161,7 @@
|
|
|
223
161
|
"name": "Wall4",
|
|
224
162
|
"type": "StaticBody3D",
|
|
225
163
|
"props": {
|
|
226
|
-
"collider": {
|
|
227
|
-
"shape": "box",
|
|
228
|
-
"size": [0.5, 3, 48]
|
|
229
|
-
},
|
|
164
|
+
"collider": { "shape": "box", "size": [0.5, 3, 48] },
|
|
230
165
|
"position": [24.25, 1.5, 0]
|
|
231
166
|
},
|
|
232
167
|
"children": [
|
|
@@ -236,10 +171,7 @@
|
|
|
236
171
|
"props": {
|
|
237
172
|
"mesh": "box",
|
|
238
173
|
"size": [0.5, 3, 48],
|
|
239
|
-
"material": {
|
|
240
|
-
"color": "#4a5468",
|
|
241
|
-
"roughness": 0.9
|
|
242
|
-
},
|
|
174
|
+
"material": { "color": "#4a5468", "roughness": 0.9 },
|
|
243
175
|
"receiveShadow": true
|
|
244
176
|
}
|
|
245
177
|
}
|
|
@@ -249,10 +181,7 @@
|
|
|
249
181
|
"name": "Cover1",
|
|
250
182
|
"type": "StaticBody3D",
|
|
251
183
|
"props": {
|
|
252
|
-
"collider": {
|
|
253
|
-
"shape": "box",
|
|
254
|
-
"size": [2, 1.2, 2]
|
|
255
|
-
},
|
|
184
|
+
"collider": { "shape": "box", "size": [2, 1.2, 2] },
|
|
256
185
|
"position": [-8, 0.6, -8]
|
|
257
186
|
},
|
|
258
187
|
"children": [
|
|
@@ -262,11 +191,7 @@
|
|
|
262
191
|
"props": {
|
|
263
192
|
"mesh": "box",
|
|
264
193
|
"size": [2, 1.2, 2],
|
|
265
|
-
"material": {
|
|
266
|
-
"color": "#5b6678",
|
|
267
|
-
"roughness": 0.85,
|
|
268
|
-
"metalness": 0.1
|
|
269
|
-
},
|
|
194
|
+
"material": { "color": "#5b6678", "roughness": 0.85, "metalness": 0.1 },
|
|
270
195
|
"castShadow": true,
|
|
271
196
|
"receiveShadow": true
|
|
272
197
|
}
|
|
@@ -277,10 +202,7 @@
|
|
|
277
202
|
"name": "Cover2",
|
|
278
203
|
"type": "StaticBody3D",
|
|
279
204
|
"props": {
|
|
280
|
-
"collider": {
|
|
281
|
-
"shape": "box",
|
|
282
|
-
"size": [2, 1.2, 2]
|
|
283
|
-
},
|
|
205
|
+
"collider": { "shape": "box", "size": [2, 1.2, 2] },
|
|
284
206
|
"position": [8, 0.6, -8]
|
|
285
207
|
},
|
|
286
208
|
"children": [
|
|
@@ -290,11 +212,7 @@
|
|
|
290
212
|
"props": {
|
|
291
213
|
"mesh": "box",
|
|
292
214
|
"size": [2, 1.2, 2],
|
|
293
|
-
"material": {
|
|
294
|
-
"color": "#5b6678",
|
|
295
|
-
"roughness": 0.85,
|
|
296
|
-
"metalness": 0.1
|
|
297
|
-
},
|
|
215
|
+
"material": { "color": "#5b6678", "roughness": 0.85, "metalness": 0.1 },
|
|
298
216
|
"castShadow": true,
|
|
299
217
|
"receiveShadow": true
|
|
300
218
|
}
|
|
@@ -305,10 +223,7 @@
|
|
|
305
223
|
"name": "Pillar1",
|
|
306
224
|
"type": "StaticBody3D",
|
|
307
225
|
"props": {
|
|
308
|
-
"collider": {
|
|
309
|
-
"shape": "box",
|
|
310
|
-
"size": [1.1, 4, 1.1]
|
|
311
|
-
},
|
|
226
|
+
"collider": { "shape": "box", "size": [1.1, 4, 1.1] },
|
|
312
227
|
"position": [-14, 2, 6]
|
|
313
228
|
},
|
|
314
229
|
"children": [
|
|
@@ -318,10 +233,7 @@
|
|
|
318
233
|
"props": {
|
|
319
234
|
"mesh": "box",
|
|
320
235
|
"size": [1.1, 4, 1.1],
|
|
321
|
-
"material": {
|
|
322
|
-
"color": "#454f61",
|
|
323
|
-
"roughness": 0.95
|
|
324
|
-
},
|
|
236
|
+
"material": { "color": "#454f61", "roughness": 0.95 },
|
|
325
237
|
"castShadow": true
|
|
326
238
|
}
|
|
327
239
|
}
|
|
@@ -331,10 +243,7 @@
|
|
|
331
243
|
"name": "Pillar2",
|
|
332
244
|
"type": "StaticBody3D",
|
|
333
245
|
"props": {
|
|
334
|
-
"collider": {
|
|
335
|
-
"shape": "box",
|
|
336
|
-
"size": [1.1, 4, 1.1]
|
|
337
|
-
},
|
|
246
|
+
"collider": { "shape": "box", "size": [1.1, 4, 1.1] },
|
|
338
247
|
"position": [14, 2, 6]
|
|
339
248
|
},
|
|
340
249
|
"children": [
|
|
@@ -344,10 +253,7 @@
|
|
|
344
253
|
"props": {
|
|
345
254
|
"mesh": "box",
|
|
346
255
|
"size": [1.1, 4, 1.1],
|
|
347
|
-
"material": {
|
|
348
|
-
"color": "#454f61",
|
|
349
|
-
"roughness": 0.95
|
|
350
|
-
},
|
|
256
|
+
"material": { "color": "#454f61", "roughness": 0.95 },
|
|
351
257
|
"castShadow": true
|
|
352
258
|
}
|
|
353
259
|
}
|
|
@@ -357,10 +263,7 @@
|
|
|
357
263
|
"name": "Ramp",
|
|
358
264
|
"type": "StaticBody3D",
|
|
359
265
|
"props": {
|
|
360
|
-
"collider": {
|
|
361
|
-
"shape": "box",
|
|
362
|
-
"size": [5, 0.6, 3]
|
|
363
|
-
},
|
|
266
|
+
"collider": { "shape": "box", "size": [5, 0.6, 3] },
|
|
364
267
|
"position": [0, 0.3, -14]
|
|
365
268
|
},
|
|
366
269
|
"children": [
|
|
@@ -370,10 +273,7 @@
|
|
|
370
273
|
"props": {
|
|
371
274
|
"mesh": "box",
|
|
372
275
|
"size": [5, 0.6, 3],
|
|
373
|
-
"material": {
|
|
374
|
-
"color": "#5b6678",
|
|
375
|
-
"roughness": 0.85
|
|
376
|
-
},
|
|
276
|
+
"material": { "color": "#5b6678", "roughness": 0.85 },
|
|
377
277
|
"castShadow": true,
|
|
378
278
|
"receiveShadow": true
|
|
379
279
|
}
|
|
@@ -394,11 +294,7 @@
|
|
|
394
294
|
{
|
|
395
295
|
"name": "FillLight",
|
|
396
296
|
"type": "DirectionalLight3D",
|
|
397
|
-
"props": {
|
|
398
|
-
"position": [-38, 36, -28],
|
|
399
|
-
"intensity": 0.4,
|
|
400
|
-
"color": "#b9d4ff"
|
|
401
|
-
}
|
|
297
|
+
"props": { "position": [-38, 36, -28], "intensity": 0.4, "color": "#b9d4ff" }
|
|
402
298
|
}
|
|
403
299
|
]
|
|
404
300
|
},
|
|
@@ -410,19 +306,9 @@
|
|
|
410
306
|
"position": [0, 1.4, 18],
|
|
411
307
|
"fixedRotation": true,
|
|
412
308
|
"friction": 0,
|
|
413
|
-
"collider": {
|
|
414
|
-
"shape": "capsule",
|
|
415
|
-
"radius": 0.34,
|
|
416
|
-
"height": 1
|
|
417
|
-
}
|
|
418
|
-
},
|
|
419
|
-
"script": {
|
|
420
|
-
"name": "Health",
|
|
421
|
-
"props": {
|
|
422
|
-
"max": 100,
|
|
423
|
-
"invulnerableFor": 0.6
|
|
424
|
-
}
|
|
309
|
+
"collider": { "shape": "capsule", "radius": 0.34, "height": 1 }
|
|
425
310
|
},
|
|
311
|
+
"script": { "name": "Health", "props": { "max": 100, "invulnerableFor": 0.6 } },
|
|
426
312
|
"children": [
|
|
427
313
|
{
|
|
428
314
|
"name": "Controller",
|
|
@@ -434,11 +320,11 @@
|
|
|
434
320
|
"maxSpeed": 4.2,
|
|
435
321
|
"sprintMultiplier": 1.7,
|
|
436
322
|
"pitchMin": -0.5,
|
|
437
|
-
"pitchMax": 1.1
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
"name": "Shoot"
|
|
323
|
+
"pitchMax": 1.1,
|
|
324
|
+
"coyoteSeconds": 0.12,
|
|
325
|
+
"jumpBufferSeconds": 0.15
|
|
441
326
|
},
|
|
327
|
+
"script": { "name": "Shoot" },
|
|
442
328
|
"uid": "n_ltyrn17s5l9tizgp"
|
|
443
329
|
},
|
|
444
330
|
{
|
|
@@ -455,9 +341,7 @@
|
|
|
455
341
|
{
|
|
456
342
|
"name": "Muzzle",
|
|
457
343
|
"type": "Node3D",
|
|
458
|
-
"props": {
|
|
459
|
-
"position": [0, 0.4, 0.4]
|
|
460
|
-
},
|
|
344
|
+
"props": { "position": [0, 0.4, 0.4] },
|
|
461
345
|
"children": [
|
|
462
346
|
{
|
|
463
347
|
"name": "ShotSfx",
|
|
@@ -484,20 +368,12 @@
|
|
|
484
368
|
{
|
|
485
369
|
"name": "EmptySfx",
|
|
486
370
|
"type": "AudioPlayer",
|
|
487
|
-
"props": {
|
|
488
|
-
"preset": "blip",
|
|
489
|
-
"volume": 0.4,
|
|
490
|
-
"pitch": 0.7
|
|
491
|
-
}
|
|
371
|
+
"props": { "preset": "blip", "volume": 0.4, "pitch": 0.7 }
|
|
492
372
|
},
|
|
493
373
|
{
|
|
494
374
|
"name": "Flash",
|
|
495
375
|
"type": "OmniLight3D",
|
|
496
|
-
"props": {
|
|
497
|
-
"color": "#ffd27f",
|
|
498
|
-
"intensity": 0,
|
|
499
|
-
"range": 7
|
|
500
|
-
}
|
|
376
|
+
"props": { "color": "#ffd27f", "intensity": 0, "range": 7 }
|
|
501
377
|
}
|
|
502
378
|
]
|
|
503
379
|
}
|
|
@@ -507,49 +383,20 @@
|
|
|
507
383
|
{
|
|
508
384
|
"name": "Camera",
|
|
509
385
|
"type": "Camera3D",
|
|
510
|
-
"props": {
|
|
511
|
-
"position": [0, 2.6, 23],
|
|
512
|
-
"fov": 70,
|
|
513
|
-
"current": true,
|
|
514
|
-
"far": 400
|
|
515
|
-
}
|
|
516
|
-
},
|
|
517
|
-
{
|
|
518
|
-
"name": "HurtSfx",
|
|
519
|
-
"type": "AudioPlayer",
|
|
520
|
-
"props": {
|
|
521
|
-
"preset": "hurt",
|
|
522
|
-
"volume": 0.6
|
|
523
|
-
}
|
|
386
|
+
"props": { "position": [0, 2.6, 23], "fov": 70, "current": true, "far": 400 }
|
|
524
387
|
},
|
|
388
|
+
{ "name": "HurtSfx", "type": "AudioPlayer", "props": { "preset": "hurt", "volume": 0.6 } },
|
|
525
389
|
{
|
|
526
390
|
"name": "Spawner",
|
|
527
391
|
"type": "Node3D",
|
|
528
|
-
"props": {
|
|
529
|
-
"position": [0, 0, 0]
|
|
530
|
-
},
|
|
392
|
+
"props": { "position": [0, 0, 0] },
|
|
531
393
|
"script": {
|
|
532
394
|
"name": "WaveSpawner",
|
|
533
395
|
"props": {
|
|
534
396
|
"waves": [
|
|
535
|
-
{
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
"interval": 1.1,
|
|
539
|
-
"delayBefore": 2
|
|
540
|
-
},
|
|
541
|
-
{
|
|
542
|
-
"prefab": "EnemyTemplate",
|
|
543
|
-
"count": 6,
|
|
544
|
-
"interval": 0.9,
|
|
545
|
-
"delayBefore": 3
|
|
546
|
-
},
|
|
547
|
-
{
|
|
548
|
-
"prefab": "EnemyTemplate",
|
|
549
|
-
"count": 8,
|
|
550
|
-
"interval": 0.7,
|
|
551
|
-
"delayBefore": 3
|
|
552
|
-
}
|
|
397
|
+
{ "prefab": "EnemyTemplate", "count": 4, "interval": 1.1, "delayBefore": 2 },
|
|
398
|
+
{ "prefab": "EnemyTemplate", "count": 6, "interval": 0.9, "delayBefore": 3 },
|
|
399
|
+
{ "prefab": "EnemyTemplate", "count": 8, "interval": 0.7, "delayBefore": 3 }
|
|
553
400
|
]
|
|
554
401
|
}
|
|
555
402
|
},
|
|
@@ -561,19 +408,9 @@
|
|
|
561
408
|
"props": {
|
|
562
409
|
"position": [0, 0.95, -20],
|
|
563
410
|
"visible": false,
|
|
564
|
-
"collider": {
|
|
565
|
-
"shape": "capsule",
|
|
566
|
-
"radius": 0.4,
|
|
567
|
-
"height": 1.1
|
|
568
|
-
}
|
|
569
|
-
},
|
|
570
|
-
"script": {
|
|
571
|
-
"name": "Health",
|
|
572
|
-
"props": {
|
|
573
|
-
"max": 30,
|
|
574
|
-
"freeOnDeath": true
|
|
575
|
-
}
|
|
411
|
+
"collider": { "shape": "capsule", "radius": 0.4, "height": 1.1 }
|
|
576
412
|
},
|
|
413
|
+
"script": { "name": "Health", "props": { "max": 30, "freeOnDeath": true } },
|
|
577
414
|
"children": [
|
|
578
415
|
{
|
|
579
416
|
"name": "Skin",
|
|
@@ -597,11 +434,7 @@
|
|
|
597
434
|
"mesh": "sphere",
|
|
598
435
|
"size": [0.12, 0.12, 0.12],
|
|
599
436
|
"position": [0, 0.55, 0.32],
|
|
600
|
-
"material": {
|
|
601
|
-
"color": "#ffec5c",
|
|
602
|
-
"emissive": "#ffd000",
|
|
603
|
-
"emissiveIntensity": 2
|
|
604
|
-
}
|
|
437
|
+
"material": { "color": "#ffec5c", "emissive": "#ffd000", "emissiveIntensity": 2 }
|
|
605
438
|
}
|
|
606
439
|
},
|
|
607
440
|
{
|
|
@@ -621,12 +454,7 @@
|
|
|
621
454
|
{
|
|
622
455
|
"name": "Hit",
|
|
623
456
|
"type": "Area3D",
|
|
624
|
-
"props": {
|
|
625
|
-
"collider": {
|
|
626
|
-
"shape": "sphere",
|
|
627
|
-
"radius": 1.5
|
|
628
|
-
}
|
|
629
|
-
},
|
|
457
|
+
"props": { "collider": { "shape": "sphere", "radius": 1.5 } },
|
|
630
458
|
"script": {
|
|
631
459
|
"name": "DamageOnContact",
|
|
632
460
|
"props": {
|
|
@@ -674,9 +502,7 @@
|
|
|
674
502
|
{
|
|
675
503
|
"name": "Hud",
|
|
676
504
|
"type": "Node",
|
|
677
|
-
"script": {
|
|
678
|
-
"name": "HudUpdater"
|
|
679
|
-
},
|
|
505
|
+
"script": { "name": "HudUpdater" },
|
|
680
506
|
"uid": "n_ihn045f8ag1zraa2"
|
|
681
507
|
},
|
|
682
508
|
{
|
|
@@ -686,30 +512,27 @@
|
|
|
686
512
|
{
|
|
687
513
|
"name": "PauseMenu",
|
|
688
514
|
"type": "UiPanel",
|
|
689
|
-
"props": {
|
|
690
|
-
"anchor": "center",
|
|
691
|
-
"layout": "column",
|
|
692
|
-
"gap": 10,
|
|
693
|
-
"padding": 18
|
|
694
|
-
},
|
|
515
|
+
"props": { "anchor": "center", "layout": "column", "gap": 10, "padding": 18 },
|
|
695
516
|
"children": [
|
|
696
517
|
{
|
|
697
518
|
"name": "PausedTitle",
|
|
698
519
|
"type": "UiText",
|
|
699
|
-
"props": {
|
|
700
|
-
"text": "Paused",
|
|
701
|
-
"size": 24
|
|
702
|
-
}
|
|
520
|
+
"props": { "text": "Paused", "size": 24 }
|
|
703
521
|
},
|
|
704
522
|
{
|
|
705
523
|
"name": "ResumeHint",
|
|
706
524
|
"type": "UiText",
|
|
707
525
|
"props": {
|
|
708
|
-
"text": "Esc to resume ·
|
|
526
|
+
"text": "Esc to resume · Enter to restart",
|
|
709
527
|
"size": 13,
|
|
710
528
|
"color": "#c9d2dd"
|
|
711
529
|
}
|
|
712
|
-
}
|
|
530
|
+
},
|
|
531
|
+
{ "name": "Volume", "type": "UiVolumeSlider", "uid": "n_5p4124fbnjxx8s0c" },
|
|
532
|
+
{ "name": "Mute", "type": "UiMuteToggle", "uid": "n_e1lyn3mvsy3vj2qr" },
|
|
533
|
+
{ "name": "Quality", "type": "UiQualitySelect", "uid": "n_35r1h71i75yft3ex" },
|
|
534
|
+
{ "name": "RenderScale", "type": "UiRenderScaleSelect", "uid": "n_emg840df89fqsriw" },
|
|
535
|
+
{ "name": "FrameCap", "type": "UiFrameCapSelect", "uid": "n_mgqwgghn0bx900ip" }
|
|
713
536
|
]
|
|
714
537
|
}
|
|
715
538
|
]
|
|
@@ -718,29 +541,9 @@
|
|
|
718
541
|
"uid": "n_h46qaejxdqadqc1c"
|
|
719
542
|
},
|
|
720
543
|
"connections": [
|
|
721
|
-
{
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
"handler": "loseLife"
|
|
726
|
-
},
|
|
727
|
-
{
|
|
728
|
-
"signal": "lifeLost",
|
|
729
|
-
"from": "/root",
|
|
730
|
-
"to": "Player",
|
|
731
|
-
"handler": "reviveFull"
|
|
732
|
-
},
|
|
733
|
-
{
|
|
734
|
-
"signal": "damaged",
|
|
735
|
-
"from": "Player",
|
|
736
|
-
"to": "HurtSfx",
|
|
737
|
-
"handler": "play"
|
|
738
|
-
},
|
|
739
|
-
{
|
|
740
|
-
"signal": "allCleared",
|
|
741
|
-
"from": "Spawner",
|
|
742
|
-
"to": "Hud",
|
|
743
|
-
"handler": "onAllCleared"
|
|
744
|
-
}
|
|
544
|
+
{ "signal": "died", "from": "Player", "to": "/root", "handler": "loseLife" },
|
|
545
|
+
{ "signal": "lifeLost", "from": "/root", "to": "Player", "handler": "reviveFull" },
|
|
546
|
+
{ "signal": "damaged", "from": "Player", "to": "HurtSfx", "handler": "play" },
|
|
547
|
+
{ "signal": "allCleared", "from": "Spawner", "to": "Hud", "handler": "onAllCleared" }
|
|
745
548
|
]
|
|
746
549
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Vanguard — a 3D THIRD-PERSON shooter built on Incanto. Move with WASD, look
|
|
3
3
|
* with the mouse (click locks the pointer), Shift to sprint, Space to jump,
|
|
4
|
-
* left-click / F to fire your hitscan rifle, R to reload
|
|
4
|
+
* left-click / F to fire your hitscan rifle, R to reload, Enter to restart once
|
|
5
|
+
* the mission ends. The camera rides over
|
|
5
6
|
* your soldier's shoulder (CharacterController3D `view: 'free'`); the crosshair
|
|
6
7
|
* is where you shoot. Clear three waves of chasing enemies to SECURE THE AREA;
|
|
7
8
|
* let them drain your HP to 0 and the MISSION FAILS.
|
|
@@ -35,8 +36,18 @@ const canvas = document.querySelector('canvas') as HTMLCanvasElement;
|
|
|
35
36
|
// createGame3D boots everything: register (gameplay behaviors auto-registered) →
|
|
36
37
|
// load → physics (auto; the scene has bodies) → keyboard + pointer-lock look →
|
|
37
38
|
// renderer → start. We pass the two custom behaviors.
|
|
39
|
+
/** Dev-only surfaces: the ☰ debug overlay, and the editor behind it. */
|
|
40
|
+
const DEBUG = import.meta.env.VITE_INCANTO_DEBUG === '1';
|
|
41
|
+
|
|
38
42
|
const game = await createGame3D({
|
|
39
|
-
debug:
|
|
43
|
+
debug: DEBUG,
|
|
44
|
+
// The editor's 📚 buttons, served by `incantoLibrary()` in vite.config.ts.
|
|
45
|
+
// BOTH halves are the opt-in, and this half was missing from every shipped
|
|
46
|
+
// template: the plugin alone left a vite config whose own comment promised
|
|
47
|
+
// "the agent8 asset catalog behind the 📚 buttons" and no button anywhere.
|
|
48
|
+
// Gated on the same flag, because `editor` DEFAULTS to `debug` and an object
|
|
49
|
+
// here would turn the editor on in a production build.
|
|
50
|
+
editor: DEBUG && { library: true },
|
|
40
51
|
canvas,
|
|
41
52
|
scene: sceneJson,
|
|
42
53
|
behaviors: { Shoot, HudUpdater },
|