-
-
Notifications
You must be signed in to change notification settings - Fork 142
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
Valence 0.2.0 Roadmap #288
Labels
documentation
Improvements or additions to documentation
enhancement
New feature or request
high priority
Should be prioritized
Milestone
Comments
rj00a
added
documentation
Improvements or additions to documentation
enhancement
New feature or request
high priority
Should be prioritized
labels
Mar 12, 2023
This was referenced Mar 17, 2023
Merged
rj00a
added a commit
that referenced
this issue
Jun 15, 2023
## Description Solidify the design of `valence_anvil` so that most of the boilerplate in the anvil example is eliminated. `AnvilLevel` is now a component of `Instance` and automatically loads and unloads chunks as clients move around. Events are used to communicate when chunks are loaded and unloaded. Also changes the system message API and introduces the `SendMessage` trait. Checks off a box in #288 ### Known Issues - Still no support for saving or entities. - The handling of chunk `min_y` is wrong. I plan to fix this in an upcoming redesign of instances and chunks. - Uses one OS thread per anvil level. This could be improved with a dedicated shared thread pool to parallelize the loading process. However, it seems decently fast as it is. - Old benchmark is commented out. - Could use some tests.
This comment was marked as duplicate.
This comment was marked as duplicate.
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
documentation
Improvements or additions to documentation
enhancement
New feature or request
high priority
Should be prioritized
Roadmap
Here are some things that should happen before Valence 0.2.0 is released. Not all of these are extracted into issues yet, but they could be with some added detail.
Things to do, roughly in this order:
McEntity
into smaller components, closing Dividing Clients and Entities into smaller components #199.valence
andvalence_protocol
#308valence
crate a thin wrapper overvalence_anvil
,valence_command
,valence_core
,valence_network
, etc. This would avoid circular dependency problems and improve compile performance.Move block entities and chunks into the ECSConsider caching chunk handles in view of the client to reduce hashmap lookups. Sort chunk updates nearest to furthest to reduce lag in the client.World
.valence_anvil
. Events should be used to indicate loaded/unloaded/missing chunks. Chunk providers will listen for missing chunks. MakeAnvilLevel
a component forInstance
.Think about making valence more data-driven. Make blocks and block types entities. This may fix the poor compile times ofPostponed at least until improvements tovalence_block
.bevy_ecs
are implemented. Possibly never going to happen.TagRegistry
resource invalence_registry
. initialize with default minecraft tags. SendSynchronizeTagsS2c
packet on join. #349Consider adding#[derive(Reflect)]
to things invalence_protocol
and possibly elsewhere. Put it behind a feature flag.bevy_reflect
only supports'static
types.Move every example into its own package.valence_spatial_index
#366valence_inventory
v2.Some other things to look into, but are not strictly necessary for 0.2 (unordered):
Consider allowing for multiple player lists instead of a single global list.valence_nbt
.aes
andcfb8
dependencies #42Instance
used to control time, weather, world border, etc. #210Consider if valence should have first-class support for placement.stresser
is missing some basic functionality.The text was updated successfully, but these errors were encountered: