IRC Banner Live Chat
Welcome to the Wolfire Blog! This is where we keep everyone up to date on our progress on Overgrowth and other new stuff. Be sure to subscribe to get the latest news! Also, be sure to check out the forums for even more up to date news - or get on IRC for up to the second updates.

Map Editor

By Phillip on January 12th, 2009


The map editor in action. I’m scaling a bunch of blocks on my lovely house.

Here at Wolfire, we’re a small team but we want Overgrowth to have lots and lots of content. So, it’s really important for us to have powerful tools to speed up asset creation. One of the main things I’ve been working on is the map editor.

We want to make our editors as easy to use as possible. It’s pretty obvious, but it’s humans that are going to be using these and that’s important. It means we should design our tools around the things humans are good at and bad at. Here are some of the human-centered ideas that have been motivating our design.

Limiting Information Load

I’ve been trying out a lot of game editors and modeling tools. One common issue I’ve come across is many of these tools have bloated interfaces and control schemes that are difficult to learn. Often times there are dozens of tools to select between, and users have to navigate through long menu lists to find what they want. Blender is a good example. It’s does a lot of things really well, but it’s UI is daunting.

I find it easy to get lost when given so many options and so many readouts all at once. Other people are probably similar: a lot of studies have shown that humans can only actively process about four distinct items at once. Luckily, by some miracle of the human brain, there’s a lot of leeway in terms of how much information these four items can contain. We can chunk little items together to make bigger items, and then process the whole hierarchy with relative ease. If you want to try this out, write down a 10 digit number and try to remember it for awhile without looking at it. Now imagine it as a phone number. Is that easier? Phone numbers (U.S. numbers at least) contain two or three clusters of three or four numbers — all manageable quantities.

For Overgrowth, we’re applying this chunking principle to the organization of controls. For example, the basic transformation tool gathers together three distinct sub-tools: translation, rotation, and scaling. The particular sub-tool that gets chosen depends on where you click on the object you want to manipulate. Thus, when you’re deciding where to click, you only have to think about three categories of manipulation, and earlier, when deciding which root tool to use, you again only had a few choices. As another chunk, there’s a set of three basic keyboard modifers. ‘Shift’ locks transformation to a line, ‘control’ activates snaps, and ‘alt’ clones the object as it is moved. These modifiers function in more or less the same generic way no matter which tool you are using, and I think this makes it easier to cognitively distinguish them from the choice of tool. Anyway, the idea is to have modular and hierarchical controls, thereby avoiding infomation overload as much as possible.

Reducing Dimensional Difficulties

One of the prevailing problems we have to deal with is figuring out how to control three dimensions when computer input devices only provide two degrees of control (you move the mouse on a flat, 2D surface). Similarly, computers only tend to provide output in two spatial dimensions (monitors display 2D images with no inherent means for depth perception). These factors make it hard to deal with free, fully 3D manipulation on a computer. And it’s not just bad i/o devices: we humans just generally get confused when we’re given more than one or two dimensions to think about. This problem often comes up in zero gravity games, in which you can move about in all three dimensions. For example, play Descent for awhile and try not to get disoriented.

For Overgrowth, we want all the tools to have cognitively manageable degrees of control. So, translation is always locked to a line or a plane. Scaling is determined by only one or two dimensional input. Even ‘free’ rotation is actually parameterized by just two variables (since it’s just movement along the surface of a sphere). The idea is you never need to manipulate more than one or two dimensions at once.

Increasing Accessibility

Because of their complexity, a lot of game editors end up requiring serious tutorial investment in order to learn. We want Overgrowth’s editors to be more immediately accessible. One way we’re doing this is by trying to make controls that do exactly what a player expects they should do. We’re going to need a lot more playtesting to work this all out, but we have some initial ideas. We’ve separated all mouse control into two basic categories: left-click for generic control, and right-click for more specific, contextual control. Ideally, a player with no experience will naturally stumble upon the generic controls, and simply start dragging objects around the screen with no confusion. I’ve made an effort to lock all mouse movement to one to one correspondence with game object movement, so there are no tricky gadgets to get the hang of; (except in a few special cases) the object should just follow the intuitive physical movements of the mouse. Of course, we can’t count on all players stumbling into such understanding, so we’ll be adding some hints when the editor is first used. But as much as possible these will be graphical and unobtrusive; we don’t want a lengthy, textual tutorial turning users away.

