Wednesday, October 31, 2007

I've learned a lot of computer languages in my time. And I've learned a lot about learning languages.

Right now, I'm picking up Ruby on Rails for an ultra-top-nonsecret project for work. I'm actually reading a book on learning Rails: a nice book except for a few code typos.

In all honesty, I like the typos. When you compile something and it doesn't work, you're forced to go back through whatever you've typed and try to understand where it is failing. In tutorials like these, it's usually pretty easy. Even if you typed the tutorial carefully considering every line (which you didn't, nobody does), you don't really have a deep, semantic understanding of what's going on since you didn't design the code. You don't understand the architecture of the program.

Learning the architecture of a language is the hardest part, assuming you're learning a language with new architectural features and not just another Java clone. (If you don't know what I'm talking about, you need to learn LISP. Now.)

I admit, some of the languages I have learned, I have learned "badly". That is, I ignore the architecture and simply use "standard" architecture with new syntax. Bad practice, so why did I do it?

Because tutorials are crap.

This doesn't reflect on the makers of the tutorial! The best tutorials in the world... are crap. It's sort of like trying to teach someone how to make a spaceship using only quotes from eighties movies. No matter how clever your references are, it's not gonna fly.

And it's funny. Flawed tutorials actually teach you more, because they make you struggle to get your code to work. In the process, you learn more about the language than the rest of the tutorial combined. The rest of the tutorial is just a reference - it's that moment when you have to fix it that it gels.

It stands to reason that this could be done on purpose.

More specifically, it stands to reason that it could be done in a game.

I've tried creating games of this nature before, but it's very difficult to get the interface to be good enough. My incomplete mini-game Turing's Prison (now mysteriously not available, hm...) was a mediocre first stab.

Using a game, you could teach any number of programming concepts in any sequence. In my mind, it teaches you a concept, then pushes that concept to its complexity limit. Then it teaches you a new concept that simplifies all that complexity. It does all of this in the framework of a game: programming robot(s) seems most likely, although in Turing's Prison I used the code to control the rooms instead.

For example, you learn about basic single-tape, single-head Turing machines. You program your robot to do simple tasks using them. Then you slowly add more complexity: multiple tapes, multiple heads, registers, IO pipes...

Eventually the player has built a "Turing program" of very high complexity. Building a more complex Turing program would take more than one programmer and a lot of hours.

So you introduce something like assembly with jumps and hardware interrupts. That gets more complex, so you introduce something that wraps functions, like Basic. From there you can keep adding functionality in any way you please: object-oriented code, lambda functions, generative code, unit tests, databases, networks, distributed processing, alternate IO...

Tuesday, October 30, 2007

People are posting their scariest gaming moments now that it's almost Halloween.

Most people who know me would probably think that my scariest game was System Shock II, but that's just not true. SS2 has loads and loads of atmosphere, but it's only above average at actual fear.

Others might think Aliens vs. Predators 2, which was a scary freaking game, so long as you played the marines.

Some might say one of those new-fangled survival horror games, like the one where you take photographs of ghosts. Maybe they're scary, I can't seem to get any time to play them. But they're not the scariest.

The culture of fear evolves over time, of course. Back in the day, a werewolf movie could be scary. Nowadays, we aren't even scared by movies like Saw, just vaguely startled from time to time. So if you played these games today, you would find them unplayably poor and therefore probably not very scary. (Yes, he's transforming into a werewolf, we get it, get on with it!)

At heart, they are the same game. Which is why they are tied.

Both were first person view. Cyber-Cop was real: you could look around, even up and down, shoot cameras, so forth. Silent Debuggers was that old-school "90 degree fake" 3D.

Both featured very complex inventory systems - so mind-bogglingly complex you could never really tell if you were equipped right, or if you were totally screwed. Cyber-Cop's inventory system was more complicated than any I have seen before or since, including tabletop games. Both featured complex level design where the levels breathed terror. In Silent Debuggers, you had a central level that was a giant elevator. It descended with you towards the final fight. Except that... the enemies would attack the various rooms and DESTROY them.

Rooms like "recharge your health", "upgrade weapon", etc, etc. GONE FOREVER. You would watch their health dwindle as you hunted for the damn red speed demon.

Both had enemies that were scary as hell. Not because of their design or whatever. Because you can't SEE them. You're stuck in this labyrinth, and you've got these motion detectors beeping like mad, and something is howling on the other side of the wall HUNTING YOU...

Basically, these games were like AvP2, except with System Shock II's difficulty. Their sheer output in terms of fear, adrenaline, and simple scalp-tingling terror is unmatched.

Monday, October 29, 2007

I have waxed poetic on Skate before (or, if you want to be all marketing-droney, "skate."). Basically, Skate is to Tony Hawk what Tony Hawk is to Skate or Die. Skate is mind-bogglingly fluid and natural, a game of skill rather than of stat improvements.

