Skip to content

v1.0

Latest
Compare
Choose a tag to compare
@42jaylonw 42jaylonw released this 06 Dec 05:27
· 2 commits to master since this release

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