Another way we are making the map editor accessible is by keeping it fully in-game. In fact, right now the map editor is just some meta data and controls running on top of the regular gameplay engine. This means that any player who becomes familiar with the game will be immediately familiar with the basic look and feel of the editor. This differs from, for example, Valve’s Hammer Editor, which runs in a very distinct environment from the games it edits. However, lots of other games do have in-game editors. One that really inspired us is the Little Big Planet editor. While the controls are tricky, the environment is very familiar to anyone who has been playing the game, and the editor becomes correspondingly accessible and even fun. You can play music, change clothes, and turn on and off physics all while in the editor; best of all, you can do this with multiple friends at once. This is the spirit we want for the Overgrowth editors. They should be fun in and of themselves.

 

As cool as it is, LBP is not the only thing inspiring us. Far Cry 2 has a really nifty paintbrush tool that sprays vegetation on the landscape, and Aquaria showcases some nice mechanics for compositing 2D environments, just by cleverly layering lots of sprites. If you have another favorite editor, please let us know about it in the comments!

I’m always looking for new input on the editors. So far, I’ve been able to work closely with our artist, Aubrey, to make tools that are actually useful to him — we share an apartment, so it’s really easy to coordinate. But Aubrey’s not the only one who’s going to be using the tools. We’re also making them for modders! If you have any suggestions or specific feature requests, I’d love to hear them. Comments here, forum posts, irc chats… all are good.

Last of all, here’s a quick visual tutorial of the basic object controls, based off the great graphic by Silverfish in the forums!

 

