Skip to main content

Command Palette

Search for a command to run...

Type 2 Harness - Road Blocks

Published
3 min read
Type 2 Harness - Road Blocks

Yesterday, we tried to move from mockup to implementation. We hit some road blocks:

  1. World Loader: We don't have a canonical world loader. What we have is Machi's world schema/loader (preview) but it is in Machi's codebase. Also for our Type 2, we don't need foliage simulation. So, I've been striping down its schema and making it simpler. So, the loader I use for Type 2 Harness is different from Machi's world loader.

  2. Entity Loader: We don't have a canonical entity loader. The https://spritedx.com/preview has a entity loader but it is is not really available as a package. That is, we don't have a entity schema that is fixed and unchanging. It almost feels like we need to first nail down on the schema before we use it.

Before we rush into "solution"-ing, let's discuss how we ended up here. Solving these issues are what we do but I think we have a larger problem. We have tendency to overlook the time it would take to achieve something.

In Type 2 Harness, we are not only building the entity simulation. It is more like entity simulation is last piece of puzzle that will light things up. We need to build the simulation environment first. Largely we have these pieces.

  • World Definition and World Loader

  • Entity Definition and Entity Loader

  • World Renderer

  • Entity Renderer

  • Body Definition

  • Body Simulator

  • Physics Simulation with Collision Handling

  • Placing non-pixel art character into pixel based environment. Fighting visual mismatch.

There are so many axis we are fighting all at once. We need to be able to fix some of the axis so we remain focused. Let's make some high level directions:

  • Focus: If we have to put number to our "focus", we are at 2 out of 10. Goal it to yank it up to at least 5 out of 10.

  • Clarity: Isolated codebase. Let's use isolated codebase for this work. Discussed with Pixel and we will name the project "anima."

  • Portable: We will not depend on other projects like sprite-dx and machi. We will make things self contained. We don't have to export the schema though.

  • Productification: We will productify this repo and make any user be able to experience what this has to offer. Even if we stop at any point in the middle, it should provide certain value to audience however miniscule.

  • Branding: We will have this website serve as a branding PR for Type 2 concept (naming it "Anima"). This also means we need clean finish.

With this in mind, we will set some constraints:

This essentially means I get to create Celeste runtime clone. Let's build this engine.

-- Sprited Dev 🐛