Since it is a game of skill, that means that the play experiences of various players will be extremely different. For example, I am not as skilled as Darius but am better at halfpipes, and Jeff is the king of lame falls.

However, Skate's "plotline" assumes a linear skill growth throughout the game. This is fine until the player plateaus, at which point they boggle at these requirements. I thought I was doing pretty well, until my cameraman started asking for 90 foot grinds and 4000+ points in a single take. If I kept improving as fast as I had been, I could probably do these. But player growth is never linear, and mine is approaching the asymptote.

Portal is the opposite. If you can't beat Portal, your spatial reasoning is significantly below the gamer average. However, Portal offers a huge number of special levels and challenges for players with more skill. Skate, on the other hand, explicitly says, "hey, if you're not both talented and obsessive-compulsive, you don't get to see the X Games and other cool ending shit, screw you!"

This isn't a problem with the gameplay of Skate. It's a problem with the overall game's design. A game with a weak ending... all too common these days.

So, lesson of the day: if you're building a skill game, that's great! Just don't make it require extraordinary skill to complete the game. Make the high-skill stuff extras, or on-line competitions, or whatever.

Alternately, you can do something a bit more generative, so you can support a lot of different kinds of skills. For example, I would love to build a skate.park.

The theory is far from unique. Years ago, I personally came up with it and tested it myself. I nibbled, chewed, refined, eventually came up with key theory, as linked above. It's re-discovered by every theorist who stumbles through. It is a deeply flawed theory, for all the attractive simplicity.

However, flawed theories are fine if they allow for useful implementation. This DOES NOT.

He aggressively pursues this theory that by putting familiar emotional content in front of someone, they will feel a strong emotion. Unless that emotion is IRRITATION, that isn't so. There are dozens of other conditions required, ALL of which seem more useful to study than this theory.

For example, attention, wanting to be in the mood, not being in a different mood, being distractionless, not having shifted the context, not having shifted your feelings on the matter...

Plus, most humans feel deeply about things they've never felt personally. I've never been really hungry. Every religious Jewish person has been hungrier than me. Yet pictures of starving people upset me greatly. I'm sure you also have many zany associations that are not explained by this theory.

There are a lot of theories that might explain it. Even now, you're probably thinking, "oh, but sympathetic simulation solves that..."

... or was that just me?

The fact of the matter is that simulating intelligence of any kind is extremely difficult. It's easy to think that you HAVE solved something, but it falls apart when you try to implement it. This is not a case of the industry not listening to academics. This is a case of the academics not having a clue.

A big part of the problem is simplicity. Even if we had actual human brains hooked into the games, they would not be convincing humans. At best, they would end up like WoW characters ("LFT? lvl60shaman?"). More likely, they would end up as a state machine that occasionally got into a snit.

This is made very clear if you are familiar with how humans in isolated, extreme conditions begin to act. For example, smaller polar bases. Within a few months of isolation, their social behavior has simplified to a state machine you would be ashamed to put into a game. Plus, they tend to obsess over dumb details, such as Sunday's dinner. Lack of deep IO.

Even the most complex simulated world is so heavy-handed and low-grain that a polar base looks downright lush. Hell, a broom closet looks downright lush.

Increasing the dexterity with which an NPC can interact with the world doesn't help, because there's no significant world to interact with.

To me, it's obvious that we won't get very far by trying to simulate from the bottom up. Even trying to get a complex enough world is computationally impossible.

We have to cheat.

Danc is aware of this on some level, and is cheating by storing up elements that have been proven to cause emotions in some way for some audience subset. The idea being that once you have a stock of these elements, you can use them to do something meaningful. Something that causes emotion.

But the approach is much too heavy-handed. I don't want to see my face in a game, and I certainly don't want to see my life. I'm not even sure such a game would be psychologically safe: if done right, it would totally fuck you up.

Besides, the best stories are told by someone with a vision. They aren't remixing collected symbols, at least not on such a simplistic level. The content in their stories is carefully crafted to cause emotion, and they use content we've never experienced. I've never been on a quest to destroy a ring, or flown through a nebula, or gotten mixed up with the mafia. But these things cause a predictable emotion in me and millions of other people.

As ever, the point of a story is to say something.

I would much rather work on a system which helps game designers with THAT.

So, there's a bit of a fervor over James Watson, one of the scientists who originally discovered the structure of DNA back in the day. Apparently, the 79 year old made some racist comments. As a result, he's basically been excommunicated. Speaking arrangements have been canceled, he's being not-so-gently forced from his job, etc.

I have mixed feelings about this, of course.

While I dislike racism as much as any desperately evenhanded white guy, I can't help but think that this obviously political ostracism is pretty silly.

People seem to forget that this guy is almost EIGHTY.

His racist comments aren't something I can take seriously. He's from another time, another culture. Hearing him be racist is sort of like hearing a old Japanese fisherman talk about leaving the first fish for the god of rain. It has no significant effect on what you think of mainstream Japanese culture, all it does is remind you where the culture is coming from.

