|
Still, there is little feedback
on what effect the data will have on the game, and therefore there is still a
great deal of iteration time necessary to test changes, tweak values, and so
on. This is due to the fact that these tools are still based on the
implementation model of design.
That is, the data that is edited directly by
the user is equivalent to the data used by the underlying game system, and is
therefore more complex than the user can fully understand.
Iteration is still necessary,
even though the tool has spared the user from typographical mistakes that would
have otherwise caused serious errors (crashing). Typos have been eliminated,
but errors of logic are still prevalent.
Data abstraction begins to take
place in these tools, albeit on a small scale. Anytime a text box is replaced
by a drop down list of enumerated values, the internal representation of the
data (a number) is being replaced with something better understood by the user.
Color pickers, graphs, calendars, progress bars, and just about any graphical
representation of data imaginable all serve this purpose. Still, the individual
bits of data do not represent a cohesive whole.
To achieve that, we must absorb
the individual data points into a larger, more conceptual picture through a
kind of abstraction. We hide the actual
data behind a facade that represents the objects that the data describes.
Consider a 3D model. The actual
data is a list of vertex positions, weighting, UV mapping coordinates, RGBA
values, and so on. Editing each of these values directly would offer extreme
precision, but would take much longer than using a modeling program to generate
the same type of data with much better results.
The modeling program hides the
complexity of the data by showing what the data represents instead of the data
itself, giving the user the ability to edit the model data in a way that makes
a lot more sense.
When tools abstract the actual
data appropriately, iteration times are significantly reduced because both
typos and logic errors are all but eliminated. The abstract view of the data
gives the user the ability to understand its purpose. The final data still
needs to be tested in game, obviously, but the data created from the tool
should be sound.
The hard part, of course, is
finding the best representation of the data. This is achieved by understanding
the users of the tool. The closer that representation is to the way the user
understands it, the easier the tool will be to use.
Goal-Oriented Design and User Models
Sometimes, we talk about users
in a way that suits our own desires. "I think the player will really like
this," is often heard as an excuse to include some feature in a game.
The flip
side is just as easily said, and no argument can be won when two developers
disagree on this point.
That's because the user is usually not very well
defined. Everyone has their own idea who
the target audience is, even with tools. That's where user models come in.
User models are concrete,
fictional end users that have their own goals, desires, hobbies, families and
even names. They aren't necessarily the "average user," but they are
representative of a typical user.
A single piece of software may have several
user models that need to use the software, but the key is to design an
interface so that it satisfies one of those users very well. That user is the
primary user model, and the entire team needs to be on board with who the
primary user is to avoid arguments like the one above.
At one company I worked for, the
lead designer had come up with some ideas for the level design tool. He had
done this on his own based on what he felt the goals of the team were.
The
tools team, including myself, dismissed his design ideas since we supposedly
knew better, having a greater understanding of what the underlying data was
that would be edited in the tool. I wish we had understood the user model
concept and used it at that time to start a conversation over what the design
should be.
Here was a guy with a stake in
the success of the tool and a great deal of knowledge of those who would use
it, but we didn't have the tools to really communicate effectively. The tools
team should have worked closely with him, as a representative of the end users,
to create a primary user model, and decide on the real goals of the design
team.
As it was, the level editor was never what it should have been, and the
level designers spent much of their time struggling with it.
|
The tools I have used at work often suffer greatly from missing features that I would have in a text editor - cut and paste, search+replace, etc. On the other hand, when I need a graphical representation, they are welcomed. So I work optimally when I can edit the parts that need the graphical representation in a tool, and then export it to a human-readable format to make large-scale changes. On the occasions where I can't do the latter, I waste hours of effort.
http://www.gamasutra.com/blogs/LuisGuimares/20090503/1302/The_Game_Design_Labora
tory_Gameplay_Improvement__Providing_Useful_Gaming_Tools.php
One notorious example is the engine = editor approach used at CryTech, though there are serious considerations to be made when you go this route, especially when the engine in question is 1st generation or insufficiently stable. It will affect the whole tool-chain.
I know that the article wasn't particularly about those questions/statements but they were offered as an example of things that a Usability test might incorporate. I came to realize that what I was creating was so far removed from the usability testing process that I couldn't use the statements. Skimming information from website visitors is so different from in-depth usability testing and the two methods solve different problems and offer different feedback on the value of a tool. Anyway, if you are interested in the approach that I have taken to evaluate game development tools then look at my blog entry here...
http://rcharney.com/?p=1584
Thanks for giving me so much food for thought!
Robc