GAME JOBS
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
June 7, 2013
 
Sledgehammer Games / Activision
Level Designer (Temporary)
 
High Moon / Activision
Senior Environment Artist
 
LeapFrog
Associate Producer
 
EA - Austin
Producer
 
Zindagi Games
Senior/Lead Online Multiplayer
 
Off Base Productions
Senior Front End Software Engineer
spacer
Blogs

  Portal 2 and the Dev Tools Evolution
by Eric Schwarz on 05/14/12 11:57:00 pm   Expert Blogs   Featured Blogs
17 comments Share on Twitter Share on Facebook RSS
 
 
The following blog was, unless otherwise noted, independently written by a member of Gamasutra's game development community. The thoughts and opinions expressed here are not necessarily those of Gamasutra or its parent company.

Want to write your own blog post on Gamasutra? It's easy! Click here to get started. Your post could be featured on Gamasutra's home page, right alongside our award-winning articles and news stories.
 

This past week, Valve unleashed their "Perpetual Testing Initiative" for Portal 2, both a level editor and mod distribution network for their customers to take advantage of.  Already, thousands upon thousands of levels have been contributed, and while content varies dramatically in quality as with anything user-created, it's fair to say that players will be creating new levels for Portal 2 for months to come, and there is a near-unlimited amount of game content Valve is effectively providing to their fans "for free" (and I admit, I've been making quite a few myself as well).

As much as I'm thrilled by this prospect as a gamer, I'm even more intrigued as a content creator by what the tools are able to offer not just amateurs, but even professional designers.  While development tools have become much more readily available and easy to learn over the last console generation, the Portal 2 editor is the first one I've been able to pick up and start producing what I'd call good, playable content within just a few minutes.

Disclaimer: I am not a programmer, and the things I say here might come across as short-sighted, ignorant or patently incorrect.  I apologize if this is the case.  My goal here is only to illustrate and make arguments from the perspective of a designer.

Tools Should Be Easy

Unfortunately, even today one of the biggest obstacles for a designer to get into the games industry is the general impenetrability of the tools.  Someone might have one of the best creative minds out there, but even creating basic game content can be a big challenge, even with the most accessible tools around.  It certainly would not surprise me to hear that there are many veterans with SDKs like Unreal and Unity that still have no idea at all how to do certain things, or how to take advantage of certain shortcuts.

These dev tools can still ultimately resemble 3D modeling programs and other complicated software, despite the vast majority of functions simply not being necessary for 90% of the work involved in creating games.  Multiple viewports, dedicated toolbar buttons for each and every action, arcane and obscure keyboard shortcuts to speed things up... it's all great to know, but the barrier to entry is exceptionally high, and any time something new needs to be done, there's a whole new learning curve thrown in.  Sometimes it can take a week or more of practice just to get to grips with a single piece of an SDK, and that's not efficient.

UDK's Content Browser is still overly complicated and cumbersome.  I can't count the number of times I've made duplicate versions of files, saved them to the wrong databases, and even had entire levels go to waste because of its unintuitive UI.

 I love using SDKs, regardless of what I'm making.  It's a lot of fun to put things together and the sense of satisfaction upon creating a level that looks good and plays well is immense, even if it's extremely small and simple.  But, even so, basic tasks can often take too long, and sometimes more time is spent just wrestling with the interface or waiting for numbers to crunch behind the scenes.  Blocking out a scene in CSG using Unreal for basic gameplay prototyping can take only a few minutes, but making changes might require re-rendering the lightmaps, pathing, compiling scripts, and any other number of activities, many of which might all require separate inputs.  If something goes wrong, it's often not clear what, why, or how to fix it.

For all the power available, sometimes I just want to move an object a few feet and re-test gameplay, or add a few objects to pretty a scene up... and doing so can require several minutes of waiting or longer in the worst cases.  There has to be a better way of handling things without giving up that power.

Tools Should Be Design-Driven

Portal 2's level editor goes one step farther than Unity, Unreal and others.  Whereas even some of the best tools around are often created from the mindset of "how can we put as many features together as possible?", with little care for intuitiveness, Portal 2's editor is firmly focused on intelligent organization, quick and easy shortcuts for the most common actions, and is generally build to enable designers to create content as quickly and easily as possible, with as little learning curve as possible.

Although it only works in a simple grid and allows for the manipulation of fixed blocks, and thus has a lot of limitations, actually using it could not be simpler.  Adding walls is as simple as clicking and dragging, or selecting faces and pressing the + or - keys.  Gameplay objects can be added to a scene from a simple palette in a matter of seconds, and rather than using scripting, simple relationships can be plotted out using right-click context menus.

Portal 2's tools might be bare-bones, but the speed and ease at which quality gameplay can be created cannot be understated.  For designers who are fed up with fighting buggy UIs and spending a week to learn how to make an elevator, this is the holy grail.

