Skip to content

Roadmap to v1.0 #4

@gliderkite

Description

@gliderkite

Most of the features I originally had in mind for this library are close to be finalized. There are still some aspects of the library that could be improved implementation and design wise:

  • Use of unsafe: the library makes use of unsafe code, which is well documented, but there are no tests for it. I made the conscious decisions that no tests will be added since the library was made to be fun to write and experiment with, and never be shipped to production.
  • Parallel engine: parallel computation can be opted-in only at compile time by enabling a specific cargo feature, this is ideal to improve ease of use, but not ideal for some scenarios. I simply couldn't find a design that would allow me to have 2 different Environment engines (parallel and sequential) that was DRY enough for this type of project.
  • The Entity trait includes everything I've ever needed for the kind of simulations I implemented and had in mind; nevertheless there could be new needs (such as new callbacks, or new/different associated types for graphic context, transformations or errors). Until that changes the current trait can be considered final.

The main missing points before publishing a 1.0 stable version are:

  • Finalize the parallel engine feature design Introduce parallel scheduler component #5.
  • Gather more feedback.
  • Is it possible to get rid of the Box from the public interface? Release 0.9 #6
  • How does semeion look like when used without a graphics Context and what features are still missing for it to be useful when graphics is not necessary?
  • How does it compare to other entities systems (ECS)? What are the main similarities and differences?
  • Enhance documentation: when should you use semeion? How do you use the library (example without graphic interface)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions