I may have gotten distracted…

And spent way too much time working on base code. Now I have ~6 hours to go, and I have…physics working. Not even player control! xD On the bright side my architecture is pretty sweet. At the top level you have two concepts:

View | End-Point
The View is what the computer sees and feels. It’s your display, your audio and your inputs.
The End-Point is the logical steps the program must update. AI, Players, Physics and Collisions.

Beneath these, you have Services
Services are the “business logic” of the system, they manage all discrete calculations and the movement of data. So the Physics End-Point will use the Entity Service to get all Entities with the Physical component, and then pass those Entities into the Physics Service in order to update them to the next frame of physics. Same things apply to AI and Players, the End-Points tie the Services together. You get the idea (I hope).

And then you have the bottom, Data
Data is where all information is stored and accessed through Repositories. So you have (for example) an Entity repository, a Sprite repository and an Audio repository. These are accessed through services.

Nothing knows about anything above it in the hierarchy, and it’s turned out to be flexible enough that I can almost dream of getting it finished in the next 6 hours. Unless something else distracts me.

Probably should of used a premade Engine…but where’s the fun in that?