Creating levels for use in Unity

Kind of a braod question here...

What's the best way to go about creating a level for Unity? Making an outdoor level is easy enough (just use a terrain), but for indoor levels with various rooms, hallways, staircases, etc (think something like Unreal Tournament), how would one go about creating a level in Unity like that? I know Unity doesn't have a built-in level editor like a lot of other engines, so I'm just wondering what some of the best methods for building levels are.

(By the way, please don't read this in as a discussion question. It's not. I'm sure there is a right way and a wrong way, and I'm looking for straight answers, not opinions)

(I'm posting this as an answer because it got a lot longer than it should have.)

SpikeX: I think you mean that Unity doesn't provide the built-in BSP-style brush-based level editing commonly used in level editors for games that support mod-ing.

I've been on a manhunt to collect as much information as possible about the process of creating levels for use in Unity and I think what I'm seeing so far is that for Unity in particular the process is more about level-design than it is about assembly. Ostensibly you could utilize any application to build your level out and convert it to something that Unity can use.

Level design as a topic is something I'm not finding a lot of information for when it pertains to Unity but I have found a few decent looking books that touch on concepts. Unfortunately most of these books rely on BSP-based editors and it seems difficult to replicate that process inside of Unity.

I've asked around in IRC and I'm hoping to get some help in finding a few points to help shape my search for more information.

The basic workflow so far appears to be:

  1. Sketch the level
  2. Block the level out using whiteboxing or basic shapes (in unity)
  3. Playtest your environment.
  4. Build level in 3d program (e.g. blender) and export pieces to unity compatible format.
  5. Assemble level and add props in unity.

I'd really love to get a discussion going about this topic as I think it's becoming more critical as Unity reaches mass-market saturation. Maybe a Google Wave would be more appropriate a forum for that?

Either create the entire thing in a 3D modeling app, or else create the various individual parts in a 3D modeling app and assemble the parts in Unity.

I come from Hammer too.
You can not use it to make unity levels.
At most you can create a level, export it to obj or xsi (been a long time so I forget)
Load the exported file into softimage xsi, delete all backfaces and merge the small objects into groups.
Then unwrap/texture the models and export to fbx into Unity.

But this is not an effective workflow and I only used it to convert the one level I had when I switched from source to Unity3D.

On the asset store there are now some tools that enable you to create objects inside unity and allow you to build a level inside unity. I have no idea if this is recommended or not performance wise tough :slight_smile:

Being able to use hammer for level creation would be gold worth.

I’ve only used Blender for creation of characters and other things that would be used in a video game. Blender can be used for level creation, but in my opinion there are other free tools out there that are must better at level design. Try this approach:

  • Use Google SketchUp (free) to build the level and use their export to COLLADA feature (it is only export available in the free version)
  • Use Blender to import the COLLADA file so you can texture map and add detail. I would save that back into the native .blend, since it works well with Unity
  • Finally, drop into Unity3D project view as a working model

Hope this solution is useful to others.

This is how i would do it, im making an open world game, so i create the terrain / map in blender, then use another layer or file for roads, another file for buildings and so on, once im doon with the big things the map must contain, i export them into Unity3D, an create the level part-by-part in there with the models iv’e made.

So yeah, create in blender, put together in unity