In my mind, ostracism is brutal to the point of freakishly bizarre. He wasn't even trying to be mean. He was trying to be ethical and helpful, in his condescending old white guy way.

This guy devoted his whole life to making fairly good scientific advances, and then he says something dumb and out-of-touch about a political hot button and gets kicked out? Can you imagine how he feels? "Thanks for all the good times, but we hate you now. Get the fuck out!"

I feel ashamed for the British. They lost a chunk of my respect.

A better response would have been to play it condescending. Gloss over the comments with "ha, how out of touch..." Let everyone know that's not your culture anymore. This "BURN THE WITCH!" reaction is just silly.

Saturday, October 20, 2007

Last essay I talked a lot about "generative content" (specifically, simulation rather than scripting), so I'd like to clear up some stuff.

First, there really is no such thing as "generative content". Or, more accurately, there's no such thing as non-generative content. All content is created by a human using tools. Every tool has tradeoffs regarding clarity, quickness, breadth of resulting content, automation... whether your tool is a text editor, a paint program, or an algorithm that generates humans based on tweaking ten thousand morph points, it's still just a tool. The most automated of worlds are still created by a tool and still incorporate the creator's vision, as best as the tool (or his skill with it) allows.

But what we think of as "generative content" (or whatever we're calling it today) is usually restricted to content which changes real-time without specific case statements for everything. IE, a simulation rather than a decision tree. But it's an axis, not a toggle.

Where you fall on the scripted-simmed axis depends on the breadth of the game versus the depth of the game.

It's easy to script people falling in love, people being betrayed, people finding joy in watching butterflies, people worrying about their children, people gloating over a fallen victim. It's linear time regardless of the content: it doesn't take any longer to script someone dying in pain as someone scampering after a field mouse.

Generative content is very efficient at allowing the creator to put in a lot of variations on the same subject. So if you wanted a hundred people to gloat for various reasons and in various ways, you would generate the gloating rather than script it. But that wouldn't help you with the love and butterflies stuff.

Generative content is also only as good as the algorithm used to do the generating, which means the vast majority of generative content is pretty dull and repetitive. However, the vast majority of game scripting is also pretty dull and repetitive, so...

Friday, October 19, 2007

When trying to make some kind of social algorithm for NPCs, people concentrate very hard on coming up with clever ways of making NPCs adaptive and complex.

These algorithms always outstrip the complexity of the data they analyze.

For example, if you want to make a game where your compatriots will like you better if you help them in combat. That's easy enough: you can measure how helpful any given character is, and you can easily make their AI prefer to help out the characters they like. This could even lead to two NPCs hooking up.

Aside from balance and pacing issues, this kind of simple algorithm rarely satisfies a designer. At a minimum, characters need a stock of dialog to tell the player who they like and why. "Hang on, Bob, I'm coming!", "Thanks, Anne!", "Somebody help me!"

This generally keeps expanding in the designer's mind to include details or history. "Help! I'm surrounded!", "Watch out! Orcs!", "Remember when you rescued me from the orcs?"

That's just expressions. The AI itself can also be enhanced to use indirect methods: "John, help Suzy!", "Dave, grab the rope!", "Orcs killed James, so I'm gonna kill every orc on the planet!"

As you can see, it's easy to design up from a simple basis. Liking people who help you turns into helping people you like turns into remembering specific events turns into disliking entities that harm you (or those you like) turns into directing people that like you to helping people you like... this kind of "and then we can use THAT to do THIS" thinking is pretty easy.

But the complexity rises very fast. It's no longer simply who helps you. At each step you need to add a new data source. If you want to help people yourself, you'll need to be able to scan the battlefield to determine who is in danger. If you want to keep memories, you'll need to have a memory system you can scan for applicability. If you want to dislike entities, you'll need to weight combat preferences by more than statistics. If you want to direct people, you'll need to be able to have an order system AND determine whether someone is likely to listen to you...

That leaves aside all the scripting you'll have to do in order to make their communications clear. After all, this stuff has to happen out where the player can see it. This leads to eight hundred variants on the phrase "Dave, go help John" and "Help, I'm being killed by orcs!"

This is a pretty simple example, as it limits itself entirely to the battlefield. If you add more play modes, your complexity is going to skyrocket. For example, what about an equipment and planning stage? What about a general chat play mode? All of these things will intertwine to create staggering complexity with hundreds of "data sources" and millions of lines of dialog.

...

The first step is to cut out the dialog. Dialog is the single most onerous duty in creating NPCs. If you have to write dialog for every element of their thought process, you'll soon find yourself wishing someone would just rip your fingers off so you wouldn't have to type anymore.

Dialog can be replaced with other cues, most commonly pseudo-dialog consisting of "thought bubbles" and gibber. There are alternatives such as explicit body language, broken English, and a complex meta-language. I'm sure there are others.

Once the dialog is generative rather than scripted, you can simply add meta-language cues for every kind of thing. This symbol or gesture means "help", that one means "orc", that one means "Dave", etc.

This means you lose a lot of the uniqueness of the characters, though. When characters express themselves through dialog, they can say the same thing in unique ways and with unique voices. When they express themselves through symbols and body language, the uniqueness is limited if it exists at all.

Which means your characters need to actually BE unique instead of just SOUNDING unique.

Here's the problem: chances are extremely good that your system has a dominant or unavoidable strategy. For example, helping someone is the dominant strategy. So while you can make characters that act different by being less quick to help, those characters will not be much liked by the player, since they are flatly less effective.

If you're clever, you can either manipulate this so that it is balanced or you can balance each character by giving them other advantages, such as better combat stats. I prefer the first choice. For example, people who are less likely to help people grow attached more quickly. So instead of just helping people in general, they will stiffly defend their best friends.

The problem with this is that they are still not very unique. A player can quickly recognize the "stats" behind any given set of actions. "Oh, he's a friendly-5, generous-3 character..." That's not good. A character needs to have a deeply unique nature rather than simply being unique because nobody has exactly the same stats.

In order to make characters more unique, you have to incorporate "focal points". These aren't statistics, but pieces of content. For example, Anne might have a phobia of the dark. This isn't a statistic: it makes Anne different from every other character because she reacts to dark places differently. Of course, she's only unique on battlefields where there is dark. Similarly, someone who hates orcs with a passion is only unique on a battlefield where there are orcs.

So you have to choose the focal points carefully: if it's a phobia, it needs to be something that exists on basically every level, and many levels have lots of. If it's an obsession, it needs to be something that exists on most levels, but never is so plentiful that the obsession doesn't usefully steer the character.

Instead of changing the behavior of the character, you can give the character very unique abilities that change how they interact with the world. If you do this, then they may grow to be unique if the rest of your system hinges on how they interact with the world.

Monday, October 15, 2007

If you've been reading this blog long, you know that I'm always trying to figure out a way to do social play. Especially with NPCs. The problem is twofold:

First, to do reasonable social play you need to have a very high grain of interaction. You need to be able to express a wide range of emotions. Second, it has to flow smoothly. "Turn based" social games have, so far, been so bad as to be worse than not having the social element at all.

So, you have to have a way of smoothly, rapidly expressing a wide range of emotions.

A bunch of ways have been proposed, such as time-pressured icon-clicking, or a 2D field where you move the mouse to express yourself along two dimensions. These kinds of methods are far from ideal. That's ivory tower speak for "they suck, but I'm trying not to be too offensive."

I was working on this parkour game, where you control your body with your left stick and your hands with the right stick. And I hit a little bump: talking to people. I didn't want to shunt you out to a completely different scheme ("dialog tree"), because that would ruin the immersion, which was the point of the game. So I decided that if you stood still near a person, your controls would enter a "gesture" mode instead of a "run around like a madman" mode. This would let you express yourself via gestures.

The more I thought about it, the more I grew to like it. At some point, the parkour element dropped out of my design entirely.

Think about it. Your left stick controls your body posture. Moving it a nudge up and down would make you nod your head. Pushing it all the way forward would make you lean in conspiratorially. Pulling it back would make you lean away. You can lean forward akilter, wiggle back and forth, turn your back, etc.

That's just the left stick. The right stick controls your hand(s). A little horizontal waggle might let you wag your finger negatively, whereas a big horizontal waggle would let you make a negatory cutting gesture. Circling across the top would make you do a big wave, whereas just gently pushing it partway up would make you do a little greeting hand-raise.

Combine the two sticks. The difference between leaning forward and throwing your arms wide apart versus backwards while doing the same doesn't seem like much to our game-numbed senses, but it's significant. While leaning forward means "I'm gonna hug ya", leaning backwards usually means either "you're gonna hug me" or "what'd I do?" depending on the hand position.

Obviously, the game would need to have some kind of "smart" system for handling the hands, and probably a system of clear feedback that would label your gesture for you, so you can learn the language. After all, it won't map perfectly to your imagination, because everyone's a bit different. Similarly, as your character gets more agitated, their hand gestures can change to more aggressive ones...

Anyhow. The only way I see to do a real-time high-bandwidth interaction like social communication is to teach the players a language built for it. And teaching the players to simply map a language they are already familiar with seems best. Sort of like the way that many people learn sign language: by mapping English (or whatever their language is) to gestures, even though sign language has a fair number of fundamental differences from English (or whatever).

This "language" (my gestural one, not sign language) is pretty limited, but that can't be avoided: I've only got two thumb sticks rather than a hundred thousand muscles that can all operate independently. So this system won't let you talk about the weather - you may still have to have some method of choosing a topic - but it will let you actually TALK about the weather, rather than selecting canned and limited responses to a scripted event.

Also entertaining would be the culture barrier: if in a real-world setting, imagine the difference between gesturing to an American and gesturing to a Japanese guy. You're going to get completely different responses because the gestures are going to be interpreted differently. (As the most obvious example, they have head nods and shakes reversed. Oh, they're so silly.)