The benefits are immediate and obvious.  Whereas a level in Unreal might take a few minutes to put together and then test out, Portal 2's tools allow designers to literally create entirely function game levels within seconds.  The learning curve is exceptionally easy, and the limiting factor on creating good content comes down to design, not tools, within jut a few minutes.

What this mostly comes down to is a sensitivity towards what designers actually want to do with the tools they're given.  Let's face it, if you're just building a level and aren't involved in scripting, creating game assets, programming, and so on, the most common thing you'll be doing is building base geometry and adding detail on top, tweaking, tweaking and tweaking some more, testing as often as possible, until something looks right.  Then, you'll probably tear down half of it when you realize something's broken or doesn't work well.  Most SDKs I've used have made this cumbersome and awkward to do, even with all the grid-snapping, multiple viewports, etc. available. Most of the time, less is more.

When it comes to building gameplay, it's also fair to say that the vast majority of the time designers will be placing oft-used objects and entities with fixed functionality - placing enemies, trigger zones to create those enemies, creating buttons that open doors, and so on.  It's one of the most time-consuming parts of game development, and yet the interfaces of SDKs rarely lend themselves to doing this quickly and effectively.  Yet, to do something as simple as make a sliding door in Unreal, it could take me several minutes.  In Portal 2, even complex logical interactions between objects can be set up in mere seconds, and the emphasis suddenly shifts from creating a game, to designing one.

Obvious Limitations

It goes without saying that Portal 2's tools, as exceptionally easy and fun as they are to use, are also extremely limited.  They only work with one game platform and one engine.  They only let you make one type of game to begin with.  They have a very fixed number of functions and tools available.  It's impossible to do very complicated scripting, cutscenes, etc.  It's tied to Valve's infrastructure.  Obviously, I'm referring to the UI concepts more than I am to the current implementation and feature set.

Looking past that though, there are still some concerns.  How do you reconcile such tools with existing tools and game technology, and are there any barriers to compatibility?  How do you get new assets into it?  How do you script something?  How do you do your keyframe animation?  What if you want to add more detail than what the tools allow, or plug in a new piece of software?  There's an argument to be made that professional tools are as complicated and imposing as they are because they need to be that way.

Despite being quite limited, there's also no reason why levels created in simple Portal 2-like tools couldn't be brought into other, more powerful SDKs when needed, or why there simply couldn't be a more design-driven UI on top of existing tools.

I admit, those are fair concerns.  However, I think it's also fair to say there's no reason why so many other development tools are so complicated.  There's no need to have a bloated interface full of functions that are useless most of the time, or to hide important functionality within a menu that can only be opened by an obscure key combination.  There's no need to force designers to define obvious parameters when the default option is almost always going to be the best one anyway.  And there's certainly no reason why development tools have to take on a one-size-fits-all approach to their interfaces.

Sure, there is that 10% of time where a designer won't be able to do something with what's available... but for the remaining 90%, building game content is as simple and effective as can be.  In my opinion, that's a very, very good trade-off if it means that 90% of the time is more productive, and more fun for that matter.

Closing Thoughts

Some designers might scoff at the fact that these tools intended for general consumers, and might even look at such a package as being overly simplified compared to the "real thing," but I think even the most hardened professionals should be able to appreciate just how fast and easy it is to create gameplay that is fun and engaging.  Even if, theoretically, such tools were to somehow reduce what's possible in creating game levels, I'd almost say that's already worthwhile simply due to how much time you'd save otherwise.

I certainly wouldn't be surprised if Valve's own designers use similar technology to build Portal 3 and other subsequent games due to how quickly they'll be able to prototype, before taking it into their full editor in order to build release-quality visuals and implement the finishing touches.  After all, the process isn't at all dissimilar from what other tools already do... it's just much, much quicker and lacks the steep learning curve and interface challenges.

I've written before on the state of tools in the gaming world, and while things are definitely better than they were a few years ago, I think that Portal 2 shows we have a long way to go before game level creation is able to transition from technology-driven to truly design-driven.

 
 
Comments

David Finch
profile image
It's incredible how far game editors have come in the last couple of years and I think the toolkit developers have done a pretty good job keeping up with the complexity of game design. I agree that a more intuitive UI would be nice, but as long as I can get something to work somehow, I don't mind spending a little more time figuring things out.

