Sunday, January 23, 2011

Level prototyping

Today's post is for modders and budding game designers, and I'm going to tell you to do something that is generally considered common sense for many game development studios. I'll be the first to admit that I don't do it as often as I should, and I know its value. Sometimes even professionals don't do it properly. As the title of the post suggests, that thing is prototyping. I'll specifically be talking about level design prototypes in this post, though the principle can be easily applied to other aspects of a game. Doing level prototypes for level design can save a lot of work, and often doesn't cost you a lot, if anything.

So first, let's discuss exactly what prototyping involves for level design. In essence, you create a level with the functional qualities of the level you are going to be working on. Don't decorate. Don't take time doing complicated lighting. Don't bother applying texturing (except for functional purposes). Get the core shape of your level created as is required by the gameplay it will be supporting. As I discuss previously, levels must support the game. If we're talking about a multiplayer FPS, levels practically are the gameplay. So get a level prototype up and running and make sure that your design is functional from a gameplay perspective.

I don't care if it's ugly, it's functional.

The aim should be to have the level so that you can put in the interactive objects that will provide gameplay. If there's a time limit, make sure the player has enough to get from point a to point b. Is the flow of the level right? Will it be sufficient to support (or create) the desired experience that you are trying to deliver to the player? The prototype is your key to identify major flaws with your planned design. It's your key to determining whether the idea you had for the level is a good one or a bad one.

The great thing is that there are no real downsides to this. If the level works, you've got a base from which to start creating the level properly. If it doesn't, then you've saved yourself hours of effort creating a polished level that doesn't support your gameplay. If you're working in a team, you create a prototype to the rest of the team for them to get working on the associated items, scripts or gameplay elements. They use this basic outline to test whether those elements all work together, and can use them to either provide feedback on how the level needs to change, or identify how other mechanics for the game might need to be modified.

The main thing is to use the prototype as a learning exercise. If something is wrong, do not persevere blindly. Work out what needs fixing and change the prototype or the game mechanics. If you've identified that something isn't quite right, try to fix it now rather than "polishing the level" as it is. Prototypes are created to be thrown away if they don't work. If the level was a bad idea or the game mechanic isn't suited for it. Ditch it for the time being. It might work for something else at a later date, but don't try to fit a square block into a round hole.

Even this contains unnecessary detail for a prototype

As I said, I'm not perfect in doing this for level design. The above level was something I was recently working on to get a basic level up and running to test a scenario. It's too detailed. You can see the effort I went to increasing the tesellation level to create an overhanging cliff. There's various texture work scattered about the level. In an ideal situation, I'd have sculpted the terrain into a rough shape, established the walkable area of the level, and then marked the edge of the walkable a non-walkable area with a wide-band of rock texture. That would be all that is required to get a basic, working level prototype.

This level took about 3 or 4 hours to produce to get to this point. Sure, it's a good start for my level, and at this stage it looks like it will fit the purpose I intended. But I probably could have produced a functional (albeit unattractive) level with the same characteristics for gameplay purposes in under an hour. This means I would have wasted a couple of hours of work if the level hadn't worked.

So prototype your levels. It's a good way to save yourself potential headaches and wasted time. Just don't be afraid to throw those prototypes away if they don't work.

2 comments:

  1. Yep, and as you say you can apply it throughout the process. I find it's particularly useful to hash out quests in skeleton form (with lots of NPCs saying emotive and dramatic lines like "I set the QUEST_STARTED flag, go talk to the next guy") and try several iterations of the gameplay before writing any dialogue. Scripting is relatively cheap and easy to reuse later. Dialogue is expensive and more custom-fit.

    There's a bit of a blurring of the lines here between prototyping and iterative development, but they're both good practices for a modder.

    For those interested, there's a lot of good writing on prototyping in the game blogosphere. Games From Within had "Prototyping: You're (Probably) Doing it Wrong" (http://gamesfromwithin.com/prototyping-youre-probably-doing-it-wrong) last August, and there's a wealth of fantastic stuff at Lost Garden (http://lunar.lostgarden.com/labels/prototyping%20techniques.html).

    ReplyDelete
  2. Do you know where i can find the orange and gray prototyping texture? If you do, tell me at minecraft59942@outlook.com

    ReplyDelete