Search Unity

How do you create your levels?

Discussion in 'Formats & External Tools' started by Jens_T, Mar 8, 2007.

  1. Jens_T

    Jens_T

    Joined:
    Jan 18, 2007
    Posts:
    4
    Hello everybody,

    I have been lurking here for about two months, trying to take in all the information that people generously pass around and familiarize myself with Unity (which is an astounding program, by the way).

    Following recommendations in this forum, I tried out, and then settled for Cheetah 3D as my modelling app (really the only modeller that has a decent Mac-like interface) and now I'm ready to start ...

    ... but I find myself wondering what might be the best way to actually create a level:

    • - Should I create level objects (buildings, interiors, fixtures, etc.) individually and assemble those inside Unity to a proper level

      - or should I try and model the entire level in Cheetah and drop that into Unity?

    I would really like to know how other game designers tackle this. For instance, the FPS-Tutorial level was obviously modelled outside Unity and imported as a single mesh. But for games like "Palestine" I don't think this approach would work. What I've seen in screenshots so far suggests (at least to me) that they have assembled their levels inside Unity.

    So, opinions anyone? Any kind of advice is apreciated.
     
  2. DaveyJJ

    DaveyJJ

    Joined:
    Mar 24, 2005
    Posts:
    1,558
    Personally, I'd create individual objects and import these separately into Unity, rather than all the onjects in one big file. This method, to my mind anyway, seems to better "fit" with Unity's workflow model ... it allows small assets to be updated as needed without taxing file sizes etc. Thatr's how I'd do it anyway. For smaller games, say 1 marbles and a single maze I might do it the other, if was assured tha there'd be no scope creep and additional needs.
     
  3. Jens_T

    Jens_T

    Joined:
    Jan 18, 2007
    Posts:
    4
    Thanks for your reply.

    May I ask you how you created this room?



    Was it modelled externally or was it composed out of Unity-primitives?
     
  4. AaronC

    AaronC

    Joined:
    Mar 6, 2006
    Posts:
    3,552
    The sweet spot apparently is between 1500-4000 polygons per object, so design little groups in cheetah like that, that are physically close together and set up a single texture(by moving the UV's around) per object. So you might join 3 buildings and a lamppost for example.

    Thats an opinion, not a standard we all follow by the way. Newer computers let you cram bigger objects with more textures but we are all on the same journey toward faster framerates. Sometimes the key is in the asset production, sometimes its about the ways the scripts execute...

    Looking forward to seeing your work
    AC
     
  5. DaveyJJ

    DaveyJJ

    Joined:
    Mar 24, 2005
    Posts:
    1,558
    Modelled in Maya (or Studio Max, I'd have to ask Ron) as one scene to test how we'd like to do lighting, scale etc.

    In the end, each major item (building, crates, forklift, additional surprise items) will eventually be put into their own separate 3D file and then imported into Unity. [That is, if we ever get around the finishing the darn thing.] :roll:
     
  6. drJones

    drJones

    Joined:
    Oct 19, 2005
    Posts:
    1,351
    i'd say it depends on the content as well. if you have alot of hard (non-nature) objects that need to be in very specific places you may find putting it all together in your modeling app easier to deal with (i'm fanatical about exact placement with everything ; )

    though its not the most efficient workflow, what i've come up with:

    1. model entire scene in blender test in unity.
    2. when its finalized, i split the scene up into separate objects (keeping a backup of the complete scene for eventual lightmaps etc. when collada supports them).

    2a. for any non-moving or non-interactive object i leave it right where its placed reset the object center to the origin (that way if i have to edit, reinsert into unity scene etc. i just drag it into view set the transform to 0,0,0 = exact placement).

    2b. for movable or interactive objects (like physics objects that need correctly placed centers) i make a "dummy file" based on the overall scene with a dummy at the center of all movable object centers. then for my separate movable objects i use the transform copier script to place them in unity delete the dummies.

    now that i've typed it all out it sounds kinda strange, but for my needs at least it works great. the drawback to this method is that if you have major changes later on its a PITA to edit the complete scene then re-export your various objects to single files. my arenas are smallish i plan ahead alot so its not really a problem, but if you like to tinker contunuously this probably is not the best method ; )
     
  7. Foxxis

    Foxxis

    Joined:
    Jun 27, 2006
    Posts:
    1,108
    I'd just like to add that depending on how you'll light your level, you might want to mix up the approach a bit.

    Let's say you want to use global illumination or ambient occlusion in your 3D app to add realism. Then you'd need to assemble the level in the 3D app to get the lighting right, then bake and export each asset individually to use them in Unity properly (different scripts, physiscs materials etc.).

    You could also move stuff around in unity (obviously), but if you've gone the texture baking route, then any major changes in Unity will make things look odd.

    Can I pray for in-engine ambient occlusion in the next version of Unity? ;)
     
  8. Alpha-Loup

    Alpha-Loup

    Joined:
    Jun 23, 2006
    Posts:
    797
    Hopefuly we can pray for in-engine light baking in the 2.0... that would be so great!