Player-driven building tracking issue
Here follows some information about the status of player-driven building, as well as an inexhaustive list of tasks that need doing to get there. Feel free to add to the discussion or modify this tracking issue as the situation changes!
General Information
Player building should allow ordinary (unprivileged) players to construct their own bases/houses/sites/etc. They should integrate relatively well into the rest of Veloren's mechanics.
There are a few potential routes to go down:
- Full-world persistence
-
❌ Extremely difficult to migrate between subsequent commits or even just versions -
❌ Limits the ability for the world to change and grow around player modifications -
🎱 Conclusion: probably unviable
-
- Plot-based persistence
- Players would be able to buy 'plots' within sites, probably on the order of several chunks in size
- Within these plots, players could add or remove blocks at will
- If worldgen changes and the sites containing plots cease to exist or move around, plots associated with them stop existing and the cost of the plot is refunded until the player buys a new plot again (the old plot reappears at the new location)
-
✅ Only requires persisting data within each plot -
✅ Changes within the plot area can be limited to a subset of blocks/sprites that we feel comfortable retaining forward compatibility for -
✅ Changes to worldgen do not entirely break plots -
❌ May conflict with existing mechanics that encourage players to move around the world a lot -
🎱 Conclusion: Probably viable, but requires significant changes to worldgen code to properly implement
- Airship-based persistence
- Players build and modify airship-like structures that are independent of the world terrain. Player bases therefore do not significantly interact with worldgen at all
-
✅ No need to interact with worldgen at all -
✅ Only requires persisting player-created airships/voxel entities -
❌ Difficult to accomodate NPC interactions, integrates less well into the world -
🎱 Conclusion: Easiest to implement (most of the pieces, such as server-modifiable voxel entities, already exist), but perhaps furthest from a desirable outcome for players
Current Status
Currently, no player-facing building is implemented. However, admin-facing building does exist in a limited capacity. See the book for more in-depth information.
Tasks
-
Come up with a persistence model -
What format do we store voxels in? -
What blocks/sprites do we store and how do we migrate data?
-
-
User interface and gameplay -
How do we allow players to modify structures in the world without awkward interactions? -
How do we balance this: how fast should players be able to construct things, where should they be able to construct things? -
What systems and mechanics do we want to enable through this feature?
-
Edited by Hudson