The goal

Figure out how to create a basic 2D rigid-body physics engine and work with HTML canvas & animation to emulate a popular game. It works! Play it here in your browser.

What works

  • Basic physics engine. Collision detection and restitution (detecting is the easy part, figuring out what to do next, less so.) Not-MarioⓇ can climb walls at the moment which he probably shouldn’t be able to.
  • Rendering physics-enabled entities on a HTML canvas.
  • Basic artwork (not my own.)
  • Parse and rendering a world of objects. Would be nice to be able to describe levels more succinctly, have larger than 1x1 objects, and pass props to objects.
  • Scrolling the viewport based on progress and skipping rendering out-of-viewport models. Not-MarioⓇ is a bit jittery when forcing scrolling (too much Red Bull?)

What needs to be done

  • Make interactable blocks interactable (I think there are coins in this game).
  • Make player character power-up-able.
  • Add enemies (scary) and interctions between multiple characters (including killing the player).
  • Revoke the Not-MarioⓇ immortality dd the possiblility for the player character to die.
  • Finish textures and graphics, including more sprites for player character (he should be able to look left, to start).
  • Add a win state (yay).
  • Add a way of playing on mobile?
Read full post →
© 2020, These pixels lovingly crafted in small batches from sunny Cork.Happily built with Tailwind and Gatsby.