Saturday, October 13, 2007

Edit: Updated the prototype. Now it supports a more "ecological" system and multiple-brushstroke entities.

After drawing, scroll your mousewheel down to plant what you drew. This will also change all your brushes. Scroll your mousewheel up to discard whatever you just drew. That doesn't cycle your brushes.

Because of egregious slowdown, only one entity can grow at a time. The others will grow: it's a first come, first serve queue.

You can click on an entity to delete it. This allows you to prune "ugly" mutations. However, this may turn out to be awkward, because Flash's hitTest system leaves much to be desired. :P

Next step: make multi-brushstrokes "adhere" to each other instead of drifting independently. This is also a first step towards layered entities...

Original post:

Here's the flash prototype for my paint game, part two. This version has better brush variation and a basic system of evolution: when you stroke with a brush, it will grow in the background. The game makes a wild guess as to whether it's supposed to float or grow from the ground.

Still very prototypy, but I felt like sharing it. You can get some really nifty things out of it.

Obviously, there's a lot of work left to be done... but I have some good ideas.

So, for the first time in a long time, I had a little issue with Amazon. I decided I'd fill out their "help-a me!" page and ask them about it: "should I cancel and buy it from the dude down the street, or will you be shipping this item sometime soon?"

In response, I got a letter. The first paragraph was: "I understand your concern that you would like to know that availability of the item, so that you can make the appropriate arrangements."

