Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Creation of islands, looking for some opinions on which method:

Discussion in 'General Discussion' started by Whitby93, Nov 22, 2016.

  1. Whitby93

    Whitby93

    Joined:
    Aug 8, 2015
    Posts:
    2
    As the title suggests, I need to build some islands for use in a caribbean themed game. Some of these islands are the size of entire countries (cuba, for example) and I'm having problems wrapping my head around the most appropriate pipeline to commit to.

    To communicate this properly, here's a picture:


    Imagine the distance between the far coast and the camera is a fairly representative expectation of how far the terrain would likely be from an ingame camera under normal circumstances. It's close enough that trees need to be represented, but far enough that using 3D trees causes crippling lag. Also far enough that 2D billboards on terrain get culled, removing that as an option. (Please correct me if I'm wrong on that last bit.)

    In terms of scale, it would be nice to represent the overall shape of each island with reasonable accuracy, although scale the overall size of each down so each appears as a representative, yet smaller island in the proportions of the men and ships in the game world.

    Gaia was my first go-to, but it seems that using Gaia is impossible. Gaia appears to be optimised for generating worlds to walk around in, first person. Trying to use Gaia's methods to create land like this results in ugly islands which cause huge amounts of lag before the addition of foliage. This seems to generally be the case for approaching it with terrain tools. Lag. Walls of lag.

    The second approach would be to attack it with 3D modelling software. This will handle the lag issues with LoD'ing and therefore nullify them, but sorely lacks options for foliage and texturing. Furthermore, this leaves questions open about how to detail the world with cliffs and trees in general without using a normal terrain pipeline.

    Has anybody tackled something like this before? Could anybody offer some insight into how to approach this that'll make me feel stupid yet grateful?
     
  2. Deleted User

    Deleted User

    Guest

    Well it really depends on which approach is ideal for you? How much you're willing to spend? Finally how much time you have on your hands? Also what does the project involve? Will it be an actual game?

    In terms of pure accuracy, you'd be best off using mesh based terrain (not Unity's system) but this will require the most amount of effort. So firstly you'll want a terrain generation tool capable of quickly exporting multi-tile segments. So World Machine would be the go to for that.. It can also export splat's (colour maps) per tile, NM's etc. so you're mainly covered.

    Unless you're extremely bored or insane, you'd never manually sculpt an entire 40 - 80KM island. I usually recommend avoiding early optimisation, but before anything else you need to find out how many tiles you need to get effective performance within a vector boundary zone to load / unload terrain tiles.

    Of course dependant on your min spec's of course, the biggest terrain I've ever made is 38KM2 which was a collection of 109 X 1007 tiles (this was in UE). Which means nothing if you're not using the engine's terrain, but as far as I remember the terrain itself never took up more than 3 Million poly's which our base GTX 470 didn't have any issue with.

    You can of course go smaller, but of course you will offset the amount of resolution you have. Then you'll need a tool to mesh paint / procedurally place all the foliage across your island. Many things to consider here (slope's, pinning foliage to the floor etc.) but it's an interesting venture.

    For tree's, I'd just use SpeedTree there's LOD's / Billboards etc. built in and it's not dependant on Unity's terrain system.. You'll have to script transitional zones, probably based on distance from camera but it should be relatively simple to do. Every decent terrain is overlayed by meshes (like rock meshes etc.) so if it isn't perfect you can hide things with custom art.

    Forget Navmesh or most of Unity's system's if you're going down this route, either use A* or make your own navigation / AI solution / dynamic occlusion.

    Pros: Most Accuracy, looks great, easier shader integration, performance.
    Cons: Locked workflow (no adjustments in engine), a lot of work.

    I'll be straight with you, it's possible to get Unity's native terrain system working on a massive scale.. But it ain't worth the effort and you will hit performance problems from many places where there's nothing you can do about it (that I'm aware of).. You would be better off building your own terrain system.!

    If you were to bring it down to something more reasonable like 4KM2 or 8KM at a push then it's not too bad.. You should essentially wrap the terrain in meshes anyway, it's nice not to have to like a high detail res system but unless you want it to look like jellow that's the way to go.
     
  3. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    There's going to be a lot of trouble, though. unity mesh have limitation on number of primitives (65k), plus someone will need to babysit lods and seams between those. The fairly sane way would be probably height-map based rough mesh, with lots of foliage and ground object to hide the nature of the terrain.

    Fully modeled terrain seems to be fairly uncommon these days, I mean even skyrim is mostly heightmap based, and the last fully modeled terrain I saw was in Gothic series.
     
  4. Deleted User

    Deleted User

    Guest

    It has a limitation on the number vertices (65K) in which it'll split the mesh.. Although it doesn't have an impact really (I have many meshes over 65K), as for lod'ing you can automate it all via script.. Seams aren't an issue, World Machine uses blending on tiles and it's extremely trivial to stitch them together via a script. I said you'd be mad to manually sculpt the tiles, you can export terrain tiles as meshes from WM..

    None of these are a major issue, what will be the major issue is everything else (navmesh, occlusion, streaming etc.) which as I said is a lot of work and personally I don't believe it's worth the effort with other options availabe.

    I know this may be a re-occuring theme, but I tend to respond to a lot of large game threads. The completely sane thing to do is not use Unity until they sort out the terrain system, UE is perfectly capable of dealing with massive games out the box (when they get the FR system properly sorted)..
     
  5. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    Hey, I'm not arguing. Just pointing out (perceived) issues.

    Also, I just remembered a game with fully modeled terrain. Actually several of them. Dark souls series.
    DarkSouls.png
     
  6. Deleted User

    Deleted User

    Guest

    Oh it's all good, just explaining.. I've tried it several different ways now and it's not an easy thing to do especially when you start filling the world full of stuff, budget's get ridiculously tight.

    That actually looks pretty cool.
     
  7. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    It is first Dark Souls. As far as I can tell, terrain is polygonally modeled in this game. One of the cool things about it is that the scale is massive, the world is seamless and you can look at some distant spot and then actually travel there by walking (through hordes of enemies)... and then look back at where you were before.

    The screen is from the time I played the game. They show you the area via a flyby... and then you get to crawl/walk/and fight through every element of the map you saw and climb those big stairs you saw in distance.

    Either way, sorry for derailing. Half-destroyed castles overrun with undead are slightly different kind of problem compared to carribean islands.
     
    Deleted User likes this.
  8. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,182
    I would use that free ancient Terrain Toolkit 1.02 and use it to generate gently rolling hills and then use the tool to erode it and splatmap it and so on. It's still an easy & effective tool to use if you make a bit of effort to find a nice tiling beach sand and sand texture and various low poly vegetation models.

    I know that some of the Caribbean Islands have mountains but I think you'd be better off ignoring that or at least only allow 1 -3 mountains.

    You might look in Bing or Google Satellite Maps at the islands from Barbados to Cuba to Jamaica to Trinidad & Tobago and decide which grouping of islands you want to use in your game.

    You can then use the free terrain2obj export tool to export your islands and ocean floor (overlooked but as important to have done good as the islands) as an obj at 1/16 resolution and then re-import and apply the textures you created earlier to it.

    Using Unity Terrain will clobber performance whether you use Gaia or Terrain Toolkit or even had a flat plane just about...and forget about those wind zones