Basic object manipulation. Yellow refers to translation, green to rotation, and blue to scaling. Boxed areas are the hotspots for sub-tool manipulation when using the ‘omni’ tool. Arrows show right-click movement sets. All control types and hotspots exist on all faces, they are just separated here for clarity.

  • One of the most important features I rely on when working in a 3D environment is having the ability to center the view on the object I'm manipulating. This means visually framing the object in the center of the screen, and most importantly, setting the rotational center of the camera to that object. I've struggled with several editors that don't have this basic feature and they quickly become frustrating to use.

    Not sure if you guys already have something like this in the map editor or not, but I would put it high up on my list of work flow features.

    Everything is looking great so far, and as always, it's fantastic that you guys are documenting the whole development process for Overgrowth. This is easily one of the most interesting blogs in the game-dev world right now!
  • Object/group view centering would be very cool. It's something I was thinking about but wasn't sure how many people would actually want to use it. I'll move it up my list. Thanks for the suggestion!
  • I'm glad Sam mentioned this. This would definitely be high on my list of desired features as well.
  • I like what Bungie did with the editor for Marathon Infinity.
    Since the game was 2.5D, the editors main window only had to focus on two planes, while allowing the user to create immersive and what seemed like 3D worlds. This made it very easy to use. I also like how you could create a room with few polygons strapped together, enter it as a player and paint in the textures while walking around.
  • I remember playing with the Marathon Infinity editor with David way back in the day. I liked it too. Thanks for reminding me.
  • Nuky
    Phillip; as much as I love your map editor, there's currently ONE thing that makes it hard to navigate: Up and down movement is lacking. =(

    But, man, so far it's both awesome and fun. Didn't know you could snap?
  • Nuky
    "Phillip is a beast and managed to fix all of the known bugs in the map editor. Therefore, Phillip managed to slip in a few new features. Namely snapping and grouping."

    Oh.
  • Hmm, yeah, up and down movement would be nice. I'll see what I can do about that.
  • I don't remember which editor I used that did this (probably Sauerbraten), but jump (space key) for up, and crouch (shift for Lugaru, assuming 2 is the same) for down, makes a lot of sense and is fairly intuitive.

    (I'm probably just stating the extremely obvious, but there ya are anyway ;)
  • Yeah, that makes a lot of sense. Sometimes it's easy to overlook obvious things, so thanks!
  • schwillis
    have you checked out google sketch? It's a rather simple 3d modeler, but it reminds me a lot of what you wrote about, it's the only 3d modelling program that I could seriously get into because it's so easy to use, everything else I found to daunting to enjoy playing around with.
  • marmorek
    I hope it'll be possible to import models from SketchUp somehow. That'd be great.
  • Yeah, I've been playing with Google Sketchup. I really like their idea of making a modeler everyone can use.
  • Simply offering further support for the possibility of Sketchup compatibility - A wonderful little program, makes 3d architectural concepts and basic level design layouts a breeze for those of us with too brief an attention span to dedicate ourselves to UnrealEd or Hammer *grins*
  • Cool, I'll look into SketchUp compatibility. The good news is we're using .obj files for the models, and this is a pretty common format. So even if we don't provide native loading of all file formats, it should be pretty easy to use third party tools to convert random things into .objs. For example, for SketchUp, this plugin might work: http://sketchuptips.blogspot.com/2007/01/wavefr....
  • Have you guys looked at the Sauerbraten map editor? http://sauerbraten.org/

    They have a number of unique approaches to things. I think my favorite thing about it is how easy it is to move around the environment.

    One of the big frustrations with 3D editors can be figuring out how to change your view conveniently in order to get where you want to go.

    Sauerbraten simply utilizes standard FPS controls and you fly your character around the map making changes; this is extremely intuitive, especially since you want to make it simple for people who are playing and loving the game to make their own maps... if they can play an FPS game, they can fly around the map with ease and don't have to learn a new approach to moving around the screen (since most people are more familiar with FPS controls than they are with 3D application controls, such as Blender).
  • I haven't tried the Sauerbraten editor, but this is exactly the kind of stuff I've been thinking about in terms of accessibility. The Overgrowth editor also uses standard FPS controls right now. I was thinking about having some special camera controls and rendering modes for the editor, but I'm not so sure anymore. I think you're right that FPS mode makes things really easy to jump into.
  • Yeah, I think if you made the FPS navigation system work really well that you wouldn't need to bother at all with special camera controls for edit mode.

    Oh... one thing I forgot to mention (and you may have discovered this yourself already) is the fact that Sauerbraten allows you to edit maps with your friends.

    In fact, a map which is being edited appears in the game server browser just like all the other games; you can join it and be granted permission to help edit the map with everyone else... if you want to play on the map, you simply hit one key to switch out of edit mode, and you're instantly in gaming mode; if you're playing along and decide you want to help edit, you switch into edit mode and have at it.

    It's not uncommon to have people playing the map, shooting each other up, while other people are in edit mode making the map at the same time.... it can be quite comical to watch since an "editor" can edit the ground right out from underneath a "player" =)
  • Wow, that sounds really cool. I'll definitely check it out. Depending on how things go we might not be able to make Overgrowth quite that dynamic (multiple players editing and playing at the same time), but this sort of stuff is definitely the direction we want to go.
  • Excellent - I'd not heard of it, but it was close to what I had in mind.

    I've found more and more that in order to craft an immersive and believable (thus compelling) gameworld, you need to obey 'real' rules; As physics integration has simplified the process of animation, I believe a more 'real' method of construction would better serve architectural design. Walking around inside a structure, modifying it from the perspective of the character who will inhabit or traverse the enviroment, you'll find a natural sense of scale and flow..

    Thinking ahead, I look forward to the day of map editing in a physics-enabled enviroment, where (if so wished) architecture will be victim to collapse, subsidance and instability.

    Or the day when the unlimited flow of dull World War 2 shooters have their enviroments destroyed in simulated bombing runs to provide a more true-to-life array of wreckage and debris =D
  • Dremth
    i like the unreal editor
  • JimmyJazz
    i like the endorphin editor http://www.naturalmotion.com/endorphin.htm (just download the LE its free) it took a while but once you get in to it its REALLY fun.
  • donut
    Thanks for writing all of this up. I've really been enjoying your commentary on games and interfaces. While I'm not a game developer, I do build websites and much of this applies.
  • cunak
    For 3d object movement, you might want to consider the controls used in Homeworld 2. Dragging objects without modifier keys sticks them to the ground plane. Elevation can be changed by holding a modifier key and dragging. This is a really intuitive way to do dragging because it separates the familiar (the ground plane) from the novelty (elevation change).

    This is probably done in other interfaces as well, but Homeworld 2 is where I saw it first.
  • cunak
    Hehe, oops. Just looked at your picture.

    Actually, I really hope it isn't separated per-face. That would get annoying quickly imo. When I want to move an object out of the way quickly, I dont want to spend time clicking on the correct part of the correct face.
  • How does the editor know which way to move the object though?
  • That Homeworld 2 mechanism sounds pretty cool. Maybe I'll add an option for dragging along the terrain.

    The picture is a bit misleading. All the hotspots and controls exist on each face. And it's only the right-click controls that act differently based on the orientation of the face. Also, that's a good point that clicking the correct part of a face can sometimes be cumbersome; we also have ways of explicitly selecting a sub-tool with either the toolbar or the keyboard.
  • Chainsaw man
    From what I have used of the early editors in Alpha 1 and 2, I think your on the right path.
    My Fav editors that I have used are the likes of UnrealED, Age of Empires II, and Sauerbraten.

    If there is one thing I would like to see, it is a similar pathing system to Lugaru with an GUI. With this in mind, players could create a Warrior on patrol, keeping an eye out for raving rabbits, or you could go as far as tell an NPC to take a bucket to a well, use the well, take it back to the stair way and dump it, scrub the stairway, and repeat. or maybe you want more advanced Way points: Royal starts at spawn point, travils to point A, B then C, once it reachs C Player fails misson. With this in mind the the players gonna be able to create some really cool missions, and little details that give the game a life of there owen.
  • If you have an independent map editor, please make a the UI simple
  • Wolfieisgod765
    This is Awesome!

    Now tell me, how many hours of sleep do you all get, considering how fast you all are at working on this!?
  • Mighty183
    One thing I would love to see, and would make it one of the greatest and easiest games to mod in history. Is an events function. Like TGF/MMF etc, or like Kudo more specifically.
    It would be extremely easy for modders to use. But It would probably be quite hard on your end. XD
    Right Click on an object and choose an "if" (If player touches/if player attacks/if time reaches/etc.)
    Then select an outcome (spawn enemy/change enemy paths/end level/etc).
    This kind of system can easily make a massive change to the types of levels created. You could make capture the flag in 2 minutes.
    You could also make collapsing temple style levels, if you allowed us to tell any of the objects to move.

    Also, my favorite editors (all 2D though...) Jazz Jackrabbit 2 and Graal Online. Jazz Jackrabbit 2 had an events sytem but all of them were premade. Graal allowed you to do anything if you knew the scripting language.
  • Yokai
    A great game is one thing. A great game with a great map editor is a whole nother cup of tea. I'm glad you guys are working so hard on the editor.
    My favorite game editing software would be the WarCraft III World Editor. It's a pretty generic RTS editor in that you have simple tools that raise and lower the terrain, create water, dirt, trees etc. but everything is clearly labeled and relatively user-friendly. It seems like a formula that could be used more commonly in other game genres and work just as well, and it's possible to create some very detailed, soectacular-looking maps with it.
  • Bluesmudge
    Kinda like what Mighty183 was talking about, I really like the way triggers work in the Starcraft Campaign editor. It works on the system you have presented where you only have to think about a few things at once and each step leads you to the next.

    I'd take a look at the Halo 3 forge editor. Somehow they manage to make a 3D editor that makes sense instantly.
  • Striker21
    I'm slightly skeptical here. Unless I'm wrong, I'd have to rotate the camera around the object to find the appropriate function I want to use.

    I'll stick with the standard XYZ arrows, thanks.
  • Yeah, the picture is a bit misleading. Sorry about that. Really all the controls are on each bounding box face; you don't have to rotate the camera all the time. I've updated the caption to make it a bit more clear.
  • To follow the trend of 'My Favourite Editor', I'll have to mention the rather simplistic Neverwinter Nights module creation tools...

    You could create some beautifully detailed scenes with that thing, truly atmospheric worlds. Controlling atmospheric effects, mist, weather, ambient sounds, randomised noises, text popup descriptions, spawns, conversations.. The thing that amazed me most was that none of the potential was used to make the actual game, which was bland, blank and shallow.
  • Triskal
    I love how this editor is looking. It reminds me of a tiny indie game called Realm Wars. This game, was by FAR the funnest game I have ever played for two reasons: One, the map editor, and two, they let the players edit the code of the game to make their own mods easily. The map editor was great though, you could play a game like marble blast to see what it's like. It was complicated at first to get used to, but once you did, you could make literally anything you set your mind too. They gave you the ability to choose any shape from the game, and scale it, stretch it, or rotate it anyway you please. It was not uncommon to see massive fortresses made out of dock planks and stretched out poles.

    I would HIGHLY recommend checking out this editor. It was great, and made it so you could make anything. The only problem was the learning curve, which could have been made simpler easier.
  • David
    Have you guys checked out the Spore editors? They don't have landscape design but their tools for creating creatures, buildings and vehicles have immense (aesthetic) flexibility.
  • Maxwell
    Another good editor I've used is the terrain editor in the Unity3D engine, it lets you paint heightmaps and grasses, rocks, trees, and other small detail objects with ease, although I don't know how well a paintbrush heightmap editor would work in Overgrowth, so far your terrain mesh generation stuff looks pretty advanced.
  • ryan
    there's nothing i love more than a good, fun editor, and just as people have mentioned before, you guys should DEFINITELY check out the sauerbraten/cube 2 engine. it is one of the most innovative editors i've ever used.

    one of my favorite things about it is how there are absolutely no pre-made building or terrain models (except for things like trees, street lamps, etc). you build everything out of scratch by creating and manipulating cubes, then you choose what texture you want to use on the block via holding down a hotkey and scrolling with the mouse wheel through a list of textures. this allows for some very realistic and unique buildings and terrain (although it's rather time-consuming). it also has "entities" that you can place anywhere on the map, such as lights, jump pads, monsters, etc., which are very customizable.

    i can't really explain everything about it, but i think it would have a lot of design elements that you could get a lot of good ideas from.
  • It is pretty cool how you can edit the map on a polygon level. I'm not sure if it's practical (or even desirable) for Lugaru to do that, but it might be interesting to consider the ability to morph/stretch existing objects and terrain with a brush instead of just being stuck with library items.

    Here's a crazy idea... perhaps have an "object creation" mode you can enter where you can make an object inside of Lugaru; kind of making it a simple 3D object creator. Though nothing complex, just basic polygons with smoothing abilities or something....... I don't know, just thinking out loud here, might not be practical at all; might not even be something I'd wind up liking if it was implemented... all depends. Just thought I'd throw the idea out while I was thinking of it in case it sparked something on your end.
  • Just to broaden the already good list of editors, from which I can recommend Sauerbraten.
    I'd also like to share you my like for the Wesnoth map editor. From which you can notice the simplicity, and the familiarity with the game mechanics, so that it becomes really easy to use.

    Secondly, thanks to the Mac giving tree, I have been experimenting with the Enigmo 2 map editor, and let me tell you, you need to check it out in order to avoid using that "camera-angle based" editing. It can get tiresome.

    And also, worth of notice, is the Blockland game, which I enjoyed very much, and is somewhat similar to the Lugaru "debug" map editor experience.

    Hope you can consider these editor suggestions, and find them helpful.
    Elí
  • CountRoland
    awesome, I'd like to mention though that if anyone played far cry instincts for the xbox, that had many of the ideal tools I would like, the only things it was missing in my opinion was the ability to edit objects, the ability to place water where you wanted it (there was a set water level, lowering the terrain below this would let you go into that water) and the ability to create caves and caverns.
  • merfnad
    Keyboard shortcuts are good, but they can be hard to remember at first if there are lots of them. It would be nice if you at least had a .txt file with a list of every shortcut for easy access, even better if it was ingame.
blog comments powered by Disqus
Powered by WordPress ; Entries (RSS) and Comments (RSS).