Finalize the engine core
Implementation plan: libFramework.la API
Runtime Requirements
- Need a way to represent the game's objects and their state in a portable way.
- Need to be able to define assets as simple aggregations of data
- Need to be able to save the game state and save to disk, and reload it.
- Need a representation of the game's "World" in terms of pixels, and maybe tiles
- Need a method of representing the player's 'camera', and only rendering updates of things within that bounds.
- Objects will need to be able to detect collision with each other, at least at the bounding box level.
- More accurate collision detection can be added when important objects are definitely overlapping.
Technical Requirements
- Object components need to be serializable.
- "Entities" (like the player, enemies, scenery) are made up of components, which are serializable.
- Entity objects need to be: dynamically created, serializable from templates, and should be able to restore their state after being deserialized)
- Components and Collision Detectors need to be able to look up each other's positions and speeds, quickly.
Take-Away
There might need to be two different APIs:
- A slow, serializaing API
- A very fast repository of object references so that objects can read each others' values at runtime.
96% Completed