Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap to v1.0 #4

Open
2 of 6 tasks
gliderkite opened this issue Sep 21, 2020 · 0 comments
Open
2 of 6 tasks

Roadmap to v1.0 #4

gliderkite opened this issue Sep 21, 2020 · 0 comments

Comments

@gliderkite
Copy link
Owner

gliderkite commented Sep 21, 2020

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)?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant