- Home /
FPS Level Design Workflow (is AutoCAD viable?)
Hi! I've been working on a multiplayer first person shooter for a while now, but I've always been confused as to how I should be constructing levels. I know a lot about fps level design, so it's not that I don't have the concepts. It's just that I feel very limited in my options.
I can do a modular approach: Here I would model simple wall and floor tiles either in Unity with ProBuilder Free, or in Blender. Then in Unity I would snap them together to get fairly grid-looking levels. The possibilities for designing angles, and such is very limited due to the grid based approach. In addition, the vast number of meshes required to be rendered would be very large. I guess in this case I would use something like "Mesh Baker Free" to bake them before runtime.
I can use a terrain approach: Here, all of my ground is taken care of by the terrain, and I only need to worry about populating it with building and prop assets to create my level. However, this feels very loose, as it's difficult to create each of these buildings separately (or download them from the asset store) with a great deal of cohesion. It might look a bit too lazy also, if there is not enough detail in the terrain.
I can use a "room" approach: I notice that in the majority of the ProBuilder tutorials show a person creating a "shell model" of the level, and then inverting the normals. When I tried this technique with ProBuilder Basic, I found it difficult to add doors and hallways without the "subdivision" command. In addition, what if I want an outdoor scene in a level? Would I then have to go back and remodel the shell of the level from the outside for it to look right? However, I've noticed that this does give you a lot of control over angles and pacing, which is nice for a multiplayer FPS.
I can use a CAD approach: This is my golden option. I've grown up using AutoCAD, and even though it might be difficult to relearn it now, I would love to go back to it. I like the idea of having a 2D floor plan of my level before I extrude everything and make it 3D. I feel like I can work faster in AutoCAD than any other 3D application, and I have more control. However, I've heard from many forum posts that its difficult to import from a CAD to Unity, especially because they use NURBS, while Unity uses meshes with vertices. I know that AutoCAD can export to FBX, so I feel like it shouldn't be a problem.
Thank you for reading all this! I've just been so frustrated with all of these problems surrounding level design, that I really have not made any great levels before, just game mechanics. I would love to hear what other FPS developers are using for their games in Unity, and how well they perform (framerate wise). In addition, does anyone know anything particularly bad with importing fbx from Autocad? Thank you very much! :)
I was about to ask the same question, CAD looks interesting, I've been using Sketchup but having some light-mapping issues which I should probably just resolve (Fix in blender or something). But what did you end up doing?
I actually ended up sticking with AutoCAD, just because I'm more familiar with it. I still don't know how to color the walls and surfaces of the levels I create in AutoCAD; maybe I'll make modular pieces of levels in AutoCAD first and then paint them or color faces in blender or something. I'm still pretty confused as to the coloring, texturing, etc area of the workflow.
I have been using Sketchup a lot as well, but I have also come to some weird issues that i frankly have difficulty describing. The thing that I liked most about Sketchup was the ease of texturing and coloring faces, and also the ability to simply push and pull surfaces. What I didn't like was the lack of control over the floor plan as a whole; it felt too loose, but maybe that doesn't matter so much with game levels.
I frankly haven't been working on levels recently, so I've kinda lost my "workflow" but if I get back into it, I might post an update on what methods have been working for me :) (sorry for the tardy reply!)