Type 2 Harness - Road Blocks

Yesterday, we tried to move from mockup to implementation. We hit some road blocks:
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.
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:
Digital Being is contained within 32x32 pixel grid. Resting state should fit inside 16x16 (similar to Celeste).
Digital Being is hand drawn (example: https://zegley.itch.io/2d-platformermetroidvania-asset-pack).
Map is 64x32 tile map (see if we have any good one we can use: link 1, link 2).
Physics mimics Celeste (https://maddythorson.medium.com/celeste-and-towerfall-physics-d24bd2ae0fc5).
Aesthetics should mimic Celeste. Why? It fixes me in something real. It is common language. When I say Celeste-style, we already know what is going on.
This essentially means I get to create Celeste runtime clone. Let's build this engine.
-- Sprited Dev 🐛