I said, "okay, hey, that sounds pretty carefully targeted. Maybe I'll get lucky and this letter will help! Plus, their grammar is really clumsy, so maybe it's an actual person!"

"I've checked your order #[redacted] and see that theavailability item "[redacted]" you ordered is listed on ourwebsite as "Usually ships in 1 to 3 months"."

Oh, YOU checked, did you?

"It means it typically take up to 1 to 3 months to obtain and preparefor shipment, but can occasionally take longer."

Because you're a dumbass, "ships in 1-3 months" means "ships in 1-3 months". Except it doesn't: it's a leftover "cover our ass" clause from before the product was published. Usually, you ship immediately, no matter what your ass-armor says. I ignore ass-armor, because I'm not a fucking lawyer. Your prior performance sets my expectations.

Well, let's go to the "your form letter didn't help" page and fill out their "your form letter didn't help" fields with calm, polite info about how your form letter didn't help to answer this very specific question and then click the "your form letter didn't help" submit button.

A fictional person, I'm sure. Because no real person would be DUMB enough to sign their name to a proactive form letter. Lavanya checked the status of my order, did she? "I'm not a __FORM LETTER____, you can tell because I personally ___CHECKED YOUR ORDER__. Please have a nice _____AFTERNOON___."

It's a tiny issue. But I just can't help but feel insulted. What poor customer service, to send a form letter that pretends to be more, then send it again after the customer fills out the "your form letter didn't help" form.

The only thing I appreciated about the letter was that it told me where to go to cancel my order.

Friday, October 12, 2007

Last post I talked about the importance of making navigation fun. I even talked about how to check whether it was fun. But I didn't talk about how to make it fun.

Here are my personal observations on the matter: I encourage people to post their own observations.

To me, it seems like making navigation fun boils down to three things: commitment, pacing, and juice.

Commit me!

In order to have fun running around the world, the player has to have to commit. As they romp around the world, their actions have to be nonreversible. Take a look: most games that are fun to navigate have strong elements of commitment.

In Skate, you're always committed: it's hard to turn around even when you're just skating, but jumps and grinds are even more one-way.

In Crackdown, a large part of the game is jumping from tall place to tall place. And, usually, it would be pretty hard to jump back even if you wanted to. Climbing is technically reversible, but pointlessly so, since if you wanted to go down you'd just jump it.

In Katamari Damacy, once you pick up a new object, it's not like you can just drop it again, unless you're the sort that enjoys slamming into large stationary objects. It's all nonreversible.

Contrast this to games with boring navigation: in Bioshock, you VERY rarely commit to a movement. The same is true in RPGs and nearly all FPS games.

Of course, when I say "commit", I don't mean "fire and forget". Most games these days let you change direction somewhat while in the middle of a jump, and for good reason. The point isn't to take agency away from the player, it's to make them choose to limit their options for a bit.

Nothin' But Net

The other half of the actual play of a good navigation is pacing. Some games with good commitment have poor pacing (in terms of navigation), and some games with no commitment have great pacing.

Pacing means variation, both on a local and global level. In Crackdown, it's not simply leaping from roof to roof. You have to spend time climbing from ledge to ledge, or running across open areas, or looking for a well-positioned ledge, or billy-goating up rock faces...

