docs(3D): fix Paper Mario example — Stage.onResetEvent receives the Application instance
The 2.5D Paper Mario mini-example used `const app = me.game.app` inside
`onResetEvent` — referencing the legacy global, and inconsistent with the
outer-scope `const app = new Application(...)` it would have shadowed at
runtime. Stage.onResetEvent(app, ...) actually receives the Application
instance as its first parameter, which is the modern path.
obiot
committed
Jun 9, 2026
e03c2f3
docs: 19.7 3D query surface — raycast3d/querySphere capabilities + AABB3d/Frustum
Switching-Physics-Adapters:
- Add `raycasts3d` capability row (builtin ✓, matter ✗, planck ✗) to
the capability flags table.
- Add `querySphere(...)` and `raycast3d(from, to)` rows to the
optional/capability-gated methods table — both builtin-only since
19.7, with the call-as `world.adapter.X?.(...) ?? fallback` shape.
Working-in-3D:
- Add a "Supporting primitives" subsection documenting `AABB3d`
(Octree's bounding primitive) and `Frustum` (Camera3d's view
volume, exposed as `camera.frustum`) — the two 3D types that
back the queries but weren't previously listed.
obiot
committed
Jun 5, 2026
3777883
Working in 3D: 2.5D section — correct overpromised parallax-isolation claim
obiot
committed
May 31, 2026
a0ad380
Working in 3D: add 2.5D / Paper Mario pattern (Camera3d + Octree + SAT)
obiot
committed
May 31, 2026
524b2a9
docs: add Working in 3D page for the 19.7 Camera3d surface
Covers the dev-facing 3D feature set: Camera3d opt-in (cameraClass +
Stage cameras: …), Y-down + +Z forward conventions, perspective
camera fields (fov / aspect / pitch / yaw / setClipPlanes), Mesh +
multi-material OBJ rendering, the depth-sort scene graph, the 3D
spatial-query surface on the physics adapter (Sphere primitive,
adapter.querySphere with both call shapes, adapter.raycast3d,
Camera3d.queryVisible bulk frustum cull), the math.damp /
Vector*.damp frame-rate-independent smoothing helpers, plus a
pointer to the AfterBurner showcase as the worked reference.
Stays user-facing — opt-in code, API shapes, common gotchas
(Sprite.isKinematic default skipping the broadphase). Implementation
details (broadphase swap mechanics, Octree internals) are left to
the API docs / source.
Lead on Home.md updated from "2D games" → "2D and 3D games" and a
"Working in 3D" link section added between Rendering and Physics.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
obiot
committed
May 31, 2026
990413a
docs: 19.6 → 19.7 — video.createCanvas deprecated in favor of Renderer.createCanvas
obiot
committed
May 26, 2026
d463fca
fix(wiki): renumber duplicate Quirks ## 10. → 11/12/13, fix isGrounded cross-link
obiot
committed
May 21, 2026
97fc36c
19.5 sweep: planck-adapter coverage, portable raycast/queryAABB, new BuiltinAdapter divergence quirks
Bring all three physics-adapter wiki pages in line with what actually
shipped in 19.5.
Migrating-to-the-Physics-Adapter-API.md
- Mention `@melonjs/planck-adapter` alongside matter (it's shipping in
19.5, not "future Box2D")
Switching-Physics-Adapters.md
- "Picking an adapter" example imports PlanckAdapter too; mention the
`physic: "planck"` shortcut.
- Rewrite the "Optional / capability-gated APIs" section: `raycast` and
`queryAABB` are portable across every adapter (previously described
as matter-only — wrong). `queryAABB` is mandatory on the interface;
`raycast` is capability-gated via `capabilities.raycasts` (all three
official adapters return `true`).
- Add an explicit capability matrix (builtin / matter / planck columns)
for `constraints`, `continuousCollisionDetection`, `sleepingBodies`,
`raycasts`, `velocityLimit`, `isGrounded`.
- Behavioural-differences table grows a planck column.
- Joints/Constraints recipe gets a planck sibling (DistanceJoint as
spring, RevoluteJoint as hinge — reached via `adapter.world.createJoint`).
- Sleeping-bodies recipe gets a planck sibling (planck sleeps per-body
by default; toggle via `world.setAllowSleeping` / `body.setAwake`).
- New porting-pitfall: `setVelocity` units are px/step on builtin+matter
but px/s on planck — surfaced when writing the parity tests, real
porting trap.
BuiltinAdapter-Quirks.md
- Add planck-adapter to the "won't carry across" list.
- §6 (inline vs deferred dispatch): planck behaves like matter — events
fire post-step via begin-contact / end-contact listeners.
- Three new quirks (#10, #11, #12) surfaced when writing the parity tests:
- #10 `isGrounded` is flag-based (`!falling && !jumping`), not
contact-based — diverges from matter / planck for resting bodies
under gravity. Already documented in the bug-hunt spec but not on
the wiki.
- #11 `BuiltinAdapter.raycast` / `queryAABB` require a prior
`world.update` to populate the broadphase; matter / planck index
on `addBody` and work immediately. Planned for 19.6 lazy-populate
parity.
- #12 `BuiltinAdapter.step` gates integration on `inViewport ||
alwaysUpdate`; matter / planck don't. Test-environment quirk, but
useful to document.
No code changes — pure documentation alignment with 19.5 reality.
obiot
committed
May 21, 2026
b81354f
docs(quirks): rewrite #10 — dyn-dyn collision is position-based, not Newtonian
Earlier description claimed "net displacement is zero" between two
overlapping dynamic bodies. Empirical testing shows that's wrong:
position-based push-out IS mass-proportional (light pushed more than
heavy), and Body.respondToCollision honors bounce. What doesn't work
is velocity transfer — moving body's vel decays without transferring
momentum to the stationary one. Quirk now describes the actual
asymmetric / non-Newtonian end-state with a frame-by-frame example,
calls out which sub-behaviors do/don't work, and points at matter for
true elastic collisions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
obiot
committed
May 15, 2026
9f2c911
docs(quirks): add 2x onCollision cadence + symmetric dyn-dyn push-out cancellation
obiot
committed
May 15, 2026
d3b98d4
docs(home): link Migrating-to-the-Physics-Adapter-API and BuiltinAdapter-Quirks under Physics & Collision
obiot
committed
May 15, 2026
6a4164f
docs(physics): reconcile response-shape and migration pages with Path 2 + supersedes rule
obiot
committed
May 15, 2026
c86ac6c
docs(physics): add legacy-to-adapter migration page; link as prerequisite from switching guide
obiot
committed
May 15, 2026
e6ee8be
docs(physics): add BuiltinAdapter-Quirks page; cross-link from switching guide
obiot
committed
May 15, 2026
1b491bf
docs(physics): add Recipes section with 6 portable + matter-only patterns
obiot
committed
May 15, 2026
3ede034
docs(physics): lead with per-renderable collision dispatch; clarify response shape differs by adapter
obiot
committed
May 15, 2026
d5c4bdc
docs(upgrade-guide): document Light2d anchorPoint change in 19.3
obiot
committed
May 14, 2026
824701e
Add side-by-side porting example to Switching Physics Adapters
obiot
committed
May 14, 2026
8e75278
Updated Shader Effects (markdown)
obiot
committed
May 14, 2026
cb09c09
Updated Shader Effects (markdown)
obiot
committed
May 14, 2026
09ce777
Add Switching Physics Adapters page
obiot
committed
May 14, 2026
1fd1cc1
Add Cordova wiki page under Platform Deployment
Mirrors the Capacitor page structure but shorter. Prominent banner
notes that Cordova is in low-maintenance mode and points new
projects at Capacitor instead. FAQ updated to link the internal
Cordova page (was external link to cordova.apache.org) and to note
the maintenance status.
obiot
committed
May 11, 2026
a6726ee
FAQ: point at internal wiki pages for Capacitor / FB Instant / WeChat
- Capacitor: external capacitorjs.com link → internal Capacitor wiki
page (now the canonical guide, including the @melonjs/capacitor-plugin
wiring). Also reordered ahead of Cordova since it's now the
documented path.
- Facebook Instant Games / WeChat Mini Games: update to the new short
filenames after the wiki rename.
obiot
committed
May 11, 2026
708ffd4
Rename Platform Deployment pages to short titles + refresh headings
- Facebook-Instant-Games.md (renamed from the long How-to-deploy-... path)
- WeChat-Mini-Games.md (renamed from the long How-to-deploy-... path)
- H1 of each page now matches the file title.
- Home.md links updated to the new filenames.
obiot
committed
May 11, 2026
b4043b3
Move Capacitor link from Third-Party Tools to Platform Deployment
Capacitor wraps a built melonJS game as a native iOS/Android app —
it's a deployment target, not a content-authoring tool. Lists it
alongside the existing Facebook Instant Games and WeChat Mini Games
entries.
obiot
committed
May 11, 2026
e690994
Add Capacitor wiki page under Third-Party Tools
Documents the manual setup for wrapping a melonJS game as a native
iOS / Android app via Capacitor, plus the @melonjs/capacitor-plugin
ergonomics layer for lifecycle and hardware back-button handling.
obiot
committed
May 10, 2026
b502b44
Add 'Using SpriteIlluminator for Per-pixel Lighting' page
Walks through the full SpriteIlluminator + TexturePacker + melonJS
workflow for per-pixel normal-map lighting:
- Generating normal maps with SpriteIlluminator (Bevel/Emboss)
- Packing color + normal sheets together with TexturePacker
("Pack with same layout")
- Loading both into a paired `TextureAtlas` in melonJS
- Driving the lighting with a `Light2d` (`illuminationOnly` for
invisible logical sources, `lightHeight` for grazing/head-on look,
ambient floor color, etc.)
- Sidecar pattern for non-atlas sprites
- Live example pointer
Linked from Home.md under Third-Party Tools, between TexturePacker
and PhysicsEditor (the SpriteIlluminator workflow naturally follows
TexturePacker's atlas-with-same-layout output).
obiot
committed
May 5, 2026
6a6af17
Add Tween and depthTest breaking changes to 19.0.0 upgrade guide
obiot
committed
Apr 14, 2026
64a7e80
Add 19.0.0 breaking changes to upgrade guide
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
obiot
committed
Apr 9, 2026
dc60821