incanto 0.38.0 → 0.40.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/dist/2d.d.ts +2 -2
- package/dist/2d.js +3 -3
- package/dist/3d.d.ts +83 -3
- package/dist/3d.js +4 -4
- package/dist/{behavior-B5PJ32eu.d.ts → behavior-TA8nySqb.d.ts} +61 -1
- package/dist/{create-game-DqY2lMBc.js → create-game-CEKCtnKw.js} +13 -6
- package/dist/{create-game-C4t5gVhc.js → create-game-Dc2CEFtD.js} +4 -4
- package/dist/debug.d.ts +1 -1
- package/dist/{environment-presets-C0Axpfth.js → environment-presets-Z0PkDH62.js} +2 -2
- package/dist/{gameplay-CsJDUQh_.js → gameplay-CqNfawyn.js} +135 -15
- package/dist/gameplay.d.ts +1 -1
- package/dist/gameplay.js +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/{loader-DSMdqasu.d.ts → loader-CvSDKC3v.d.ts} +1 -1
- package/dist/net.d.ts +1 -1
- package/dist/net.js +2 -2
- package/dist/{pathfinding-BrE5Uec6.d.ts → pathfinding-_UlKUoox.d.ts} +1 -1
- package/dist/{physics-2d-OfKb0PV_.js → physics-2d-CxIqR1cW.js} +1 -1
- package/dist/{physics-3d-C8242nXr.js → physics-3d-CcUaeJXq.js} +2 -2
- package/dist/react.d.ts +1 -1
- package/dist/react.js +1 -1
- package/dist/{register-DnB9m7Rl.js → register-CgMO5JBY.js} +1 -1
- package/dist/{register-B4RRQbyq.js → register-D5v8iqjZ.js} +1 -1
- package/dist/{register-Dm7nrd-E.js → register-DMFJI-c_.js} +23 -11
- package/dist/{replay-Cxrr-ApH.d.ts → replay-DN-kG4va.d.ts} +1 -1
- package/dist/{replay-DH0UOuZ-.js → replay-D_QY5Xm3.js} +1 -1
- package/dist/{test-CoDPWx-m.js → test-CFhY8No9.js} +10 -10
- package/dist/test.d.ts +3 -3
- package/dist/test.js +2 -2
- package/dist/vite.js +1 -1
- package/editor/assets/{agent8-BtIlblPm.js → agent8-COwolmAe.js} +1 -1
- package/editor/assets/{debug-BvTmHXI7.js → debug-DJSCLmsL.js} +1 -1
- package/editor/assets/{index-BS01WWgM.js → index-tRXhfJEm.js} +91 -91
- package/editor/index.html +1 -1
- package/package.json +1 -1
- package/skills/incanto-environment.md +32 -0
- package/skills/incanto-performance.md +23 -0
- package/templates-app/beacon-isle-3d/package.json +1 -1
- package/templates-app/tps-3d/package.json +1 -1
- package/templates-app/village-quest-3d/package.json +1 -1
package/editor/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Incanto Scene Editor</title>
|
|
7
7
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><rect width='16' height='16' rx='3' fill='%236ee7dc'/><text x='8' y='12' text-anchor='middle' font-size='11' font-family='monospace' fill='%230e1018'>i</text></svg>" />
|
|
8
|
-
<script type="module" crossorigin src="./assets/index-
|
|
8
|
+
<script type="module" crossorigin src="./assets/index-tRXhfJEm.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="./assets/GameServer-C56iOUgF.js">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
package/package.json
CHANGED
|
@@ -700,6 +700,38 @@ non-default composition.
|
|
|
700
700
|
|
|
701
701
|
## Water3D
|
|
702
702
|
|
|
703
|
+
### The player's graphics setting reaches this node
|
|
704
|
+
|
|
705
|
+
At **quality `low`** a fancy surface collapses to the single-pass lake shader —
|
|
706
|
+
automatically, at runtime, no props involved. That turns several full scene
|
|
707
|
+
re-renders a frame (planar mirror, reflection cube, refraction grab, depth
|
|
708
|
+
completion) into **none**, which is the largest single saving available on a
|
|
709
|
+
weak device.
|
|
710
|
+
|
|
711
|
+
At **`medium`** the surface keeps the fancy shader and loses only the planar
|
|
712
|
+
`mirror` — the most expensive single thing it does, a whole extra render of the
|
|
713
|
+
scene per frame. It still reflects sky and far shore through the cube; what goes
|
|
714
|
+
is the sharp reflection of nearby geometry. So a mirror lake still reads as a
|
|
715
|
+
lake on a mid-range phone. See `incanto-performance.md`.
|
|
716
|
+
|
|
717
|
+
Two rules you can rely on:
|
|
718
|
+
|
|
719
|
+
- **A tier only ever takes away.** Water authored `quality: 'simple'` stays
|
|
720
|
+
simple at `high` — a tier never upgrades a scene into something it did not
|
|
721
|
+
ask for. And the cap is not an edit: the scene file still says what you wrote.
|
|
722
|
+
- **`heightAt()` follows what is actually drawn**, so buoyancy and interaction
|
|
723
|
+
ripples match the surface on every device.
|
|
724
|
+
|
|
725
|
+
A big surface (over ~110 m a side — an ocean, not a lake) stays on the fancy
|
|
726
|
+
shader at `low` and takes `medium`'s behaviour instead. The simple shader's only
|
|
727
|
+
waterline is a fade of its own rectangle, which lands hundreds of metres out to
|
|
728
|
+
sea on an ocean plane; without this it met the beach in a razor-straight line.
|
|
729
|
+
|
|
730
|
+
It is not free: the simple shader has no samplers, so at low the shoreline
|
|
731
|
+
dissolve, contact foam and depth absorption go away. If your game's look depends
|
|
732
|
+
on them — a resort pool, a mirror lake — say so in the scene by pinning
|
|
733
|
+
`quality`, and accept the cost on low-end devices.
|
|
734
|
+
|
|
703
735
|
A commercial-quality water surface (in `incanto/3d`, registered by
|
|
704
736
|
`registerNodes3D`). **Four curated water types are one prop away:**
|
|
705
737
|
`preset: 'ocean' | 'pool' | 'lake' | 'pond'` — see the prop table; the four
|
|
@@ -43,6 +43,29 @@ Every one of those is written to the save store and comes back on the next launc
|
|
|
43
43
|
|
|
44
44
|
### quality
|
|
45
45
|
|
|
46
|
+
**Water follows the tier too, and it is the biggest single saving.**
|
|
47
|
+
|
|
48
|
+
| tier | what water does |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| `high` | everything the scene asked for |
|
|
51
|
+
| `medium` | fancy shader, **no planar mirror** (the cube still gives it sky and far shore) |
|
|
52
|
+
| `low` | single-pass lake shader — no mirror, no cube, no grab, no depth pass |
|
|
53
|
+
|
|
54
|
+
**Big water does not collapse at `low`.** The simple shader's only waterline is
|
|
55
|
+
a fade of its own rectangle's outer 18%, so a surface that does not fill its
|
|
56
|
+
basin — an ocean plane with an island in the middle — would meet the beach in a
|
|
57
|
+
razor-straight line with no surf. Above a ~110 m plane the tier keeps the fancy
|
|
58
|
+
shader and takes `medium`'s behaviour instead (no mirror). Small water, which is
|
|
59
|
+
what most games have, still gets the full saving.
|
|
60
|
+
|
|
61
|
+
At `low` several full scene re-renders a frame become **none**, and the render
|
|
62
|
+
targets are released rather than held. At `medium` the mirror — a whole extra
|
|
63
|
+
render of the scene, per water node, per frame — goes, and the reflection cube
|
|
64
|
+
is held to a 2 s floor so the saving is not handed straight back to it.
|
|
65
|
+
|
|
66
|
+
A surface the scene authored as `simple`, or one that never asked for a mirror,
|
|
67
|
+
is untouched — a tier only ever takes away.
|
|
68
|
+
|
|
46
69
|
`low` turns off shadows, bloom, post and clouds. `medium` keeps shadows but makes them
|
|
47
70
|
**static** (they render once instead of every frame — the measured 42% of a shadow's
|
|
48
71
|
cost is re-rendering it) and drops post. `high` is everything.
|