As @erlend_sh mentioned on Discord, I have been working on a prototype for the Evolution Island project, and it’s now on a good point to make this post!
I mostly worked on it with the mindset of getting something done as a starting point for a team project, in which becomes much easier to raise a task list that people can pick and do, and to see the shortcomings of this iteration to improve on it.
Current status & core systems briefing
“Wow, look at these charismatic faces, can I take one of them in a date?” - Maybe you, impressed by the beautiful magenta lines and the brutal charisma of a carnivorous entity.
This prototype has some very basic steering-like behaviour, it has a Wander behavior, a system to enforce bounds EnforceBoundsSystem and a weakly opinionated structure for the project.
By weakly opinionated I just mean it has a structure but the opinion is restricted to “What felt good at the moment to have a rather modular structure”, so it isn’t anything well planned, actually I think the structure of the project can benefit a lot more from a discussion as a team, the current structure is useful exactly to have a common reference point to tear apart and improve.
The wander behavior is implemented as a WanderSystem, which uses mainly the components Movement, Wander, WanderBehaviorTag.
Movement is intuitive, but why both WanderBehaviorTag and Wander components? That’s where I felt most unsure how to continue, while a Wander component is enough, if removed the entity loses it’s Wander data, so this raised the question, what data will be contained in Wander? Should it contain persistent wander attributes like turn_rate, wander_speed or should these be found in a Attributes component?
These are a couple of questions I had while developing this and work as good starting points for a discussion.
MVP milestone
We are currently working towards v.0.1.0, the “MVP release”, made according to the MVP spec.
The implementation work is being tracked in the v0.1.0 milestone on our GitHub repo:
Quality-of-life tasks not yet specced and tracked:
- [ ] Accelerate simulation
- [-] Debug stats UI (delta time, fps, simulation speed)
- [ ] Loading sim and creature parameters from file
If anyone wants more information or justification for an item, just ping us here or in the existing GitHub issue.