My biggest problem with these tools has always been importing custom content. Almost every developer uses 3ds or Maya and if you don't have thousands of dollars to lay down on software (which has to be updated constantly for new toolkits, breaking compatibility with old toolkits) original content is pretty much dead in the water. If I can't import a fully rigged and animated character model from Blender, there's really no point even learning how to use the tool because I'm going to be limited to rehashing stock content. Devs don't release import/export scripts for Blender (why should they), which leaves it up to fans to reverse engineer the file formats and get them working with the editors which practically never happens. Most of the time, you're lucky to get working statics. (Last time I checked, UDK still wasn't rendering specularity properly on statics imported from Blender.) Sure, plenty of people have access to those high-end programs, but just as many don't, and the people who don't are just as talented as the people who do. I wonder if developers realize that if they added import/export scripts for Blender they could at least double the potential talent pool of people using their editors? To me, that seems like a good investment.

Trevor Johnson
profile image
UDK supports FBX, shouldn't be having any issues with Blender. UDK is prob one of the easiest SDK's to get custom content into. Next to maybe unity. Source was always a real bitch.

Eric Schwarz
profile image
I agree, dealing with custom content is always a big deal. As much as I love the really advanced setup UDK has for creating models and textures (and the huge possibility for blending them), the sorts of formats supported are inevitably going to lock you into expensive professional-grade software, and for an amateur that can suck.

I have some experience doing audio production in my spare time and that field also faces the same issue of compatibility, and a lack of good free software - there's almost no point in doing it if you can't get your hands on $800+ programs then you'd might as well stop where you are, because the alternatives aren't anywhere near as good and the trial/starter/etc. editions of the big name software is often crippled in key ways as well (and even then, $400 might be a big discount, but it's still a huge barrier of entry for someone who just wants to try it out).

Even from a usability perspective though, importing content can be a pain. Going back to Unreal, getting a texture on a surface (like, say, terrain) could be a simple and intuitive drag-and-drop action. Instead I have to go through a somewhat convoluted and slightly buggy process and several different menus, not to mention the initial setup for materials. Now, are these steps this way for a reason? Of course, and I appreciate the power available. But sometimes, it'd be nice if something would "just work" the way you expect it to. Ultimately doing that sort of thing is very easy, but there's still a learning curve that honestly doesn't need to be there.

Joe Cooper
profile image
I can't speak for UDK, but in Unity I save the Blender file directly into my project folder and Unity just handles it.

In Unity 3.4 this was broken and I had to debug & fix Unity's Python script to get it to work, but at the moment with 3.5 and Blender 2.63, it Just Works (tm) (r) (c) (etc.).

It does the same with PSD files which Gimp can work with losslessly.

Chuck Bartholomew
profile image
UDK and Unity both use FBX, which blender can export to. The magic "just working" that Unity does with blender files actually fires up the blender FBX export script. I've never heard of specularity problems in UDK, but since it has a material editor you may have to edit the material and tweak the spec in UDK. As for Hammer...well...that is a whole other beast...

Trevor Johnson
profile image
"the emphasis suddenly shifts from creating a game, to designing one."

To me this is almost the opposite. Portal 2 has already been designed your are simple creating levels. Albeit your are designing the levels yes. What i guess i'm trying to say is I don't believe it would have been possible to build or conceive of this editor until the game had already been fully designed, and released... for a while now. It's easy to say "why isnt everything this simple!" when all your variables are known for a game.

That being said I think there are clear lessons to be learned from this amazing tool. many which you noted. I do find it pretty ironic that the creators of the Hammer editor, once described as "an ornate chair with a spike in the middle of it", known for poor usability created this awesome example of usability. Valve has always been very active in helping its modding community, with the tf2 item integratation work they did a while ago as well.

Eric Schwarz
profile image
I kind of agree, but don't forget - there's no reason why this can't just be a front-end for a more complex program. The fact is that building game content usually revolves using a fixed set of assets and arranging them in a specific fashion - once you do have an initial object set up (scripts for controlling it, how it can interact with other objects, etc.), there is theoretically no need to touch it again unless you need to add new functionality to it. The simple and intuitive design of Portal 2 as a game definitely filters down into the tools, but I don't see why you can't apply the same simple and minimalist principles either.

Joe Cooper
profile image
I can see a few reasons, first that this is nothing new and reflects some of the most basic facts about building anything.

1) Assumptions permit

2) Specifications complicate

3) The more general purpose something is, the less assumptions you can make and the more specifications.

I'm not saying the Unity or UDK developers don't have specific problems that they could address, but if you flip the whole thing over to remove features, it's going to become useless to a lot of projects. You seem to be suggesting something between Unity and Portal Editor, but there are already such products - RPG makers and the like - and just as the Portal Editor doesn't help you if you're not making Portal levels, RPG makers don't help you if you're not making an RPG put together the way they imagined.

To be more specific...

What can we take away from Unity? You mentioned multiple viewports and other features. Yes, there as a learning curve for me but I need these features. I need to be able to reorganize my workspace based on what I'm doing.

I spend vastly more time using the thing to work than I did learning it; the -value- of features that help my workflow are is far greater than the -cost- of learning.