Similarly, in Skate it's not simply about grinding (or whatever you like best). You have to take the lay of the land into account, your speed, and even then you're allowed to tackle a grind from a hundred different angles and styles, with or without jumps... just in grinding, the choices are limitless. However, the game also has global pacing in that not everything is grinding: you've got manuals, jumps, half-pipes, etc.

This is where most platformers fall short. Although Megaman and classic Mario commit to the various jumps, they're basically all in the same pattern. Platformers like Sly Cooper get this right, and if you haven't played it (the first one), then you should.

Generally speaking, to get enough variation you need to have several "modes" of navigation and have a lot of control within the mode AND you need to have a lot of fun ways to go and limits on going from mode to mode.

For example, Skate: grind, jump, manual, coast. The tricks that you can do while in any of those modes are largely limited by how much time you have before you have to be in position to hit the next mode. IE, in a half pipe, whether you can pull a flip off depends on whether you go high enough to have that two seconds of air time.

More: Crackdown. Run, leap, cling, (fight?). Measured in distance rather than time, a big part of the navigation is setting it up so that you transfer from one to the next at the right place. IE, you can't make that long leap to the next roof, so you instead leap to grab a ledge, then claw your way up the building to run across it...

Now Katamari Damacy seems like an exception at first glance, but it isn't. Katamari uses continuous variation rather than discrete variation, altering the elements of dodge, hunt, gather, and follow (a line of debris) to different proportions depending on your size. In fact, a big part of Katamari is how well you can see what's ahead: when you're small, it's a very claustrophobic game, and as you get bigger, it gets more open, less dodging and hunting. So, yes, Katamari has modes, which is mixes like paint rather than switching like gears.

See if you can dissect Prince of Persia using this...

Juicy!

The last element is making the experience juicy enough. This is actually just a method of telling the player how "well" he is navigating in whatever way he is navigating.

For example, in Skate, depending on how "straight" you land a jump, you'll get various sounds: a nice roll, a thump, a squeal... and you can say, "oh, I didn't land that quite right".

Similarly, in Katamari, when you pick something up awkwardly, your roll becomes "lumpy" and you can say, "oh, that was a big one!"

In Crackdown, landing produces a louder thump and more cracks in the pavement the longer you fell, and your guy has a highly satisfying mid-air flail. And, of course, exact landing spot is more important (and therefore juicier) than in many other games, even Skate.

Compare this to games with boring navigation. There is no juice for walking from point A to point B in an RPG or most FPS games. You are simply in a new location. Some games, especially those intended for younger audiences, throw in things that seem juicy but aren't. For example, something that goes "SPROING!" whenever you touch it. That's not juicy. It becomes juicy if it goes "SPROING!" differently when you touch it well as opposed to poorly.

So, follow these three rules and I think you'll have fun navigation.

Commitment, pacing, and juice.

What do you think? What game do you want to design, and how would you make it fun to navigate?

Wednesday, October 10, 2007

A recent resurrection of my Gunplay post has led me to thinking. Perhaps it is time to summarize.

Recently I've been talking a lot about navigating the world. In my opinion, if you base your core gameplay around simply navigating the world in fun ways, you'll have a hit on your hands.

Examples abound. Skate lets you control your body and your board in an intuitive way such that moving around and doing tricks feels exceptionally natural. Crackdown makes climbing buildings and leaping from roof to roof excessively fun. Even in some not-so-spectacular games - like the recent Hulk and Spider-man games - the reviewers note that the game was fun until it actually started. Because it was fun to move around.

And, of course, Katamari.

There are also a lot of games where moving around is just a way to get from gameplay element to gameplay element. Most games are like this. Moving is important, but it's important because it lets you get behind cover, or reach an enemy without stepping on a land mine, or lets you push colored blocks into colored holes, or whatever. That's not deep navigation: that's shallow navigation. It can give you access to a fun play element, but it isn't, in itself, a fun play element.

On the other hand, games like Crackdown, Katamari Damacy, and Skate let you establish a close working relationship with the world around you. A random ledge is not simply something to use as cover or bypass to reach a better location: a random ledge is a place to grind a sweet trick, or a loose thing to collect when you're big enough, or a great place to grab on your way to the top of the building... the ledge itself can host gameplay. Of course, what things are considered elements of the world will vary on your game: Skate has no loose debris, whereas in Katamari most of the level is loose debris of various sizes.

An easy way to determine the depth of your navigation play is to ask yourself, "if this was an empty plane with a ledge/a ravine/a signpost/litter/etc, would it be at all fun?" If your answer is "no", your navigation is transparent and not deep at all.

Which means you'll have to work extra hard on the rest of your game.

Navigation certainly isn't the ONLY kind of play in your game, after all. (Unless you're doing a casual game.)

Every sizable game has other kinds of play that merge nicely with the primary play.

In Skate, you run around getting sponsors and competing and so forth. This is a great way to push the player to try new tricks in new places, showing off just how diverse the navigation can be. It also lets you make your skater look nice.

