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

World diffs #110

Open
VorTechnix opened this issue May 10, 2024 · 1 comment
Open

World diffs #110

VorTechnix opened this issue May 10, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@VorTechnix
Copy link
Collaborator

Problem

We need to be able to track changes in worlds for undo functions and replay support.

Solution

Implement a github-like diff system to store block and other state changes sequentially.

Additional context

We should make sure to approach this implementation minimalistically to ensure that the generated files won't bloat too badly.

@VorTechnix VorTechnix added the enhancement New feature or request label May 10, 2024
@sbrl
Copy link
Owner

sbrl commented May 10, 2024

We're already halfway there to this. We have a changeset file implementation that is halfway there that stores the old and the new version of a given region of the world with run-length encoding. This is the more efficient way to store complex changesets to a given world region. Storing in a sparse format isn't something that's implemented yet, but it can be done later and added on.

Once this is done and we can store a changeset on command, we'll need this commit-like system to wrap the changeset files w/metadata and allow the //undo / //redo commands to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants