@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.
Files changed (158) hide show
  1. package/bin/og.mjs +25 -0
  2. package/dist/web/origin-engine.d.ts +1233 -0
  3. package/dist/web/origin-engine.js +8628 -0
  4. package/dist/web/origin-engine_bg.wasm +0 -0
  5. package/dist/web/origin-engine_bg.wasm.d.ts +366 -0
  6. package/dist/web-publish/origin-engine-lanes.js +8509 -0
  7. package/dist/web-publish/origin-engine-lanes_bg.wasm +0 -0
  8. package/dist/web-publish/origin-engine.d.ts +1176 -0
  9. package/dist/web-publish/origin-engine.js +8313 -0
  10. package/dist/web-publish/origin-engine_bg.wasm +0 -0
  11. package/dist/web-publish/origin-engine_bg.wasm.d.ts +347 -0
  12. package/dist/web-publish/snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src/workerHelpers.no-bundler.js +77 -0
  13. package/dist/web-publish-2d/origin-engine-lanes.js +8509 -0
  14. package/dist/web-publish-2d/origin-engine-lanes_bg.wasm +0 -0
  15. package/dist/web-publish-2d/origin-engine.d.ts +1176 -0
  16. package/dist/web-publish-2d/origin-engine.js +8313 -0
  17. package/dist/web-publish-2d/origin-engine_bg.wasm +0 -0
  18. package/dist/web-publish-2d/origin-engine_bg.wasm.d.ts +347 -0
  19. package/dist/web-publish-2d/snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src/workerHelpers.no-bundler.js +77 -0
  20. package/knowledge/README.md +31 -0
  21. package/knowledge/knowledge.json +13 -0
  22. package/knowledge/looks/catalogue.json +1871 -0
  23. package/knowledge/package.json +33 -0
  24. package/knowledge/rules/platform.json +329 -0
  25. package/knowledge/scaffold/README.md +27 -0
  26. package/knowledge/scaffold/distribution.json +48 -0
  27. package/knowledge/scaffold/origin-engine.json +19 -0
  28. package/knowledge/scaffold/template/.origin/setup +14 -0
  29. package/knowledge/scaffold/template/LICENSES.md +23 -0
  30. package/knowledge/scaffold/template/README.md +37 -0
  31. package/knowledge/scaffold/template/assets/ai/guard.ogt +48 -0
  32. package/knowledge/scaffold/template/assets/audio/click.ogt +9 -0
  33. package/knowledge/scaffold/template/assets/fonts/NotoSansSC-Regular-subset.ttf.ogt +12 -0
  34. package/knowledge/scaffold/template/assets/fonts/OFL.txt +93 -0
  35. package/knowledge/scaffold/template/assets/looks/origin-game.ogt +12 -0
  36. package/knowledge/scaffold/template/assets/nav/yard.ogt +27 -0
  37. package/knowledge/scaffold/template/assets/scenes/main.ogt +34 -0
  38. package/knowledge/scaffold/template/assets/strings/en.ogt +14 -0
  39. package/knowledge/scaffold/template/assets/textures/stone_n.png.ogt +7 -0
  40. package/knowledge/scaffold/template/gitattributes +22 -0
  41. package/knowledge/scaffold/template/package.json +18 -0
  42. package/knowledge/scaffold/template/project.ogt +25 -0
  43. package/knowledge/scaffold/template/src/main.ts +246 -0
  44. package/knowledge/scaffold/template/tests/guard.og.ts +67 -0
  45. package/knowledge/scaffold/template/tests/smoke.og.ts +43 -0
  46. package/knowledge/scaffold/template/tsconfig.json +17 -0
  47. package/knowledge/scripts/lib.ts +203 -0
  48. package/knowledge/scripts/mount.ts +210 -0
  49. package/knowledge/scripts/pack.ts +24 -0
  50. package/knowledge/scripts/scaffold.ts +72 -0
  51. package/knowledge/scripts/validate.ts +749 -0
  52. package/knowledge/skills/og-ai/SKILL.md +386 -0
  53. package/knowledge/skills/og-audio/SKILL.md +191 -0
  54. package/knowledge/skills/og-build/SKILL.md +330 -0
  55. package/knowledge/skills/og-core/SKILL.md +285 -0
  56. package/knowledge/skills/og-feel/SKILL.md +385 -0
  57. package/knowledge/skills/og-game/SKILL.md +1479 -0
  58. package/knowledge/skills/og-i18n/SKILL.md +220 -0
  59. package/knowledge/skills/og-platform-sdk/SKILL.md +199 -0
  60. package/knowledge/skills/og-taste/SKILL.md +537 -0
  61. package/knowledge/skills/og-ui/SKILL.md +444 -0
  62. package/knowledge/wiki/ai.md +627 -0
  63. package/knowledge/wiki/anim.md +1187 -0
  64. package/knowledge/wiki/atmosphere.md +636 -0
  65. package/knowledge/wiki/audio.md +732 -0
  66. package/knowledge/wiki/camera.md +711 -0
  67. package/knowledge/wiki/commands.md +357 -0
  68. package/knowledge/wiki/game.md +220 -0
  69. package/knowledge/wiki/i18n.md +213 -0
  70. package/knowledge/wiki/index.md +1027 -0
  71. package/knowledge/wiki/input.md +1714 -0
  72. package/knowledge/wiki/load.md +1280 -0
  73. package/knowledge/wiki/math.md +166 -0
  74. package/knowledge/wiki/nav.md +1154 -0
  75. package/knowledge/wiki/physics.md +3142 -0
  76. package/knowledge/wiki/platform.md +857 -0
  77. package/knowledge/wiki/probe.md +1692 -0
  78. package/knowledge/wiki/reflect.md +285 -0
  79. package/knowledge/wiki/render.md +3511 -0
  80. package/knowledge/wiki/rng.md +393 -0
  81. package/knowledge/wiki/stream.md +376 -0
  82. package/knowledge/wiki/system.md +197 -0
  83. package/knowledge/wiki/systems.md +43 -0
  84. package/knowledge/wiki/terrain.md +727 -0
  85. package/knowledge/wiki/tilemap.md +422 -0
  86. package/knowledge/wiki/time.md +150 -0
  87. package/knowledge/wiki/transform.md +230 -0
  88. package/knowledge/wiki/tween.md +580 -0
  89. package/knowledge/wiki/ui.md +8000 -0
  90. package/knowledge/wiki/world.md +909 -0
  91. package/package.json +68 -4
  92. package/schema/api.schema.json +29675 -0
  93. package/shell/README.md +22 -0
  94. package/shell/brand/README.md +23 -0
  95. package/shell/brand/icon-192.png +0 -0
  96. package/shell/brand/icon-512.png +0 -0
  97. package/shell/brand/mark-on-paper.svg +6 -0
  98. package/shell/brand/origin-mark.svg +5 -0
  99. package/shell/brand/origin-motion.css +251 -0
  100. package/shell/brand/tokens.css +20 -0
  101. package/shell/brand.ts +132 -0
  102. package/shell/page.ts +715 -0
  103. package/shell/platform.ts +203 -0
  104. package/shell/player.ts +238 -0
  105. package/shell/shell.css +185 -0
  106. package/shell/sw.ts +177 -0
  107. package/shell/transport.ts +515 -0
  108. package/shell/wire.ts +369 -0
  109. package/src/e6.ts +69 -0
  110. package/src/env.d.ts +100 -0
  111. package/src/generated/abi.ts +980 -0
  112. package/src/index.ts +193 -0
  113. package/src/node/audio.ts +86 -0
  114. package/src/node/build.ts +109 -0
  115. package/src/node/device.ts +981 -0
  116. package/src/node/doctor.ts +60 -0
  117. package/src/node/index.ts +102 -0
  118. package/src/node/platform.ts +24 -0
  119. package/src/node/playtest-run.ts +249 -0
  120. package/src/node/png.ts +130 -0
  121. package/src/node/polish.ts +976 -0
  122. package/src/node/run.ts +373 -0
  123. package/src/node/web-build.ts +808 -0
  124. package/src/p2.ts +35 -0
  125. package/src/platform-local.ts +211 -0
  126. package/src/playtest.ts +131 -0
  127. package/src/runtime.ts +1509 -0
  128. package/src/systems/cameras.ts +247 -0
  129. package/src/ui-kit/bind.ts +141 -0
  130. package/src/ui-kit/huds.ts +303 -0
  131. package/src/ui-kit/index.ts +36 -0
  132. package/src/ui-kit/menus.ts +187 -0
  133. package/src/ui-kit/settings.ts +131 -0
  134. package/src/ui-kit/store.ts +222 -0
  135. package/src/ui-kit/story.ts +89 -0
  136. package/src/ui-kit/util.ts +106 -0
  137. package/src/web/a11y.ts +429 -0
  138. package/src/web/audio-worklet.ts +193 -0
  139. package/src/web/audio.ts +307 -0
  140. package/src/web/basis.ts +239 -0
  141. package/src/web/gamepad.ts +123 -0
  142. package/src/web/host.ts +166 -0
  143. package/src/web/input.ts +237 -0
  144. package/src/web/lanes.ts +21 -0
  145. package/src/web/play.ts +20 -0
  146. package/src/web/rpc-ring.ts +110 -0
  147. package/src/web/settle.ts +122 -0
  148. package/src/web/shell.ts +643 -0
  149. package/src/web/text-input.ts +248 -0
  150. package/src/web/worker.ts +1002 -0
  151. package/types/bindings.json +13654 -0
  152. package/types/index.d.ts +20090 -0
  153. package/vendor/basis/LICENSE +201 -0
  154. package/vendor/basis/NOTICE +15 -0
  155. package/vendor/basis/README.md +18 -0
  156. package/vendor/basis/basis_transcoder.js +19 -0
  157. package/vendor/basis/basis_transcoder.wasm +0 -0
  158. package/README.md +0 -3
