What a strange webpage, it almost feels like the author deliberately avoids describing the game in any way and talks literally about anything else.
In case anyone else is curious, here is the description (one click away from the main page):
> LOVE is a cooperative online first person adventiure game. You play as a scavanger on a small planet who together with other scvangers will build a settlement by placeing a Monolith some where in the world. This Monolith makes the ground lose so that you can shape the environment around it in to what ever you want. Build walls, catacoms, houses and shape your settlement any way you want.
Wonderful write-up of attempting to tackle this problem. I believe there must be a significant number of people who have played both Minecraft and Super Mario Galaxy, and had something like this sequence of thoughts - although you have followed it all the way to an actual demonstration, and written up your thoughts along the way so clearly.
The vertical distortion is the biggest issue IMO, there are a few reasonably satisfying ways to approach the horizontal tiling of each “shell”. For example, you can make your world a donut instead of a sphere, and now you have a perfect grid at each level! Of course, this introduces a level of distortion between the interior and exterior, so you also twist the donut once, and now you’ve both solved your distortion problem and invented the stellarator fusion device.
I suppose the same shell trick could also work on hyperbolic maps too, right? I've wondered what Minecraft would look like on a hyperbolic plane, if you were to squeeze an exponential amount of terrain within a linear radius. It's a strange thing to say, but I think it's more "practical" than Euclidean geometry in the sense that every is very close to everything, but there's still plenty of room.
You should definitely have a look at space engineers. They have a similar spherical problem with their voxels and I don’t think they went half as far as you did when implementing “orbital bodies”.
As someone who is rather keen on space, gfx, and the algorithms that render them. Kudos. The problems were known to me, which is why I didn’t attempt it, however - the distortion correction, the chunking, I’m thinking if you just limit how far down you can dig (half way to the “core”) it will be fine. You won’t run into those tiny squished blocks that make up the core.
It’s also important to call out the quad-sphere. This is what makes it doable. Naive devs may just map lat long to sin cos spherical coordinates and call it a day, not realizing that their poles are jacked up. The cartography problem. I’m really glad to see that called out as people don’t realize WGS84 sucks for mapping a sphere.
This is SO fun! You have the foundation for a cool voxel-y interplanetary game if that's your jam. I had fun "getting into orbit" and watching my velocity increase at periapsis and decrease at apoapsis, then descending and landing with the rocket power button ([Space]). I would love a Minecraft + Kerbal Space Program fusion game and most of the pieces for it are already here. :D
> I would love a Minecraft + Kerbal Space Program fusion game
You might like Space Engineers.
Unfortunately Space Engineers is full of jank and random things will explode through no fault of your own. Actually, I guess that's on par with Kerbal Space Program-y. Also, Space Engineers will sometimes crash to desktop.
There's a Space Engineers 2 in development and I have good hopes for it.
Flying up too high becomes quite interesting. Eventually you hit the point where you're missing the ground and end up on an upward spiral... essentially falling up. You have to go backward to find a place where you can start falling down back toward the ground.
Neat. Reminds me of Planet Smith, a work in progress game with a similar concept (spherical Minecraft), except it uses hexes instead of cubes. Hexes reduce distortion, but add their own complexity. There’s a small number of pentagons on the surface, too, to make the tiling work.
how about making the player smaller as you get closer to the core? then each layer would be the same. there would be no seams where layers double/halve.
This has plagued me for decades and I’ve been exposed to hundreds of projections. Probably thousands if you consider each UTM or MGRS zone to be its own projection.
I wonder if it is possible to avoid "digging deep" problem by first building a cube out of voxels and then applying the type of distortion that turns the cube into quad sphere not just to the surface of the cube but also to the insides of the cube.
I don't know how to explain it better, perhaps I should try to write some code, lol
My favorite Spherical Minecraft-like gamedev project is PlanetSmith [0], which uses hexagonal voxels (and a few pentagonal voxels). The devlogs are very well produced and I highly recommend checking them out.
Wow, Minecraft X Outer Wilds… I should really finish Outer Wilds. It’s incredible and super fun to explore the solar system but I find many of the challenges quite difficult to navigate with the zero g thrusters.
Huh, I submitted this article last week when it came out and it didn’t get any attention at all.
This demo is super cool! I’ve been dreaming about a game with an engine like this for the last 5 years. Super happy to see people experimenting with it!
66 comments
[ 5.2 ms ] story [ 72.0 ms ] threadThe bad way: - Generate a cube - Subdivide each face using linear interpolation (lerp) - Normalize each vector to put it on a unit sphere
The good way: - Generate a cube - Subdivide using spherical linear interpolation (slerp) - done!
The cubesphere has lots of interesting geometric properties, particularly in texture mapping.
It had a spherical 'block' world as well.
[0]: https://www.quelsolaar.com/love/
In case anyone else is curious, here is the description (one click away from the main page):
> LOVE is a cooperative online first person adventiure game. You play as a scavanger on a small planet who together with other scvangers will build a settlement by placeing a Monolith some where in the world. This Monolith makes the ground lose so that you can shape the environment around it in to what ever you want. Build walls, catacoms, houses and shape your settlement any way you want.
The vertical distortion is the biggest issue IMO, there are a few reasonably satisfying ways to approach the horizontal tiling of each “shell”. For example, you can make your world a donut instead of a sphere, and now you have a perfect grid at each level! Of course, this introduces a level of distortion between the interior and exterior, so you also twist the donut once, and now you’ve both solved your distortion problem and invented the stellarator fusion device.
As someone who is rather keen on space, gfx, and the algorithms that render them. Kudos. The problems were known to me, which is why I didn’t attempt it, however - the distortion correction, the chunking, I’m thinking if you just limit how far down you can dig (half way to the “core”) it will be fine. You won’t run into those tiny squished blocks that make up the core.
It’s also important to call out the quad-sphere. This is what makes it doable. Naive devs may just map lat long to sin cos spherical coordinates and call it a day, not realizing that their poles are jacked up. The cartography problem. I’m really glad to see that called out as people don’t realize WGS84 sucks for mapping a sphere.
You might like Space Engineers.
Unfortunately Space Engineers is full of jank and random things will explode through no fault of your own. Actually, I guess that's on par with Kerbal Space Program-y. Also, Space Engineers will sometimes crash to desktop.
There's a Space Engineers 2 in development and I have good hopes for it.
This has plagued me for decades and I’ve been exposed to hundreds of projections. Probably thousands if you consider each UTM or MGRS zone to be its own projection.
God do I wish the Earth was flat.
I don't know how to explain it better, perhaps I should try to write some code, lol
- https://youtu.be/ztAg643gJBA?si=8vDgg0rFCOj9I7no
This person has another, more technical video where they talk about the math behind it btw
At one point I flew far enough into space that I passed the star objects and everything got dark. That was a bit disquieting.
Very cool little game!
[0] https://youtube.com/@incandescentgames
> Not currently, but I may make it public later. The current state of the code isn’t the cleanest, so my sense of pride prevents me from sharing it.
Felt that.
This demo is super cool! I’ve been dreaming about a game with an engine like this for the last 5 years. Super happy to see people experimenting with it!