Search Unity

Blender versus Unity

Discussion in 'World Building' started by gcast1995, Jan 19, 2020.

  1. gcast1995

    gcast1995

    Joined:
    Oct 27, 2019
    Posts:
    25
    Hi All!

    I'm looking to create a planet with a specific terrain mapping, and then create instances attached to it where you can zoom into the actual terrain, have you're character appear, and walk around.

    I know how to code, I'm learning Unity as we speak, but the one thing I am completely lost on is when to use what tools in this scenario.

    I see so many videos showing how to create terrains and planets in Unity, but then I hear that Blender is the way to go for graphical creation. I'm currently learning both, but I would love to focus in one area to design some of the ideas I have. Any advice on which tool I should use to begin creating a rough draft of the environment I discussed above?

    Thanks!
     
  2. Flavelius

    Flavelius

    Joined:
    Jul 8, 2012
    Posts:
    945
    One interesting thing about programming is that there are, most of the time, few finished recipes for success. There are many ways you could go to maybe land where you want here. But if you just want to create a 'rough draft' use blender. If you want to go further look up procedural generation, i think the devs of kerbal space program have some videos on youtube where they explain their way of tackling a similar problem.
     
  3. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I think that it's probably better to start somewhere simpler...
     
  4. gcast1995

    gcast1995

    Joined:
    Oct 27, 2019
    Posts:
    25
    No really an answer to the question. Doesn't matter how simple you start, it would be helpful to actually know where to start to obtain the ability to do what I'm referring to.
     
  5. Rowlan

    Rowlan

    Joined:
    Aug 4, 2016
    Posts:
    4,299
    It is a perfectly valid answer. Simply because what you want can't be done by any game engine out of the box, unless it is dedicated for that feature (e. g. Star Citizen). You describe an entire spherical planet and want to zoom in and show a single terrain. That contains so many things inbetween that even professionals have their problems with.

    In Unity e. g. Space Graphics Toolkit has a Planetary Landing. However, I doubt that this is what you want.
     
    Last edited: Jan 20, 2020
  6. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Really the first question is how big the planet, earth size planet is another beast than planet under 4km radius (less problem with float precision). A planet with surface of skyrim is 1.59km of radius, roughly the scope of spore's planet. Skyrim use 11186 "cells", of size 57.6m, to map itself, on a flat plane.

    The second question, do you space travel, if you have planet bigger than 4km, that's a bigger problem, you will need floating origin, and that mean creating the system of coordinate with that in mind. Less than that and you can have a free out of jail card.

    Now you have answered that:
    1. start by learning how to make flat terrain, ie know what's lod, streaming strategy, saving states, editing. Practicing editing on the vanilla terrain engine is a good start.
    2. You will have to understand sphere projection map, and choose the most appropriate one, the one that is popular is inflated cube, because each face coordinate is like a flat terrain, which help editing, you will have to learn how to deal with coordinate translation between each face. Another new and untested one, is octahedron mapping, might simply everything a lot by having only two flat square to project, all transition being in the equator.
    3. You will have to redo everything to work on a sphere. So you will have to learn about that too first on a flat terrain. Stuff like path finding, physics, etc ...

    Mapping such a space is hard, there is no real solution, everybody comes with what work for their specific project.
    A. big studio cheat by having a whole team working on details, they do a high level low resolution sculpt, it's broken into cells, which are group into region, and a team of artist take care of each region. THen they bake all teh details in a single texture called virtual texture (see ubisoft far cry)
    B. small studio don't have the man power, so they devise a scheme where they use procedural generation and generate until they find a great one, and modify small part of it.
    C. Big studio making even bigger game are now mixing A + B.

    So my advice for mapping is to try a terrain of the scale of skyrim, in unity, using they terrain system, and see if you can find strategy of your own to map it. I would recommend 32px per meter to start with, which is low for a typical game (they use 512px) but huge for a single person to map.

    If you figure out a strategy to succeed, then you still have a long time to do it on a planet, it's harder, but at least you have the very basics.

    The reason people tells you to start something simpler, it's because that's next gen cutting edge stuff you are asking for, nobody is really doing that the way you want, there is no establish way to do it, you are among the pionner if you pull it off.

    Also, most planet generation in game (the few that exist) all use a procedural basis. Star citizen have semi hand made one, but they are still iterating to figure out how to do it properly.
     
    itskarlos likes this.
  7. Ne0mega

    Ne0mega

    Joined:
    Feb 18, 2018
    Posts:
    755
    I am doing similar right now, (strategy map to tactical map) No need for Blender (i use Blender, but trees and terrain generation is best left for Unity and Unity store assets. Mtree is a very user friendly tree generator)

    If you are looking to start with a pre-made planet, Id say the task is easier, as Unity has tons of assets and tools for pre-made scenes. Procedural generation, however, expect troubles.

    Sebastian Lague has great youtube tutorials both for land generation and planet generation. He is very good, and writes very modular and clean code.

    Serialization and transition between the two will be up to you to figure out.

    You will also need to figure out how you want to simulate time passage on the planet, and understand if you intend to use navigation agents for your movement AI, navmesh baking takes a good deal of time, and currently Unity can not serialize navmeshes at runtime, so you would be best off with Aron Granbergs A* Project.

    good luck.
     
    Last edited: Jan 21, 2020