30 lines
2 KiB
Markdown
30 lines
2 KiB
Markdown
# world generation
|
|
1. world state "object" which will keep track of chunks to generate, to remove, to keep, those that are currently being generated in a thread pool.
|
|
2. parallelised creeping chunk generation in a radius.
|
|
3. removing of chunks when they go outside the radius.
|
|
4. interlinked chunks; each chunk should have a ptr to the 26 neighbor chunks or null.
|
|
5. world state linking and unlinking chunks automatically.
|
|
6. ambient occlusion spanning between chunks.
|
|
7. chunk loading, unloading, saving/loading from files; world state keeping track of chunks loaded and unloaded as well
|
|
8. generation of (LOD) simplified chunk models
|
|
9. generation of simplified chunks
|
|
10. separate LOD radiuses for different LOD levels
|
|
11. partial chunk loading and unloading.
|
|
12. block change handling: recalculate only the relevant quads
|
|
|
|
# misc graphics
|
|
1. implement possibilities for 6 different surfaces for a tile, e.g a branch tile should have 4 bark surfaces and 2 inner surfaces
|
|
2. implement random rotation and reflection of surfaces
|
|
3. implement fixed rotation and reflection of surfaces
|
|
4. implement custom models, e.g a tall grass tile is a model with two planes crossing in the middle (see: minecraft). implement optional greedy meshing for such models; e.g tall grass textures could fuse together diagonally and grass could have 2 layers who could mesh as well.
|
|
5. implement metallicity (e.g block of iron) (?, discuss)
|
|
6. implement random shininess (e.g rough diamond block, would sparkle as you move across, see purple rocks in PEAK's Alpine biome)
|
|
7. implement emissive textures (e.g a computer screen, see minecraft's enderman/spider eyes and sculk blocks)
|
|
8. implement bloom effect (see gregtech's glowing EBF's)
|
|
|
|
# directional sun/moonlight
|
|
1. discuss implementation
|
|
|
|
# tooling
|
|
1. benchmarking step in build.zig: benchmark chunk meshing, generation, and similar tasks which will need to be performed at scale
|
|
2. texturepack compiler: something that would compile minecraft-style texturepacks into a format that could be more suited for in game usage.
|