Skip to content

History

Revisions

  • 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 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 obiot committed Jun 5, 2026
    3777883
  • Working in 3D: 2.5D section — correct overpromised parallax-isolation claim

    @obiot obiot committed May 31, 2026
    a0ad380
  • Working in 3D: add 2.5D / Paper Mario pattern (Camera3d + Octree + SAT)

    @obiot 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 obiot committed May 31, 2026
    990413a
  • docs: 19.6 → 19.7 — video.createCanvas deprecated in favor of Renderer.createCanvas

    @obiot obiot committed May 26, 2026
    d463fca
  • fix(wiki): renumber duplicate Quirks ## 10. → 11/12/13, fix isGrounded cross-link

    @obiot 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 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 obiot committed May 15, 2026
    9f2c911
  • docs(quirks): add 2x onCollision cadence + symmetric dyn-dyn push-out cancellation

    @obiot obiot committed May 15, 2026
    d3b98d4
  • docs(home): link Migrating-to-the-Physics-Adapter-API and BuiltinAdapter-Quirks under Physics & Collision

    @obiot obiot committed May 15, 2026
    6a4164f
  • docs(physics): reconcile response-shape and migration pages with Path 2 + supersedes rule

    @obiot obiot committed May 15, 2026
    c86ac6c
  • docs(physics): add legacy-to-adapter migration page; link as prerequisite from switching guide

    @obiot obiot committed May 15, 2026
    e6ee8be
  • docs(physics): add BuiltinAdapter-Quirks page; cross-link from switching guide

    @obiot obiot committed May 15, 2026
    1b491bf
  • docs(physics): add Recipes section with 6 portable + matter-only patterns

    @obiot obiot committed May 15, 2026
    3ede034
  • docs(physics): lead with per-renderable collision dispatch; clarify response shape differs by adapter

    @obiot obiot committed May 15, 2026
    d5c4bdc
  • docs(upgrade-guide): document Light2d anchorPoint change in 19.3

    @obiot obiot committed May 14, 2026
    824701e
  • Add side-by-side porting example to Switching Physics Adapters

    @obiot obiot committed May 14, 2026
    8e75278
  • Updated Shader Effects (markdown)

    @obiot obiot committed May 14, 2026
    cb09c09
  • Updated Shader Effects (markdown)

    @obiot obiot committed May 14, 2026
    09ce777
  • Add Switching Physics Adapters page

    @obiot obiot committed May 14, 2026
    1fd1cc1
  • Add Shader Effects page

    @obiot obiot committed May 13, 2026
    d38e613
  • 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 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 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 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 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 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 obiot committed May 5, 2026
    6a6af17
  • Add Tween and depthTest breaking changes to 19.0.0 upgrade guide

    @obiot 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 obiot committed Apr 9, 2026
    dc60821