Search Unity

Question Creating the feeling of a spherical world

Discussion in 'World Building' started by RichardJanssen, Mar 7, 2022.

  1. RichardJanssen

    RichardJanssen

    Joined:
    Apr 21, 2017
    Posts:
    14
    I'm not 100% certain this is the right forum to ask, so apologies if this is the wrong place!

    For a hobby project I'm trying to create an RTS game on a spherical world akin to an older game: Populous: The Beginning. I've seen a few solutions to making a spherical world online, but so far nothing concise that's been workable for me due to lack of experience with shaders or the solutions missing other parts that are necessary. Some things I want to incorporate into the game are: terraform-able land in-game, a world that appears spherical like a planet and textures that change depending on the height of the land. For the level design I also need the land to be sculptable instead of generated.

    As mentioned before I've tried a few solutions previously, but never up to something workable sadly. I've played around with a shader that curves the world, but had issues that I couldn't get the world to wrap around itself to form a full sphere.

    For reference, this is how the world looks like in Populous: The Beginning.

    Populous.jpg

    I'm not entirely sure how Bullfrog managed to make the curved world, but it feels like they've used a 2D square tile map that they "morph" into a torus so it wraps around itself both along X and Z (or Y).

    Currently I am quite stumped on how to recreate this effect visually to give the player the feeling of playing on a real planet. Would anyone have any idea for what could be a good course of action for research and prototyping?
     
  2. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    38,745
    That is very slickly done.

    If I had to guess, the world is still a 2D plane, probably a heightmap with additional "what does the terrain look like here" data.

    At render time, depending on where you are, they use that heightmap to produce geometry and curve it to give that "standing atop a sphere" effect.

    This lets you avoid any polar "pinches" and the map stays like a nice 2D map.

    This game uses a very similar engine:

    https://gameswebfree.com/play-online/v2000-playstation/