In Crackdown, you do a lot of shooting and punching people. However, your ability to shoot and punch effectively is directly related to your ability to navigate: things are safer on rooftops and you have an easier time getting the drop on people. Crackdown also has mission play where they twiddle the combat play. Even though the mission play actually screws up the game, because it's so fun, it's forgivable.

In Spider-man 3, you do a lot of swinging from a thread. However, unlike Crackdown and Skate, the other play loops don't really show off new and interesting ways to swing from a thread. Fighting involves NOT swinging from a thread and instead just punching large numbers of people. Missions are pretty bad, too.

How can you tell whether another play style augments the first? It's actually pretty easy:

Does the second play style push the player to play the first play style in new ways?

In Spider-man 3, fighting doesn't push you to navigate in interesting ways. In fact, it basically forces you to NOT NAVIGATE AT ALL. While it's part of the franchise (Spider-man always fights villains in the comics), from a gameplay perspective it's actually worse than simply not including it at all.

In Crackdown, fighting and missions usually reward you for finding weird back entrances, climbing high spires, scaling rocks, tightroping across pipes... while fighting (ranged or melee) itself doesn't include much navigation, the way it is integrated into the levels makes it require navigation before you even start.

Of course, Skate is kind of the ultimate example, because every mission is specifically to push you to navigate in new and interesting ways...

And all these feed back, too. Being better at navigating allows you to fight new battles in Crackdown. Being better at navigating lets you accomplish missions and get new missions in Skate. Being better at webswinging in Spider-man 3 gives you... NOTHING. Absolutely nothing!

...

Regardless of the play you want to augment, this argument holds. If you're making an RPG and you want to augment the battle play, you make a kind of play that encourages players to battle in new and interesting ways. This could be new and interesting enemies, new and interesting battlefields, new and interesting player capabilities, or a combination thereof. Obvious examples are progressing plots, gaining levels, and buying new equipment. Similarly, battling in new ways will unlock more plot, more levels, more equipment...

I think it's a pretty simple way of looking at things.

Is it clear? Can you break your favorite games (or least favorite games) into these kinds of linked loops (or notice the fail points of their linkages)?

Sunday, October 07, 2007

I hate numerical ratings for games. Most people are aware of the weaknesses of these things, so I'll just go ahead and not describe them in detail.

I want to rate games based on what percentage of the player base dreams about the game.

I find that every good game - each one - gives me a dream or three. This seems to be pretty common... to the point where I think it's probably universal. Unfortunately, since most of you don't remember your dreams very well, this ranking is basically impossible. I can, however, rate games based on how many dreams they give ME.

This makes my ratings pretty skewed towards gameplay. After a bit of playing, I dreamed about Disgaea, about Bookworm Adventures, about Skate. But I never dreamed about Bioshock.

Personally, I think it's because I only dream about games that have a deep level of skill to develop. I'm sure some people dreamed about Bioshock, but it wasn't hard enough to make my subconscious notice.

The funny thing is that this method produces numbers almost identical to those I would normally produce consciously reviewing games. The differences show up only with games like Bioshock, which I feel compelled to rate more highly because of overwhelming peer pressure.

So, I think it'd be easy and effective to rate every game as "no dreams", "few dreams", "lots of dreams".

Unfortunately, rating games like that makes you look like some kind of new-age curmudgeon. "Your game didn't give me enough DREAMS, so it SUCKS. Yeah, yeah, cry me a river!"

At least when I insult someone's favorite game in my normal way, it's something they can respond to. On the other hand, maybe that's a reason to rate by dreams. They can't really call you wrong that way, can they?

:D

Anyway, do you have dreams about games you play? What seems to cause them?

Friday, October 05, 2007

I've been playing Skate. All the menu defaults are backwards. But other than that, it's perfect.

My skater ended up looking like Neil Gaiman. See, when he faces that next empty page, he just hops on his wheels and grinds fifty feet of curb, like this. He's pretty good!

Skate is simply another example of a game where the very lowest level - moving around the world with the controls - is a really fun experience. If you make the basic controls juicy and deep, you end up with a fun game REGARDLESS of everything else. It's the most efficient way to make a game fun.

Monday, October 01, 2007

That's kind of unfair, I guess. Today's games have sucky stories because they have so much more capability - cutscenes, voice acting, cinematics. It took a lot less to have a good story a decade ago: just a few audio logs or a few dialog trees.

As an industry, we're stretching our wings and finding out that, in fact, we don't know how to fly.

Here is a ten-step guide to not sucking when it comes to storylines in video games. Obviously, this is not an advanced scientific study or some kind of holy truth. It's just what I think is a good idea.

Some of these details are what Hollywood writers are poor at, others are what game designers turned writer are poor at...