@@ -0,0 +1,393 @@
1
+ <!-- Generated from crates/og-api/api.ogt by `og api gen`. Do not edit: `og api check` fails on any difference; change api.ogt and regenerate. -->
2
+
3
+ # The `rng` module
4
+
5
+ Deterministic randomness. Every random draw comes from an Rng stream; the sequence for a seed is identical on every host and in the Web scaffold's rng.ts.
6
+
7
+ Inside a system: forking needs og.Rng among the reads (a fork is derived from the seed and the label, and leaves the main stream where it is); drawing from og.Rng itself (next, range, integer, chance) moves its state, so it needs og.Rng among the writes. A stream a fork returned is the system's own to draw from.
8
+
9
+ - **TypeScript**: functions are none at module level (its members live on the types below); components, resources and events are tokens on `og`.
10
+ - **Publish builds**: kept (members may override).
11
+ - **Skill**: `og-core`, which teaches the module (how much of it to use, and how to prove it).
12
+ - **Index**: [every module and name](index.md).
13
+
14
+ ```ogt
15
+ module rng {
16
+ # declarations follow, each quoted below
17
+ ```
18
+
19
+ <sub>`api.ogt` line 641</sub>
20
+
21
+ ## Contents
22
+
23
+ | Name | Kind | Summary |
24
+ |---|---|---|
25
+ | [`RngStream`](#type-RngStream) | interface | One generator stream, forked from the Rng resource for a subsystem that must not perturb the main sequence. |
26
+ | [`og.Rng`](#record-Rng) | resource | The world's main random stream, seeded from GameDesc.seed (or the replay seed). Its state is part of every snapshot. |
27
+
28
+ ## Components, resources and events
29
+
30
+ <a id="record-Rng"></a>
31
+
32
+ ### `og.Rng` (resource)
33
+
34
+ The world's main random stream, seeded from GameDesc.seed (or the replay seed). Its state is part of every snapshot.
35
+
36
+ Token `og.Rng`, registered under the schema name `og.Rng`; its value type is `Rng`.
37
+
38
+ | Field | Type | Default | Range | Unit | Notes | Doc |
39
+ |---|---|---|---|---|---|---|
40
+ | `seed` | `number` | `0` | — | — | read only | The seed the stream started from. |
41
+ | `state` | `number` | `0` | — | — | read only | The generator state; snapshot and restore carry it. |
42
+
43
+ ```ogt
44
+ resource Rng {
45
+ doc "The world's main random stream, seeded from GameDesc.seed (or the replay seed). Its state is part of every snapshot."
46
+ field seed u32 "The seed the stream started from." {
47
+ readonly true
48
+ }
49
+ field state u32 "The generator state; snapshot and restore carry it." {
50
+ readonly true
51
+ }
52
+ fn next {
53
+ doc "Uniform in [0, 1)."
54
+ returns f64
55
+ }
56
+ fn range {
57
+ doc "Uniform in [low, high)."
58
+ param low f64 "The inclusive lower bound."
59
+ param high f64 "The exclusive upper bound."
60
+ returns f64
61
+ }
62
+ fn integer {
63
+ doc "A uniform integer in [low, high]."
64
+ param low i32 "The inclusive lower bound."
65
+ param high i32 "The inclusive upper bound."
66
+ returns i32
67
+ }
68
+ fn chance {
69
+ doc "True with probability p."
70
+ param p f64 "The probability, between 0 and 1."
71
+ returns bool
72
+ }
73
+ fn fork {
74
+ doc "A stream for a subsystem, derived from the seed and a label, so drawing from it leaves the main sequence alone. The same label gives the same stream every time, on every host, wherever the main stream is; og.Rng among a system's reads is enough."
75
+ param label String "The subsystem's name, such as `spawner`."
76
+ returns RngStream
77
+ }
78
+ }
79
+ ```
80
+
81
+ <sub>`api.ogt` line 677</sub>
82
+
83
+ <a id="member-Rng-next"></a>
84
+
85
+ #### `Rng.next`
86
+
87
+ Uniform in [0, 1).
88
+
89
+ ```ts
90
+ Rng.next(): number
91
+ ```
92
+
93
+ **Returns** `number`.
94
+
95
+ Binding symbol `og_rng_next` · publish builds: kept
96
+
97
+ ```ogt
98
+ fn next {
99
+ doc "Uniform in [0, 1)."
100
+ returns f64
101
+ }
102
+ ```
103
+
104
+ <sub>`api.ogt` line 685</sub>
105
+
106
+ <a id="member-Rng-range"></a>
107
+
108
+ #### `Rng.range`
109
+
110
+ Uniform in [low, high).
111
+
112
+ ```ts
113
+ Rng.range(low: number, high: number): number
114
+ ```
115
+
116
+ | Parameter | Type | Optional | Doc |
117
+ |---|---|---|---|
118
+ | `low` | `number` | no | The inclusive lower bound. |
119
+ | `high` | `number` | no | The exclusive upper bound. |
120
+
121
+ **Returns** `number`.
122
+
123
+ Binding symbol `og_rng_range` · publish builds: kept
124
+
125
+ ```ogt
126
+ fn range {
127
+ doc "Uniform in [low, high)."
128
+ param low f64 "The inclusive lower bound."
129
+ param high f64 "The exclusive upper bound."
130
+ returns f64
131
+ }
132
+ ```
133
+
134
+ <sub>`api.ogt` line 689</sub>
135
+
136
+ <a id="member-Rng-integer"></a>
137
+
138
+ #### `Rng.integer`
139
+
140
+ A uniform integer in [low, high].
141
+
142
+ ```ts
143
+ Rng.integer(low: number, high: number): number
144
+ ```
145
+
146
+ | Parameter | Type | Optional | Doc |
147
+ |---|---|---|---|
148
+ | `low` | `number` | no | The inclusive lower bound. |
149
+ | `high` | `number` | no | The inclusive upper bound. |
150
+
151
+ **Returns** `number`.
152
+
153
+ Binding symbol `og_rng_integer` · publish builds: kept
154
+
155
+ ```ogt
156
+ fn integer {
157
+ doc "A uniform integer in [low, high]."
158
+ param low i32 "The inclusive lower bound."
159
+ param high i32 "The inclusive upper bound."
160
+ returns i32
161
+ }
162
+ ```
163
+
164
+ <sub>`api.ogt` line 695</sub>
165
+
166
+ <a id="member-Rng-chance"></a>
167
+
168
+ #### `Rng.chance`
169
+
170
+ True with probability p.
171
+
172
+ ```ts
173
+ Rng.chance(p: number): boolean
174
+ ```
175
+
176
+ | Parameter | Type | Optional | Doc |
177
+ |---|---|---|---|
178
+ | `p` | `number` | no | The probability, between 0 and 1. |
179
+
180
+ **Returns** `boolean`.
181
+
182
+ Binding symbol `og_rng_chance` · publish builds: kept
183
+
184
+ ```ogt
185
+ fn chance {
186
+ doc "True with probability p."
187
+ param p f64 "The probability, between 0 and 1."
188
+ returns bool
189
+ }
190
+ ```
191
+
192
+ <sub>`api.ogt` line 701</sub>
193
+
194
+ <a id="member-Rng-fork"></a>
195
+
196
+ #### `Rng.fork`
197
+
198
+ A stream for a subsystem, derived from the seed and a label, so drawing from it leaves the main sequence alone. The same label gives the same stream every time, on every host, wherever the main stream is; og.Rng among a system's reads is enough.
199
+
200
+ ```ts
201
+ Rng.fork(label: string): RngStream
202
+ ```
203
+
204
+ | Parameter | Type | Optional | Doc |
205
+ |---|---|---|---|
206
+ | `label` | `string` | no | The subsystem's name, such as `spawner`. |
207
+
208
+ **Returns** `RngStream`.
209
+
210
+ Binding symbol `og_rng_fork` · publish builds: kept
211
+
212
+ ```ogt
213
+ fn fork {
214
+ doc "A stream for a subsystem, derived from the seed and a label, so drawing from it leaves the main sequence alone. The same label gives the same stream every time, on every host, wherever the main stream is; og.Rng among a system's reads is enough."
215
+ param label String "The subsystem's name, such as `spawner`."
216
+ returns RngStream
217
+ }
218
+ ```
219
+
220
+ <sub>`api.ogt` line 706</sub>
221
+
222
+ ## Interfaces
223
+
224
+ <a id="type-RngStream"></a>
225
+
226
+ ### `RngStream` (interface)
227
+
228
+ One generator stream, forked from the Rng resource for a subsystem that must not perturb the main sequence.
229
+
230
+ ```ogt
231
+ interface RngStream {
232
+ doc "One generator stream, forked from the Rng resource for a subsystem that must not perturb the main sequence."
233
+ # members follow, each quoted below
234
+ ```
235
+
236
+ <sub>`api.ogt` line 646</sub>
237
+
238
+ <a id="member-RngStream-seed"></a>
239
+
240
+ #### `RngStream.seed` (property)
241
+
242
+ The stream's derived seed.
243
+
244
+ ```ts
245
+ readonly seed: number
246
+ ```
247
+
248
+ Binding symbol `og_rng_stream_get_seed` · publish builds: kept
249
+
250
+ ```ogt
251
+ prop seed u32 "The stream's derived seed."
252
+ ```
253
+
254
+ <sub>`api.ogt` line 648</sub>
255
+
256
+ <a id="member-RngStream-next"></a>
257
+
258
+ #### `RngStream.next`
259
+
260
+ Uniform in [0, 1).
261
+
262
+ ```ts
263
+ RngStream.next(): number
264
+ ```
265
+
266
+ **Returns** `number`.
267
+
268
+ Binding symbol `og_rng_stream_next` · publish builds: kept
269
+
270
+ ```ogt
271
+ fn next {
272
+ doc "Uniform in [0, 1)."
273
+ returns f64
274
+ }
275
+ ```
276
+
277
+ <sub>`api.ogt` line 649</sub>
278
+
279
+ <a id="member-RngStream-range"></a>
280
+
281
+ #### `RngStream.range`
282
+
283
+ Uniform in [low, high).
284
+
285
+ ```ts
286
+ RngStream.range(low: number, high: number): number
287
+ ```
288
+
289
+ | Parameter | Type | Optional | Doc |
290
+ |---|---|---|---|
291
+ | `low` | `number` | no | The inclusive lower bound. |
292
+ | `high` | `number` | no | The exclusive upper bound. |
293
+
294
+ **Returns** `number`.
295
+
296
+ Binding symbol `og_rng_stream_range` · publish builds: kept
297
+
298
+ ```ogt
299
+ fn range {
300
+ doc "Uniform in [low, high)."
301
+ param low f64 "The inclusive lower bound."
302
+ param high f64 "The exclusive upper bound."
303
+ returns f64
304
+ }
305
+ ```
306
+
307
+ <sub>`api.ogt` line 653</sub>
308
+
309
+ <a id="member-RngStream-integer"></a>
310
+
311
+ #### `RngStream.integer`
312
+
313
+ A uniform integer in [low, high].
314
+
315
+ ```ts
316
+ RngStream.integer(low: number, high: number): number
317
+ ```
318
+
319
+ | Parameter | Type | Optional | Doc |
320
+ |---|---|---|---|
321
+ | `low` | `number` | no | The inclusive lower bound. |
322
+ | `high` | `number` | no | The inclusive upper bound. |
323
+
324
+ **Returns** `number`.
325
+
326
+ Binding symbol `og_rng_stream_integer` · publish builds: kept
327
+
328
+ ```ogt
329
+ fn integer {
330
+ doc "A uniform integer in [low, high]."
331
+ param low i32 "The inclusive lower bound."
332
+ param high i32 "The inclusive upper bound."
333
+ returns i32
334
+ }
335
+ ```
336
+
337
+ <sub>`api.ogt` line 659</sub>
338
+
339
+ <a id="member-RngStream-chance"></a>
340
+
341
+ #### `RngStream.chance`
342
+
343
+ True with probability p.
344
+
345
+ ```ts
346
+ RngStream.chance(p: number): boolean
347
+ ```
348
+
349
+ | Parameter | Type | Optional | Doc |
350
+ |---|---|---|---|
351
+ | `p` | `number` | no | The probability, between 0 and 1. |
352
+
353
+ **Returns** `boolean`.
354
+
355
+ Binding symbol `og_rng_stream_chance` · publish builds: kept
356
+
357
+ ```ogt
358
+ fn chance {
359
+ doc "True with probability p."
360
+ param p f64 "The probability, between 0 and 1."
361
+ returns bool
362
+ }
363
+ ```
364
+
365
+ <sub>`api.ogt` line 665</sub>
366
+
367
+ <a id="member-RngStream-fork"></a>
368
+
369
+ #### `RngStream.fork`
370
+
371
+ A fresh stream on a seed derived from this stream's seed and a label.
372
+
373
+ ```ts
374
+ RngStream.fork(label: string): RngStream
375
+ ```
376
+
377
+ | Parameter | Type | Optional | Doc |
378
+ |---|---|---|---|
379
+ | `label` | `string` | no | The subsystem's name; the same label always gives the same stream. |
380
+
381
+ **Returns** `RngStream`.
382
+
383
+ Binding symbol `og_rng_stream_fork` · publish builds: kept
384
+
385
+ ```ogt
386
+ fn fork {
387
+ doc "A fresh stream on a seed derived from this stream's seed and a label."
388
+ param label String "The subsystem's name; the same label always gives the same stream."
389
+ returns RngStream
390
+ }
391
+ ```
392
+
393
+ <sub>`api.ogt` line 670</sub>