Version 2 (modified by 4 years ago) ( diff ) | ,
---|
Storage File Format
I see little reason to deviate too much from Notch's region file format. Each region file would persist a logical unit of world of a fixed size (e.g. 64 x 64 x 64 blocks). Each file contains several channels:
- Blocks
- Lighting
- Graphs
- Entities
- Items
Blocks
The block channel consists of an array of ordinals, each identifies the block-type as well as its meta-configuration (rotation / orientation). Since we're working with SDFs here instead of blocky Minecraftey worlds (i.e. smooth voxel terrain instead of blocky) I think this will mean we have to store a general value that indicates the density of the block at this location, which might make meta-configuration unnecessary. Also, my current thinking is that anything more complicated than this for describing terrain blocks in this case can be stored and described in a separate channel because 90% of the terrain is going to be very simple.
Lighting
The lighting channel indicates light levels and light colour
Graphs
Graphs are arbitrary networks of information that can span arbitrary distances that typically relate to specific types of blocks, one such example of a graph is the steam engine assembly in Mad Martian Mod.
Entities
All movable objects and creatures other than players
Items
Items that are left lying around on the ground, unlike Minecraft, Revenant will treat these differently and not lump them into the same category as entities.