Recently I made two attempts to create toroidal world in Minecraft, but failed both times. As a result I have a list of problems, that must be solved for it. Does anybody know proper way to solve them?
The conception itself:
A different worldtype with some customizable parameters (for example - radius), that is actually a torus, but looks and acts mostly like a spherical planet. Maybe with some interesting generation features. Limited world is a good place for server economy actions and for servers itself, as many of them have limited worlds. Also, it is interesting to survive in such place. Planets can have multi/single biomes.
This was released in game "Eco" and minecraft-like concept "Spheretest" (that is actually Minetest fork).
The problems are:
1. Move entities to another edge of the world.
What I tried:
Different types of teleportations - when Entity enters into a chunk, moves above/below specific coordinate. Result is not very impressive - chunk teleportation goes wrong if there is no chunk, other teleportation doesn't update new chunk for entity, and it causes many bugs or game shutdown. It also causes game to load/unload player view, that is ugly in visual. Entities with passengers not teleporting properly, if passenger is player.
2. Make game mechanics work threw world edge
What I tried:
In old way - copy chunk arrays on chunkload, in new way - replace chunk provider to custom and replace chunk methods. Both works, but first is not very optimal and leaves chunk "traces" when save them (lines of chunks outside of world edge), second one not properly work for client side (if client provider is replaced all no-solid blocks will be invisible until chunk update, else some chunks are invisible and light not working threw world edge).
3. Make world visible threw edge (blocks, entities, ets.)
What I tried:
World render can be fixed with 2-d problem, but entity rendering is not so easy. I tried add some rendering to forge entity render event, but failed.
4. Make world generation wrapped for adjusted radius
Solved:
Solved with wrapping perlin noise.
5. Make world looks round
Partially solved:
I know, how to do it with optifine and GLSL, but don't know how do it with Minecraft built-in shaders.
Some videos about voxel spherical planets (Spheretest):
Recently I made two attempts to create toroidal world in Minecraft, but failed both times. As a result I have a list of problems, that must be solved for it. Does anybody know proper way to solve them?
The conception itself:
A different worldtype with some customizable parameters (for example - radius), that is actually a torus, but looks and acts mostly like a spherical planet. Maybe with some interesting generation features. Limited world is a good place for server economy actions and for servers itself, as many of them have limited worlds. Also, it is interesting to survive in such place. Planets can have multi/single biomes.
This was released in game "Eco" and minecraft-like concept "Spheretest" (that is actually Minetest fork).
The problems are:
1. Move entities to another edge of the world.
What I tried:
Different types of teleportations - when Entity enters into a chunk, moves above/below specific coordinate. Result is not very impressive - chunk teleportation goes wrong if there is no chunk, other teleportation doesn't update new chunk for entity, and it causes many bugs or game shutdown. It also causes game to load/unload player view, that is ugly in visual. Entities with passengers not teleporting properly, if passenger is player.
2. Make game mechanics work threw world edge
What I tried:
In old way - copy chunk arrays on chunkload, in new way - replace chunk provider to custom and replace chunk methods. Both works, but first is not very optimal and leaves chunk "traces" when save them (lines of chunks outside of world edge), second one not properly work for client side (if client provider is replaced all no-solid blocks will be invisible until chunk update, else some chunks are invisible and light not working threw world edge).
3. Make world visible threw edge (blocks, entities, ets.)
What I tried:
World render can be fixed with 2-d problem, but entity rendering is not so easy. I tried add some rendering to forge entity render event, but failed.
4. Make world generation wrapped for adjusted radius
Solved:
Solved with wrapping perlin noise.
5. Make world looks round
Partially solved:
I know, how to do it with optifine and GLSL, but don't know how do it with Minecraft built-in shaders.
Some videos about voxel spherical planets (Spheretest):
A while back I came across this project, and the devs made a good number of blog posts on the making. https://www.seedofandromeda.com/blogs
It's a Minecraft like game, only there are multiple planets that are round.
I watched this video on the development years back so I may not be remembering the contents correctly, but it might be of help.
Hopefully, this can get you going in the right direction.
CodeShaper, thank you for video, but world wrapping works in some different directions