Search Unity

  1. We are migrating the Unity Forums to Unity Discussions by the end of July. Read our announcement for more information and let us know if you have any questions.
    Dismiss Notice
  2. Dismiss Notice

Unity 5 - capabilities for highly procedural games?

Discussion in 'Getting Started' started by axefrog, Mar 4, 2015.

  1. axefrog

    axefrog

    Joined:
    Aug 25, 2014
    Posts:
    2
    I haven't used Unity before, and a question I haven't quite settled for myself, which I've been thinking about for a future game idea I have, is; how well suited is Unity to highly procedural games? I'm talking about the kinds of games where almost everything is heavily procedurally-generated, both from scratch and from modified baseline assets, with unused procedural assets being frequently unloaded as well to make way for new content as it is generated. Assume that all of these things are to be generated by an external server application that is not running the client engine, and the raw data streamed to clients on demand, to be constructed, cached, destroyed, modified, etc. by the game client. Examples of the sorts of things I'm talking about:

    * Terrain meshes, generated on a server and streamed to the client in real time, possibly containing a combination of voxels and polygon meshes (including dynamic level of detail and so forth)
    * Materials and textures, generated from scratch, and/or applied to a baseline with many parameters affecting output
    * Creature models and animations (again, heavily modified procedurally from base assets)
    * Sound effects to a degree
    * Weather, lighting, etc.

    Let's not worry about the feasibility of my idea, I'm just curious whether Unity would fight me if I attempted to do the above, or if the API design and engine capabilities are flexible enough for this kind of thing.
     
  2. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,768
    I don't know of any potential problems with the examples you've listed. Unity is very capable of assembling resources at runtime. There are a number of procedural-based assets in the store to prove it (voxel systems, procedural dungeon generators, etc).

    If you want to use voxels for landscape you'll either have to roll a custom solution or use one from the asset store as Unity's is simply a heightmap-based polygon terrain. It doesn't support voxels. When it comes to textures you may want to investigate Allegorithmic's Substance Designer as it is a procedural texture system.
     
  3. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Once you're getting into procedural generation, you can pretty much generate any kind of thing from scripts, but because you're going procedural, you're probably going to mostly be bypassing Unity's editing tools to create those objects... e.g. you'll be greating meshes, maybe textures, etc at runtime from code. So it involves usually a lot more programming and less use of the GUI. You can do all of the things that you asked about.
     
  4. axefrog

    axefrog

    Joined:
    Aug 25, 2014
    Posts:
    2
    Ok, thanks, I'll have to have a deeper look.
     
  5. knr_

    knr_

    Joined:
    Nov 17, 2012
    Posts:
    258
    I don't see anything there that Unity can't handle. If you are going to stream all of that I would suggest using web sockets.