nova64 0.2.5 → 0.2.6
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/README.md +25 -8
- package/bin/nova64.js +165 -0
- package/dist/assets/console-CY_kygm3.js +14 -0
- package/dist/assets/console-CY_kygm3.js.map +1 -0
- package/dist/assets/main-l0sNRNKZ.js.map +1 -0
- package/dist/assets/sky/studio/nx.png +0 -0
- package/dist/assets/sky/studio/ny.png +0 -0
- package/dist/assets/sky/studio/nz.png +0 -0
- package/dist/assets/sky/studio/px.png +0 -0
- package/dist/assets/sky/studio/py.png +0 -0
- package/dist/assets/sky/studio/pz.png +0 -0
- package/dist/assets/vanilla-Dcuy32gi.js +2 -0
- package/dist/assets/vanilla-Dcuy32gi.js.map +1 -0
- package/dist/console.html +899 -0
- package/dist/docs/BENCHMARK.md +77 -0
- package/dist/docs/CHEATSHEET.md +255 -0
- package/dist/docs/EFFECTS_API_GUIDE.md +577 -0
- package/dist/docs/EFFECTS_QUICK_REFERENCE.md +331 -0
- package/dist/docs/FONT_CHARACTER_REFERENCE.md +219 -0
- package/dist/docs/FREE_GLB_ASSETS.md +330 -0
- package/dist/docs/FULLSCREEN_BUTTON_FEATURE.md +296 -0
- package/dist/docs/GAMEPAD_SUPPORT.md +348 -0
- package/dist/docs/GAME_IMPROVEMENTS.md +278 -0
- package/dist/docs/GAME_QUALITY_STATUS.md +300 -0
- package/dist/docs/MIGRATION_GUIDE.md +553 -0
- package/dist/docs/NOVA64_3D_API.md +356 -0
- package/dist/docs/NOVA64_API_REFERENCE.md +1406 -0
- package/dist/docs/NOVA64_UI_API.md +503 -0
- package/dist/docs/UI_SYSTEM_SUMMARY.md +445 -0
- package/dist/docs/VOXEL_ENGINE_GUIDE.md +662 -0
- package/dist/docs/VOXEL_QUICK_REFERENCE.md +386 -0
- package/dist/docs/api-3d.html +750 -0
- package/dist/docs/api-effects.html +385 -0
- package/dist/docs/api-improvements.md +121 -0
- package/dist/docs/api-skybox.html +407 -0
- package/dist/docs/api-sprites.html +321 -0
- package/dist/docs/api-voxel.html +337 -0
- package/dist/docs/api.html +543 -0
- package/dist/docs/assets.html +306 -0
- package/dist/docs/audio.html +340 -0
- package/dist/docs/blogs.html +286 -0
- package/dist/docs/collision.html +316 -0
- package/dist/docs/console.html +247 -0
- package/dist/docs/editor.html +297 -0
- package/dist/docs/font.html +247 -0
- package/dist/docs/framebuffer.html +247 -0
- package/dist/docs/fullscreen-button.html +297 -0
- package/dist/docs/gpu-systems.html +247 -0
- package/dist/docs/index.html +580 -0
- package/dist/docs/input.html +491 -0
- package/dist/docs/physics.html +311 -0
- package/dist/docs/screens.html +311 -0
- package/dist/docs/storage.html +311 -0
- package/dist/docs/textinput.html +332 -0
- package/dist/docs/ui.html +488 -0
- package/dist/examples/3d-advanced/code.js +695 -0
- package/dist/examples/adventure-comic-3d/code.js +342 -0
- package/dist/examples/audio-lab/code.js +150 -0
- package/dist/examples/boids-flocking/code.js +270 -0
- package/dist/examples/crystal-cathedral-3d/code.js +706 -0
- package/dist/examples/cyberpunk-city-3d/code.js +1383 -0
- package/dist/examples/demoscene/README.md +192 -0
- package/dist/examples/demoscene/code.js +1081 -0
- package/dist/examples/demoscene/meta.json +21 -0
- package/dist/examples/dungeon-crawler-3d/code.js +1117 -0
- package/dist/examples/f-zero-nova-3d/code.js +865 -0
- package/dist/examples/f-zero-nova-3d/code_old.js +1555 -0
- package/dist/examples/fps-demo-3d/code.js +744 -0
- package/dist/examples/game-of-life-3d/code.js +338 -0
- package/dist/examples/generative-art/code.js +632 -0
- package/dist/examples/hello-3d/code.js +325 -0
- package/dist/examples/hello-skybox/code.js +183 -0
- package/dist/examples/hello-world/code.js +19 -0
- package/dist/examples/input-showcase/code.js +109 -0
- package/dist/examples/instancing-demo/code.js +315 -0
- package/dist/examples/minecraft-demo/code.js +387 -0
- package/dist/examples/model-viewer-3d/code.js +114 -0
- package/dist/examples/mystical-realm-3d/code.js +1203 -0
- package/dist/examples/nature-explorer-3d/code.js +1318 -0
- package/dist/examples/particles-demo/code.js +522 -0
- package/dist/examples/pbr-showcase/code.js +140 -0
- package/dist/examples/physics-demo-3d/code.js +948 -0
- package/dist/examples/screen-demo/code.js +267 -0
- package/dist/examples/shooter-demo-3d/code.js +1286 -0
- package/dist/examples/space-combat-3d/IMPLEMENTATION_SUMMARY.md +109 -0
- package/dist/examples/space-combat-3d/README.md +135 -0
- package/dist/examples/space-combat-3d/code.js +1332 -0
- package/dist/examples/space-harrier-3d/code.js +923 -0
- package/dist/examples/star-fox-nova-3d/code.js +1116 -0
- package/dist/examples/star-fox-nova-3d/code_backup.js +410 -0
- package/dist/examples/star-fox-nova-3d/code_broken.js +1821 -0
- package/dist/examples/storage-quest/code.js +209 -0
- package/dist/examples/strider-demo-3d/IMPROVEMENT_OPTIONS.md +285 -0
- package/dist/examples/strider-demo-3d/cache-test.html +132 -0
- package/dist/examples/strider-demo-3d/code-fixed.js +582 -0
- package/dist/examples/strider-demo-3d/code-old.js +1537 -0
- package/dist/examples/strider-demo-3d/code.js +1462 -0
- package/dist/examples/strider-demo-3d/code.js.bak2 +1169 -0
- package/dist/examples/strider-demo-3d/fix-game.sh +53 -0
- package/dist/examples/super-plumber-64/README.md +128 -0
- package/dist/examples/super-plumber-64/code.js +1185 -0
- package/dist/examples/super-plumber-64/index.html +88 -0
- package/dist/examples/test-2d-overlay/code.js +32 -0
- package/dist/examples/test-font/code.js +51 -0
- package/dist/examples/test-minimal/code.js +21 -0
- package/dist/examples/ui-demo/code.js +306 -0
- package/dist/examples/wing-commander-space/README.md +180 -0
- package/dist/examples/wing-commander-space/code.js +1285 -0
- package/dist/examples/wizardry-3d/CHANGELOG.md +366 -0
- package/dist/examples/wizardry-3d/code.js +3928 -0
- package/dist/index.html +666 -0
- package/dist/os9-shell/assets/index-DIHfrTaW.css +1 -0
- package/dist/os9-shell/assets/index-KchE_ngx.js +483 -0
- package/dist/os9-shell/assets/index-KchE_ngx.js.map +1 -0
- package/dist/os9-shell/index.html +23 -0
- package/dist/os9-shell/nova-icon.svg +12 -0
- package/index.html +6 -1
- package/package.json +37 -32
- package/public/assets/sky/studio/nx.png +0 -0
- package/public/assets/sky/studio/ny.png +0 -0
- package/public/assets/sky/studio/nz.png +0 -0
- package/public/assets/sky/studio/px.png +0 -0
- package/public/assets/sky/studio/py.png +0 -0
- package/public/assets/sky/studio/pz.png +0 -0
- package/public/os9-shell/assets/index-KchE_ngx.js +483 -0
- package/public/os9-shell/assets/index-KchE_ngx.js.map +1 -0
- package/public/os9-shell/index.html +10 -1
- package/runtime/api-2d.js +301 -21
- package/runtime/api-3d/pbr.js +45 -1
- package/runtime/api-3d.js +1 -0
- package/runtime/api-effects.js +90 -3
- package/runtime/api-gameutils.js +476 -0
- package/runtime/api-generative.js +610 -0
- package/runtime/api-skybox.js +54 -0
- package/runtime/api-voxel.js +139 -28
- package/runtime/gpu-threejs.js +13 -9
- package/runtime/ui.js +2 -2
- package/src/main.js +20 -0
- package/public/os9-shell/assets/index-B1Uvacma.js +0 -32825
- package/public/os9-shell/assets/index-B1Uvacma.js.map +0 -1
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
# Wizardry Nova 64 — Changelog
|
|
2
|
+
|
|
3
|
+
First-person grid-based dungeon RPG inspired by _Wizardry: Proving Grounds of the Mad Overlord_, built entirely on the Nova64 3D Fantasy Console API.
|
|
4
|
+
|
|
5
|
+
**Current size:** ~3,489 lines | **Tests:** 45/45 passing
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Batch 19 — `d602a0b`
|
|
10
|
+
|
|
11
|
+
_+45/−10 lines_
|
|
12
|
+
|
|
13
|
+
| API | Integration |
|
|
14
|
+
| ---------------- | -------------------------------------------------------------------- |
|
|
15
|
+
| `novaStore` | Tracks game phase in `switchState()` for cross-system awareness |
|
|
16
|
+
| `enableBloom` | Explicitly re-enables bloom when restoring default visual preset |
|
|
17
|
+
| `btn` | PICO-8 style directional buttons (2=Up, 3=Down) for explore movement |
|
|
18
|
+
| `btnp` | PICO-8 button presses (4=Z, 5=X, 6=C) for combat action selection |
|
|
19
|
+
| `rightStickY` | Gamepad vertical stick for shop target member selection |
|
|
20
|
+
| `pset` | Pixel confetti sparkles on the victory screen celebration |
|
|
21
|
+
| `isInvulnerable` | Shield indicator on party members during invulnerability frames |
|
|
22
|
+
| `setCamera` | 2D camera shake offset applied/reset in draw for full-screen shake |
|
|
23
|
+
| `updateSpawner` | Properly ticks encounter spawner each frame during explore state |
|
|
24
|
+
| `getScene` | Three.js scene object count in inventory debug stats |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Batch 18 — `6dfc3db`
|
|
29
|
+
|
|
30
|
+
_+68/−21 lines_
|
|
31
|
+
|
|
32
|
+
| API | Integration |
|
|
33
|
+
| ---------------------- | ------------------------------------------------------- |
|
|
34
|
+
| `createAdvancedCube` | Boss marker pillar with full PBR (metalness, roughness) |
|
|
35
|
+
| `createAdvancedSphere` | Boss orb with emissive glow on boss tile markers |
|
|
36
|
+
| `createLODMesh` | Torch LOD variants (cone close, cube far) for perf |
|
|
37
|
+
| `setLODPosition` | LOD torch positioning during level build |
|
|
38
|
+
| `removeLODMesh` | LOD cleanup in `clearLevel()` |
|
|
39
|
+
| `updateLODs` | Per-frame LOD distance evaluation in update loop |
|
|
40
|
+
| `gamepadAxis` | Shop item browsing via `leftY` gamepad axis |
|
|
41
|
+
| `animateSkybox` | Manual skybox rotation tick each frame |
|
|
42
|
+
| `colorMode`/`color` | HSB hue-cycling glow ring on spell VFX starburst |
|
|
43
|
+
| `createGameStore` | Tracks kills, steps, chests opened, fountains used |
|
|
44
|
+
| `getRenderer` | Renderer program count in inventory debug stats |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Batch 17 — `4f3687b`
|
|
49
|
+
|
|
50
|
+
_+72/−11 lines_
|
|
51
|
+
|
|
52
|
+
| API | Integration |
|
|
53
|
+
| --------------------------- | -------------------------------------------------------- |
|
|
54
|
+
| `leftStickX`/`leftStickY` | Gamepad left stick for explore movement |
|
|
55
|
+
| `rightStickX` | Gamepad right stick horizontal for turning |
|
|
56
|
+
| `rightStickY` | _(see batch 19 for additional use)_ |
|
|
57
|
+
| `gamepadConnected` | Gamepad indicator icon on explore HUD |
|
|
58
|
+
| `mouseDown` | Combined with `mousePressed` for raycast click condition |
|
|
59
|
+
| `raycastFromCamera` | Click-to-inspect tiles in explore mode |
|
|
60
|
+
| `setCameraLookAt` | View direction vector replacing `setCameraTarget` |
|
|
61
|
+
| `resetMatrix` | Clean matrix state before title screen spirals |
|
|
62
|
+
| `setTextBaseline` | Baseline alignment in shop gold display |
|
|
63
|
+
| `createButton` | Game over screen "Try Again" button |
|
|
64
|
+
| `updateButton`/`drawButton` | Button tick and render in game over state |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Batch 16 — `ec1b49a`
|
|
69
|
+
|
|
70
|
+
_+50/−14 lines_
|
|
71
|
+
|
|
72
|
+
| API | Integration |
|
|
73
|
+
| ------------------------------- | ----------------------------------------------------------- |
|
|
74
|
+
| `pushMatrix`/`popMatrix` | Matrix save/restore for rotated class icon emblems on title |
|
|
75
|
+
| `translate` | Position matrix for title party preview diamonds |
|
|
76
|
+
| `rotate` | Animated rotation on class emblem diamonds |
|
|
77
|
+
| `scale2d` | Scaled 2D emblem rects on title screen |
|
|
78
|
+
| `TWO_PI`/`HALF_PI`/`QUARTER_PI` | Constants replacing `Math.PI` expressions throughout |
|
|
79
|
+
| `enableDithering` | New "dithered" visual preset mode in V-key cycle |
|
|
80
|
+
| `mouseX`/`mouseY` | Mouse position for combat enemy click targeting |
|
|
81
|
+
| `mousePressed` | Mouse press detection for combat target selection |
|
|
82
|
+
| `setTextAlign` | Right-aligned gold display in shop |
|
|
83
|
+
| `drawText` | Alternate text draw for shop gold display |
|
|
84
|
+
| `uiProgressBar` | XP progress bars in inventory panel |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Batch 15 — `7938f6b`
|
|
89
|
+
|
|
90
|
+
_+124/−13 lines_
|
|
91
|
+
|
|
92
|
+
| API | Integration |
|
|
93
|
+
| ---------------------- | ----------------------------------------------------- |
|
|
94
|
+
| `createInstancedMesh` | Crystal decorations scattered on dungeon floors |
|
|
95
|
+
| `setInstanceTransform` | Per-instance position/rotation/scale for crystals |
|
|
96
|
+
| `setInstanceColor` | Per-instance tinting matching floor theme |
|
|
97
|
+
| `finalizeInstances` | Finalize instanced mesh buffer after setup |
|
|
98
|
+
| `removeInstancedMesh` | Crystal cleanup in `clearLevel()` |
|
|
99
|
+
| `flowField` | Boss room animated energy flow visualization |
|
|
100
|
+
| `noiseMap` | Procedural fog overlay on deep floors (floor 3+) |
|
|
101
|
+
| `getParticleStats` | Active/max particle count in debug stats |
|
|
102
|
+
| `frameCount` | Frame counter in debug info + title spiral phase |
|
|
103
|
+
| `centerX`/`centerY` | Centered inventory panel + restart button positioning |
|
|
104
|
+
| `grid` | Grid layout for spell list in combat |
|
|
105
|
+
| `setFont`/`getFont` | Save/restore font around inventory rendering |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Batch 14 — `ebd1473`
|
|
110
|
+
|
|
111
|
+
_+53/−4 lines_
|
|
112
|
+
|
|
113
|
+
| API | Integration |
|
|
114
|
+
| -------------------------- | --------------------------------------------- |
|
|
115
|
+
| `drawFloatingTexts3D` | World-space damage numbers above monsters |
|
|
116
|
+
| `worldToScreen` (helper) | 3D→2D projection for floating texts |
|
|
117
|
+
| `enableLowPolyMode` | Low-poly visual preset in V-key cycle |
|
|
118
|
+
| `createSolidSkybox` | Dark merchant atmosphere in shop |
|
|
119
|
+
| `disableSkyboxAutoAnimate` | Still skybox in shop |
|
|
120
|
+
| `clearSkybox` | Skybox cleanup before rebuilding levels |
|
|
121
|
+
| `isEffectsEnabled` | Report post-FX status in minimal mode message |
|
|
122
|
+
| `noiseSeed` | Consistent noise patterns seeded per floor |
|
|
123
|
+
| `drawSkyGradient` | Title screen gradient background |
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Batch 13 — `0b64738`
|
|
128
|
+
|
|
129
|
+
_+57/−2 lines_
|
|
130
|
+
|
|
131
|
+
| API | Integration |
|
|
132
|
+
| -------------------------- | --------------------------------------------------- |
|
|
133
|
+
| `createShaderMaterial` | Animated water shader on fountain meshes |
|
|
134
|
+
| `updateShaderUniform` | Per-frame `time` uniform update for water animation |
|
|
135
|
+
| `lerpColor` | Smooth color blending in spell VFX arcs |
|
|
136
|
+
| `hsb` | HSB color for quadratic bezier buff arcs |
|
|
137
|
+
| `quadCurve` | Quadratic bezier energy arc for buff/heal spells |
|
|
138
|
+
| `noiseDetail` | Richer noise octaves on deeper floors |
|
|
139
|
+
| `rad2deg` | Yaw display in compass panel |
|
|
140
|
+
| `disableBloom` | Bloom disable in minimal visual preset |
|
|
141
|
+
| `enableFXAA`/`disableFXAA` | FXAA toggle per visual preset mode |
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Batch 12 — `87bbb56`
|
|
146
|
+
|
|
147
|
+
_+43/−10 lines_
|
|
148
|
+
|
|
149
|
+
| API | Integration |
|
|
150
|
+
| ---------------------- | -------------------------------------------------- |
|
|
151
|
+
| `arc` | Compass arc sweep around facing direction |
|
|
152
|
+
| `randRange`/`randInt` | Monster stat scaling + encounter generation |
|
|
153
|
+
| `drawGlowTextCentered` | Centered glow titles (victory screen) |
|
|
154
|
+
| `dist3d` | Monster distance from player in combat info |
|
|
155
|
+
| `n64Palette` | Classic N64 color palette for boss/gold indicators |
|
|
156
|
+
| `createSpaceSkybox` | Dragon's Lair (floor 5) space skybox with nebula |
|
|
157
|
+
| `setSkyboxSpeed` | Per-floor skybox rotation speed |
|
|
158
|
+
| `deg2rad` | Compass arc angle conversion |
|
|
159
|
+
| `emitParticle` | Ambient dust motes near player during exploration |
|
|
160
|
+
| `get3DStats` | Triangle/draw call/mesh count in debug panel |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Batch 11 — `4bfe5c5`
|
|
165
|
+
|
|
166
|
+
_+83/−12 lines_
|
|
167
|
+
|
|
168
|
+
| API | Integration |
|
|
169
|
+
| --------------------------------------------------- | ------------------------------------------------- |
|
|
170
|
+
| `enableN64Mode`/`enablePSXMode`/`disablePresetMode` | Visual preset toggle (V key) |
|
|
171
|
+
| `noise` | Perlin noise fog wisps during explore/combat |
|
|
172
|
+
| `drawGradientRect` | Selected item highlight in shop browser |
|
|
173
|
+
| `bezier` | Curved spell energy arc from caster to impact |
|
|
174
|
+
| `createCapsule` | Ghost/wraith monster shape |
|
|
175
|
+
| `setDirectionalLight` | Per-floor directional light angle for shadows |
|
|
176
|
+
| `drawFlash` | Screen flash overlay for damage/magic/discoveries |
|
|
177
|
+
| `clearFog` | No fog in merchant shop area |
|
|
178
|
+
| `getRotation` | Query spin state for trap rune direction reversal |
|
|
179
|
+
| `circleCollision` | _(exposed, used in conjunction with aabb)_ |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Batch 10 — `6453655`
|
|
184
|
+
|
|
185
|
+
_+103/−10 lines_
|
|
186
|
+
|
|
187
|
+
| API | Integration |
|
|
188
|
+
| ------------------------------------------------------- | ------------------------------------------------- |
|
|
189
|
+
| `circle` | Targeting circle around crosshair + victory burst |
|
|
190
|
+
| `ellipse` | Aura behind title text + fog wisps |
|
|
191
|
+
| `ease` | Smooth transitions (floor wipe, victory slide-in) |
|
|
192
|
+
| `poly` | Victory crown + game over skull polygon icons |
|
|
193
|
+
| `setBloomStrength`/`setBloomRadius`/`setBloomThreshold` | Dynamic bloom per floor + combat |
|
|
194
|
+
| `setCastShadow`/`setReceiveShadow` | Floor shadow reception + ghost shadow disable |
|
|
195
|
+
| `setPointLightPosition` | Torch flame position sway |
|
|
196
|
+
| `updateParticles` | Per-frame particle system tick |
|
|
197
|
+
| `dist` | Distance-based encounter scaling from start |
|
|
198
|
+
| `remap` | Encounter chance remapping by distance |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Batch 9 — `8052eb5`
|
|
203
|
+
|
|
204
|
+
_+86/−47 lines_
|
|
205
|
+
|
|
206
|
+
| API | Integration |
|
|
207
|
+
| -------------------------------------------------------------------------------------- | --------------------------------------------- |
|
|
208
|
+
| `createCooldownSet`/`updateCooldowns`/`cooldownReady`/`useCooldown`/`cooldownProgress` | Input + movement cooldown system |
|
|
209
|
+
| `drawTextShadow` | Combat log + floor messages with drop shadows |
|
|
210
|
+
| `smoothstep` | Title screen fade-in interpolation |
|
|
211
|
+
| `setCastShadow` | Ghost enemies don't cast shadows |
|
|
212
|
+
| `aabb` | Thief trap proximity warning collision check |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Batch 8 — `417f047`
|
|
217
|
+
|
|
218
|
+
_+42/−5 lines_
|
|
219
|
+
|
|
220
|
+
| API | Integration |
|
|
221
|
+
| ---------------------------------- | --------------------------------------------------- |
|
|
222
|
+
| `enableRetroEffects` | Init-time bloom + vignette + FXAA + dithering setup |
|
|
223
|
+
| `setBloomStrength` | Boss encounter bloom intensification |
|
|
224
|
+
| `moveMesh` | Enemy lunge forward/back animation on attack |
|
|
225
|
+
| `setMeshVisible` | Death blink-out animation on killed enemies |
|
|
226
|
+
| `sfx` (custom) | Custom waveform SFX for heal, buff, spell, laser |
|
|
227
|
+
| `enableVignette`/`disableVignette` | Fountain cleansing visual |
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Batch 7 — `301e737`
|
|
232
|
+
|
|
233
|
+
_+76/−17 lines_
|
|
234
|
+
|
|
235
|
+
| API | Integration |
|
|
236
|
+
| ----------------------------------------------------------------------- | --------------------------------------------------------------------------- |
|
|
237
|
+
| `createHitState`/`triggerHit`/`isVisible`/`isFlashing`/`updateHitState` | Party invulnerability frames on enemy hit |
|
|
238
|
+
| `enableChromaticAberration`/`disableChromaticAberration` | Boss hit distortion effect (timed) |
|
|
239
|
+
| `setVolume` | Context-sensitive volume (combat louder, shop quieter) |
|
|
240
|
+
| `sfx` (presets) | Named presets: hit, explosion, death, coin, powerup, confirm, select, error |
|
|
241
|
+
| `drawPulsingText` | Animated title screen prompts |
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Batch 6 — `f4808db`
|
|
246
|
+
|
|
247
|
+
_+67/−15 lines_
|
|
248
|
+
|
|
249
|
+
| API | Integration |
|
|
250
|
+
| ------------------------- | -------------------------------------------------- |
|
|
251
|
+
| `createStateMachine` | Game flow state tracking with elapsed time |
|
|
252
|
+
| `createSpawner` | Encounter spawner that scales enemy count per wave |
|
|
253
|
+
| `enableSkyboxAutoAnimate` | Atmospheric skybox rotation |
|
|
254
|
+
| `enablePixelation` | Deeper floors get retro pixelation effect |
|
|
255
|
+
| `createTimer` | Floor message display timer |
|
|
256
|
+
| `burstParticles` | Particle burst on boss entrance + chest open |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Batch 5 — `118370f`
|
|
261
|
+
|
|
262
|
+
_+87/−14 lines_
|
|
263
|
+
|
|
264
|
+
| API | Integration |
|
|
265
|
+
| --------------- | -------------------------------------------------- |
|
|
266
|
+
| `drawCrosshair` | Pulsing targeting reticle on selected enemy |
|
|
267
|
+
| `drawWave` | Animated energy wave on explore HUD + title screen |
|
|
268
|
+
| `drawTriangle` | Directional compass arrow indicators |
|
|
269
|
+
| `colorMix` | Buff glow indicators on party HP bars |
|
|
270
|
+
| `measureText` | Dynamic gold text alignment in inventory |
|
|
271
|
+
| `hexColor` | Cleaner color definitions in game over + victory |
|
|
272
|
+
| `createPool` | Hit spark particle pool on attack impacts |
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Pre-batch foundations (batches 1–4)
|
|
277
|
+
|
|
278
|
+
Commits `e28df4d` through `dc0cd95` established the core game:
|
|
279
|
+
|
|
280
|
+
- **Dungeon generation** — Room carving, corridor connection, door/chest/fountain/trap/boss placement
|
|
281
|
+
- **Party system** — 4-class RPG party (Fighter, Mage, Priest, Thief) with leveling + equipment
|
|
282
|
+
- **Turn-based combat** — Attack/magic/defend with auto-combat option
|
|
283
|
+
- **3D rendering** — First-person grid movement, monster meshes, torch lights, particle effects
|
|
284
|
+
- **Spell system** — Fireball, Ice Bolt, Heal, Bless, Turn Undead, Revive, Mana Shield
|
|
285
|
+
- **Shop system** — Floor-transition merchant with potions and buffs
|
|
286
|
+
- **Save/load** — localStorage persistence for full game state
|
|
287
|
+
- **Minimap** — Fog-of-war tile minimap with player blink + tile colors
|
|
288
|
+
- **Floating damage** — 2D floating text system for combat feedback
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Nova64 API Coverage Summary
|
|
293
|
+
|
|
294
|
+
The wizardry-3d demo uses **170+ distinct Nova64 API calls** across all runtime modules:
|
|
295
|
+
|
|
296
|
+
### 3D Graphics
|
|
297
|
+
|
|
298
|
+
`createCube`, `createSphere`, `createCone`, `createCylinder`, `createPlane`, `createTorus`, `createCapsule`, `createAdvancedCube`, `createAdvancedSphere`, `setPosition`, `getPosition`, `setScale`, `setRotation`, `getRotation`, `rotateMesh`, `moveMesh`, `setFlatShading`, `setMeshOpacity`, `setMeshVisible`, `setCastShadow`, `setReceiveShadow`, `setPBRProperties`, `destroyMesh`, `getMesh`, `getScene`
|
|
299
|
+
|
|
300
|
+
### Camera
|
|
301
|
+
|
|
302
|
+
`setCameraPosition`, `setCameraTarget`, `setCameraLookAt`, `setCameraFOV`
|
|
303
|
+
|
|
304
|
+
### Lighting
|
|
305
|
+
|
|
306
|
+
`setAmbientLight`, `setLightDirection`, `setLightColor`, `setDirectionalLight`, `createPointLight`, `setPointLightColor`, `setPointLightPosition`, `removeLight`, `setFog`, `clearFog`
|
|
307
|
+
|
|
308
|
+
### Skybox
|
|
309
|
+
|
|
310
|
+
`createGradientSkybox`, `createSpaceSkybox`, `createSolidSkybox`, `clearSkybox`, `setSkyboxSpeed`, `enableSkyboxAutoAnimate`, `disableSkyboxAutoAnimate`, `animateSkybox`
|
|
311
|
+
|
|
312
|
+
### Particles
|
|
313
|
+
|
|
314
|
+
`createParticleSystem`, `setParticleEmitter`, `updateParticles`, `removeParticleSystem`, `burstParticles`, `emitParticle`, `getParticleStats`
|
|
315
|
+
|
|
316
|
+
### Materials & Shaders
|
|
317
|
+
|
|
318
|
+
`createShaderMaterial`, `updateShaderUniform`, `createInstancedMesh`, `setInstanceTransform`, `setInstanceColor`, `finalizeInstances`, `removeInstancedMesh`, `createLODMesh`, `removeLODMesh`, `updateLODs`
|
|
319
|
+
|
|
320
|
+
### Post-Processing
|
|
321
|
+
|
|
322
|
+
`enableRetroEffects`, `enableBloom`, `disableBloom`, `enableVignette`, `disableVignette`, `enableChromaticAberration`, `disableChromaticAberration`, `enablePixelation`, `enableFXAA`, `disableFXAA`, `enableDithering`, `enableN64Mode`, `enablePSXMode`, `disablePresetMode`, `enableLowPolyMode`, `isEffectsEnabled`, `setBloomStrength`, `setBloomRadius`, `setBloomThreshold`, `getRenderer`
|
|
323
|
+
|
|
324
|
+
### 2D Drawing
|
|
325
|
+
|
|
326
|
+
`cls`, `pset`, `line`, `rect`, `rectfill`, `circle`, `ellipse`, `arc`, `bezier`, `quadCurve`, `poly`, `drawTriangle`, `drawDiamond`, `drawRoundedRect`, `drawCheckerboard`, `drawGradient`, `drawGradientRect`, `drawRadialGradient`, `drawSkyGradient`, `drawStarburst`, `drawSpiral`, `drawWave`, `drawNoise`, `drawScanlines`, `drawFlash`, `drawCrosshair`
|
|
327
|
+
|
|
328
|
+
### Text
|
|
329
|
+
|
|
330
|
+
`print`, `printCentered`, `printRight`, `drawText`, `drawGlowText`, `drawGlowTextCentered`, `drawPulsingText`, `drawTextShadow`, `drawTextOutline`, `scrollingText`, `measureText`, `setTextAlign`, `setTextBaseline`, `setFont`, `getFont`
|
|
331
|
+
|
|
332
|
+
### UI
|
|
333
|
+
|
|
334
|
+
`drawPanel`, `drawHealthBar`, `drawProgressBar`, `uiProgressBar`, `createButton`, `updateButton`, `drawButton`
|
|
335
|
+
|
|
336
|
+
### Color
|
|
337
|
+
|
|
338
|
+
`rgba8`, `hexColor`, `hslColor`, `hsb`, `colorLerp`, `colorMix`, `lerpColor`, `n64Palette`, `colorMode`, `color`
|
|
339
|
+
|
|
340
|
+
### Math
|
|
341
|
+
|
|
342
|
+
`lerp`, `clamp`, `pulse`, `smoothstep`, `ease`, `dist`, `dist3d`, `remap`, `randRange`, `randInt`, `deg2rad`, `rad2deg`, `noise`, `noiseDetail`, `noiseSeed`, `noiseMap`, `flowField`, `TWO_PI`, `HALF_PI`, `QUARTER_PI`
|
|
343
|
+
|
|
344
|
+
### 2D Transform
|
|
345
|
+
|
|
346
|
+
`pushMatrix`, `popMatrix`, `translate`, `rotate`, `scale2d`, `resetMatrix`, `setCamera`, `centerX`, `centerY`, `grid`, `frameCount`
|
|
347
|
+
|
|
348
|
+
### Input
|
|
349
|
+
|
|
350
|
+
`key`, `keyp`, `btn`, `btnp`, `mouseX`, `mouseY`, `mouseDown`, `mousePressed`, `leftStickX`, `leftStickY`, `rightStickX`, `rightStickY`, `gamepadAxis`, `gamepadConnected`
|
|
351
|
+
|
|
352
|
+
### Game Utils
|
|
353
|
+
|
|
354
|
+
`createShake`, `triggerShake`, `updateShake`, `getShakeOffset`, `createCooldownSet`, `updateCooldowns`, `cooldownReady`, `useCooldown`, `cooldownProgress`, `createHitState`, `triggerHit`, `isInvulnerable`, `isVisible`, `isFlashing`, `updateHitState`, `createSpawner`, `updateSpawner`, `createPool`, `createFloatingTextSystem`, `drawFloatingTexts`, `drawFloatingTexts3D`, `createStateMachine`, `createTimer`, `createMinimap`, `drawMinimap`
|
|
355
|
+
|
|
356
|
+
### Audio
|
|
357
|
+
|
|
358
|
+
`sfx` (presets + custom waveforms), `setVolume`
|
|
359
|
+
|
|
360
|
+
### Storage & State
|
|
361
|
+
|
|
362
|
+
`saveData`, `loadData`, `deleteData`, `createGameStore`, `novaStore`
|
|
363
|
+
|
|
364
|
+
### Collision
|
|
365
|
+
|
|
366
|
+
`aabb`, `circleCollision`, `raycastFromCamera`
|