Search Unity

Best Practice for Low Poly Map of a University

Discussion in 'Game Design' started by AllConsuming, Feb 21, 2018.

  1. AllConsuming

    AllConsuming

    Joined:
    Feb 17, 2017
    Posts:
    6
    I'm recreating a university as part of a school project. The style I'm aiming for is low poly with mostly flat terrain, with dips or rises for things like sidewalks. As you can guess, schools have a lot of different little changes in terrain, like grass, sidewalks, and roads, with small variations in height between them. I also plan to build it in direct 1:1 scale to the actual layout of the school. I will be including large buildings that are separate structures, as well various props, but I'm mainly looking for a way to make the large base of the map.

    My question is this: What's the best approach to building a map for this?

    I was thinking about it and doing some research, and I'm struggling to see some options. I've thought about three paths:

    1. Large single model: Make a single very large model, complete with all necessary sidewalks and other variations in height. But I don't think this is the correct solution, as a model that huge would eat up a ton of memory I would think. And, how would I even texture something like that?

    2. Tiles: This was my starting approach, with tile-shaped meshes, but when it came to things like the many curved sidewalks and weird little terrains around campus, I realized I'd need to make a lot of tiles, and it would be hard to have very nice tile layout when I have buildings of various size and non-uniform props. Maybe it could work if I planned it well or thought a little more on it.

    3. Terrain Object: This would be a good solution for a large optimized single mesh but since I want a lot of angular, low poly style to it, and I need slight, sharp changes in elevation for things like roads/sidewalks, I don't think this would work well. I've no experience in the terrain feature, but I've done some reading and it doesn't seem like what I want.

    Any other suggestions or comments on what routes I mentioned are welcome. Thanks in advance for any help you guys provide.

    ***NOTE***: I do plan on porting this to web/mobile so it needs to run well.
     
  2. RavenOfCode

    RavenOfCode

    Joined:
    Apr 5, 2015
    Posts:
    869
    Personally I'd do option 1. I've found that large static low poly meshes really don't hog Unity's resources very much. It's also the simplest approach to use, building tiles would take longer and using Unity's terrain system is a terrible idea.
     
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,702
    Use GPU instancing and/or static batching. Instancing is perfect for low-poly buildings that re-use the same base meshes and materials. You'll probably want to use a ground mesh or terrain that you can set buildings on.
     
    SirTwistedStorm likes this.
  4. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    FYI there are a couple of tools on the asset store that take a terrain and generate a low poly version of it. Automatically creating multiple meshes with LOD. Probably not the best workflow for high detail though.

    This little asset might help you:
    https://assetstore.unity.com/packages/vfx/shaders/directx-11/directx-11-low-poly-shader-69971

    Gives meshes a low poly look.

    Optimizing for lots of meshes there are a number of tools for that and it's not a hard problem really.

    I work more on the technical side of stuff, but I would think that the hard part is deciding the workflow and shading, which route there is going to be the easiest to work with.
     
  5. AllConsuming

    AllConsuming

    Joined:
    Feb 17, 2017
    Posts:
    6
    The buildings I've got figured out pretty much. Since the campus is pretty limited with maybe a dozen unique buildings with varying architecture, I can't really use your methods for that. My main concern is the ground mesh or terrain to set it on, and that's my question. How should I go about the ground mesh or terrain? RavenOfCode above mentioned using one large mesh, which I don't think would introduce a lot of overhead since it's low poly.
     
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,702
    I agree. That's probably the best approach.
     
  7. verybinary

    verybinary

    Joined:
    Sep 23, 2015
    Posts:
    373
    I vote for "large single model".
    In your modeling software, I'd make various single objects. one for terrain, one for sidewalks, one for roads, one for each building, one for a flagpole, etc. that way, I could work on each part with everything else invisible. In the end, I'd combine them all into one mesh, then break them apart for loading in Unity.