Simulated Evolution, Everstone, 12/05/2023
Key user stories and acceptance criteria: List of key user stories with their acceptance criteria that can serve as a guide for an acceptance test.
User Story 1: As a student, I want to create an organism that can react to its environment
- Fulfills Definition of Done.
- Creatures react and evolve to fit their environment
User Story 2: As a student, I want to see an organism live in an environment
- Fulfills Definition of Done.
- Creatures move and grow within the simulation environment.
User story 4: As a user, I want to see the effects of organism reproduction
- Fulfills Definition of Done.
- Consumer creatures will group together with other creatures of their species type to reproduce and create new consumers that inherit the parent genomes.
User Story 5: As a student, I want organisms to evolve
- Fulfills Definition of Done.
- Creatures evolve via genomes to become better adapted to survive in their environments.
User Story 7: As a user, I want to see information about organisms and the environment
- Fulfills Definition of Done.
- User can hover their cursor over a position on the simulation grid and click on it to view data stored at the queried position.
User Story 11: As a user, I want to make my own simulation
- Fulfills Definition of Done.
- User can use a pre-simulation toolbox to create a customized simulation with custom-placed environment elements.
Known problems: List major bugs, omissions, design shortcuts, etc.
- BUG: While running the simulator, pressing the “new simulation” button creates a new simulator with the same number of creatures but excludes any walls, emitters, etc.
- BUG: Consumers try to emit to a position that is out of bounds, which causes the LayerSystem to throw an error at the undefined behavior.
- Design Shortcut: Code interdependencies
- Especially within the SimSpace and LayerSystem objects and all simulation elements that occupy the space
- PERFORMANCE BUG: Having more than 100 consumers in a single simulation creates undefined behavior
- All simulation elements are handled sequentially rather than concurrently to improve performance
- BUG: While training the evolution simulation, the survivors are fixed in certain number.
- Placing 1 consumer will result in more than one after training
- Placing 0 consumers will result in more than one after training
Product Backlog: list the high priority user stories and bug fixes that can serve as a guide for a follow-on project
- Sprint 4 - User Story 3 - remote server support
- Preset Simulations
- Moving environmental elements (e.g. emitters) to make creatures adapt to changes in environment
- performance improvements
- System Architecture: refactoring of SimSpace and LayerSystem to have all of LayerSystem’s functionality be handled internally by SimSpace being called by outside classes