You might be on to something and maybe you could start a project to create the Unity killer, I don't know, but this line of thought often goes to bad places.

Before I switched to Unity I briefly tried Shiva 3D. It was "simpler" and more minimalist than Unity without making assumptions. It had a simpler scripting language. It had a simpler interface and tool set and less features.

And as it happens, not having things like vectors, structs, dictionaries and other basic tools makes the workload go -up-, not down. Nothing is as hard, tedious and complicated as pushing a tool past its limits, so be careful not to set them too low.

Evan Combs
profile image
While true in most respects, having a complex general program does not mean it has to have terrible UI like most game engines do. It only means it is more difficult to create a good UI. I have never worked on the creation of an engine so I can't speak for sure about it, but I imagine what happens most often is they get to a point where the UI is good enough, then convert most of those resources to other areas because they view having a working engine is better than no engine. I don't blame them, but at the same time I believe having a better UI would be worth the extra cost it would take to make the UI's better.

Joe Cooper
profile image
I can't speak for UDK and the OP's complaints against its browser are of course totally valid. But I am very happy with Unity.

Evan Combs
profile image
Ideally I think the best tool would be one that starts off as bare bones, but has a large library of plug-ins so you can easily customize in a way that is best for your particular game and its developers.

Brian Shurtleff
profile image
Yes, this!
I love working with development software that makes good use of plugins.
Definitely helps with the above-stated problem of simple dev software being user-friendly but too general, while features that make it good for making specific projects making the software too complicated...
Instead let users create and select their own 'specific, yet complicated' features that they need for their current project, and ignore the rest by literally not having unwanted features in their interface at all.

Taure Anthony
profile image
Good article Eric, I feel the same way on alot of your issues, there is an interview with film maker Robert Rodriguez where he states as a creative you want to work at the "speed of thought" and have the tools to do so.

Martin Felis
profile image
Thank you for your article, Eric. However I do find your comparison rather difficult as on one side there are fully-fledged game engines and on the other hand a highly restricted editor. Playing a triangle is much more intuitive and easier than playing piano. You can make music with both, but concerning melody or harmony the triangle is way easier to master.

I think virtual 3d content creation will always be difficult as we have to convey and build spatial ideas through a 2d interface which always will be limiting. Allowing arbitrary rotations already makes tools a lot less accessible to people who want to play around let alone speaking of animations and scripting of events.

Eric Schwarz
profile image
These are pretty valid concerns. As I've said, I'm not sure I'm in favor of advocating game tools that are "dumbed down" or lacking in features... what I would like to see is some sort of easier, faster, more streamlined interface front-end that gets 90% of what you want to do done as quickly and easily as possible, while also leaving the potential open for more advanced tweaking. As much as it's great to have a workflow after years of practicing advanced tools, there is a lot to be said for being able to jump in and make quality game levels in mere seconds.

Another similar tool that I enjoyed was the Far Cry 2 editor. It basically resembled a stripped-down SDK with just the level editing bits, but even if it had been part of a larger SDK it would have been very intuitive to use. That's more what I'm talking about in actual practice - something that lets you build content with tools that are simple and intuitive enough that you don't actually *need* most advanced features in the first place.

Titi Naburu
profile image
I've seen these kind of level editors in many racing games, for example TrackMania and ReVolt. There's a grid, you change the aprameters, add objects to it and voila!

Making levels is also playing. It's incredible that he have so little games with level editors these days. Let's hope that this Portal 2 begins a new trend.

Chuck Bartholomew
profile image
I totally understand the desire for better content creation tools in general. I've also noticed that the few polished tools out there are designed and built as standalone products. The internal, proprietary tools I have used are buggy, unforgiving, and hard to use by comparison.

As for simplicity, it necessarily comes at the cost of functional flexibility. In comparing the PeTI tool with Hammer, for example, there are a lot of things PeTI just can not do that are pretty simple in Hammer, but the few things PeTI *does* do are way easier than the same function in Hammer.

What would be great would be a set of tools that function the way that I think about creating content, and I think adding PeTI to Hammer is a step in the right direction. Using PeTI, I can block out a space, add in the basic puzzle elements I want, test the level, and iterate on the basic design VERY quickly. Once the basics are laid out the way I like them, I can open up the map in Hammer and work on advanced elements that PeTI does not support. Sadly, the Hammer-modified map can not be edited in PeTI, but perhaps that is a bit too much to ask.

So what might an ideal tool set look like? Maybe it offers an initially simple set of features for blocking out a space and allows you to dive into progressively deeper feature sets as you work. for me, at least, this is how I approach design in the first place. I start with a rough idea of what I want to create and as I flesh out that idea I start to think about the details. A tool set like that would be awesome!


none
 
Comment:
 




 
UBM Tech