1) LET THEM PLAYIt doesn't matter what genre you are. This is a game, and that should be clear within a minute of pressing start. Your initial cut scene should never be longer than one minute, and preferably shouldn't exist at all. There's plenty of time for cut scenes: let us enjoy our game right now.

(Why does Halo 3 have a two minute initial cut scene?)

2) LET THEM PLAY, part the secondKeep cut scenes to a minimum. NO cut scene should be longer than two minutes. If it is that long, you need to split it and put some gameplay (and a save point) between them.

In addition, think about using non-intrusive methods. Asides are frequently all you need. There's no reason to have a cut scene where the characters go, "we need to get to the City of Monkeys". Just have one of them say it in the game engine. Takes less than half as long, doesn't screw up immersion.

3) LET THEM PLAY, part the thirdWhenever you plan to switch modes (from play to a cut scene or just between play modes) make sure you have the player's permission. This can easily be done just by making it really obvious that going someplace or talking to a particular character will advance things.

Clear level endings or glowing markers are easy ways to do this.

4) CUT OFF THE NOSE TO SPITE THE FACE, PLEASEMost game writers are not good dialog writers. They are concept thinkers: "it would be nifty if there were a species of aliens that could only survive while inhabiting photographs of naked women..." Not so good with the character details, because their characters typically simply say, "these species of aliens can only survive while inhabiting photographs of naked women... isn't that nifty?"

This leads to most games having dialog that is too on-the-nose. If you don't know what that means, don't fucking write dialog. Also, if you want to write exposition, don't write dialog. You don't have to explain... anything, really. Mysteries are usually better.

5) TOO MANY PEACHES, PEACHES FOR MEOn a related note, character design. Each character needs to be uniquely designed. That's something the industry is getting pretty good at. However, character design isn't simply visual: each character needs to speak in a distinct way, and each one needs to represent a distinct "flavor".

Think of characters as spices that you add to the "meal" of your gameplay and story. The right spices will make it taste excellent. But too often, character designs in a given game will all be the same spice. How often have you played a game where all the characters are chili peppers? You don't need fifteen different flavors of badass.

You also don't need fifteen different flavors of T&A. I don't mind sexiness (or sex) in my games, but try to show some respect for your characters. They have to feel alive, not like a barbie doll you stole from your sister.

6) HERE BE MONSTERSDo not stick to the straight and narrow path from point (A) to point (B)oss. A world - and the people in it - only come alive when a bit of exploration is allowed.

Characters should talk about personal things, mention things that are outside the scope of the game. Levels should be designed to feel inhabited, although not at the expense of making them confusing.

Examples of this are clearest in World War II games. The soldiers in your squad feel painfully lifeless when all they say is "clear!" and "six o'clock!" That's why they frequently say things like "tank beats everything!", "I've... I've got a girl back home...", and "Gawd, Cookie, can't you make anything that doesn't taste like fewkin' Spam?"

This is all the flavor of the game. Meat is fine, but raw, unflavored meat?

7) A LITTLE CHOICE GOES A LONG WAYSeriously, let your players make pacing decisions. Too many games force the player to have exactly N battles before the next plot point. Give your players a little freedom to dick around and really experience the world. At a minimum, let them get color commentary from random NPCs and see places that aren't directly plot related.

Don't worry about balance too much: let them work hard and get a ridiculous weapon, or waste two hours raising a chocobo. Just don't require them to.

8) IMAGERYWe've heard it before. Oooh, another end boss trying to destroy the world? Wow, another pack of alien invaders with superior technology? Sheesh, I've never seen a game with government spooks shooting at me...

There's nothing wrong with using the same basic plot. These basic plots give us a strong foundation to explore from, like making most of your characters humanoid: we can explore specifics and details without having to painstakingly establish everything.

But think of the plot as the meat of your dish. There's a thousand different ways to serve beef, and millions of things it goes well with. Similarly, your plot needs to be accompanied by strong images that really catch people's attention.

Evil villain taking over the world. The game feels radically different if it's set in primal Africa. Imagery is everything.

Pick a theme, pick a set of flavors, push it to the limit.

9) ABSURD RATIONALIZATIONSAre good.

This is a game. Your primary game mechanic should also be your primary story mechanic. If your interesting game mechanic is that the main characters are superpowered mutants, then the plot should relate to superpowered mutants. It's kind of pointless if it's just a normal WWII game where you happen to have mutant powers.

By going out of your way to link the fiction of your game to the play of your game, you give yourself the freedom and power to explore that concept in a very directed way. For example, in Eternal Sonata, people only have magic if they are terminally ill. This lets the writers explore various people's reaction to imminent death in a wide variety of ways.

That's kind of a dark example. As a failed example, see Halo. In Halo, the Spartan is the main character. He's only marginally human and has this amazing supersuit. However, at no point in the games does the story really explore this: your enemies are always random aliens, your allies are always boring humans. Your suit never malfunctions, your enhancements never really matter except statistically. The fiction is disjunct. A failed opportunity to have a more flavorful story and more varied play.