UnrealEd Workflows

Thought this might be a useful topic to get started to bounce around work flow with level design. What is your process when going about creating a level, tips and tricks for boosting game performance and so on.

I am pretty new to the new Unreal Engine 3 and some things about it are puzzling me. Many of the levels for this game are almost entirely static meshes how is it able to support so many polygons. In the older engine it was more beneficial to build walls for buildings out of bsp for an outdoor level, then apply meshes for trim and windows. Is this still a good approach to working with UT3?

Reason I ask is I am modeling a one room schoolhouse which will have desks and other props inside. Would it be better to let the level designer make the walls out of bsp? Then add the accent meshes for the trim and windows? Or would it be better just to build the whole school house within Maya and drop it in?

As long as you’re not importing the entire schoolhouse and are importing assets in pieces you should be OK. BSP is really is mostly used for blocking out the flow of the level, where you later go in and replace them with modular static mesh walls.

Modularity is key for UE3 from what I’ve learned and worked on so far. For example, a cafeteria would have a set of walls (flat, corner, rounded insets, ceilings, floors, etc) all separated in to modular chunks (maybe 512x512y in dimensions), and would then be put together like lego pieces… using the BSP template for dimensions if needed. Then, dress pieces would be made to throw around the environment like AC ducts and light fixtures.

This is all ideal for the two main types of culling going on in the engine:
Frustrum culling - anything that is in outlying areas of the view of the camera is culled out.
Occlusion culling - similar, but even if the object is in the view of the camera but completely behind another object, it will be culled as well.

This is a great enough reason alone to follow that process, in addition to how lightmaps are baked on to static meshes (which looks horrid for an entire room as one object).

Kevin Johnstone posted a good rundown of his workflow at Epic on Polycount that is very useful.

http://boards.polycount.net/showthread.php?t=45470&page=2

It’s about halfway down that page, but I’d recommend going through the whole thing as it has tons of little gems of information throughout the thread.

Also the cool thing is once a static mesh is called into Mem its nearly free after that for duplication, look at epics workflow on UDN.

These might be interesting standalone topics, different high level engine/dcc-app agnostic pipelines for different assets. . .characters, levels, design, etc. Just a thought.

Modularity has been used so far on a few assets such as village buildings etc. We haven’t felt the need for it for such simple static meshes as outhouses and whatnot.

You might consider it for the out houses, only because as I remember them, outhouses are constructed of basically wood panels. By breaking up the panels into the component parts, hell it could be just one panel with a material instance to swap textures on each panel, and the door, you gain the ability to re-purpose the panels as clutter around the environment.

If you start to look at all the assets in this way, you can get a ton of reuse from assets you already have created.

mike hovland
lead technical artist
midway games
chicago

What’s the overhead on a static mesh in UE3? How simple can you make the geometry before it becomes more expensive as a static mesh?

For our own engine it’s around 64 polys, anything less than that and it’s cheaper not to make it a static mesh/reference. So it’s not worth doing it for little details (bolts, debris, etc)

I think I remember reading somewhere that anything under 600 polys takes the same amount of time to draw. (like a 20 poly and a 300 poly model would take the same amount of time to draw). That doesn’t mean everything should be at least 600 polys because it still goes against your poly budget.

Don’t know if that helps you, but it’s kind of a hard question to answer.