I've been thinking about electronic paper - you know, rolls like paper, thin like paper, image can change as needed.
There's a common sci-fi object - an electronic book. An electronic book is made of electronic paper and some kind of computery system to control what displays on the pages.
It always seemed thoroughly pointless to me. You wouldn't need multiple pages. The computer can "turn the page" without you having to physically turn the page.
But there is a use.
Imagine if each page of "paper" is a self-contained wifi-driven computer. Maybe it's paper the thickness of a credit card, with the edges not more electronic paper, but instead wafer-thin electronics.
Each page of paper could then be attached (magnetically, say) to the spine of the book. Or detached.
Then what you could do is disassemble the book. If there's something you need, "rip it out" and put it next to you where you can refer to it, play with it, change it however you need. When you're done, stick it back into the book.
It would effectively be a set of portable monitors - perhaps two dozen small monitors. They're relatively cheap, so you could actually pass them back and forth between collaborators... they're self-contained, frungible, and use insignificant power, so you could actually separate them from their book for a long time, swap them, submit papers on them, use them as game pieces... anything.
Now that, I think... that would be really useful. I would give up books and, probably, every other computer for that.
Tuesday, May 13, 2008
Monday, May 12, 2008
Mabinogi
This review makes me sad...
I downloaded the Mabinogi client. It took a long time, but I was kind of looking forward to the game. It looked very interesting, for an MMORPG. IE, it looked a little interesting. It was theoretically based on one of my favorite mythologies.
Upon creating an account and launching the client, it promptly downloads nProtect GameGuard. Ah GameGuard, how do I love thee? Wait, I can't find a way. GameGuard is one of the unabashedly intrusive "piracy protection systems" that doesn't even have the decency to close when you're not playing the game.
The game was originally Korean, and evidently they're okay with that sort of thing. I'm not.
But it was too late, so I decided to keep going with the intention to at least get a taste for the game. So I try to make a character.
I spend fifteen minutes picking out various little visual details. Colors, shapes of the mouth, etc.
It tells me that I can't make the character I want to make because I don't have a premium account.
It turns out that every single option I chose was not available. Only three or four options from each is available to those with a free account.
These are not, you know, important options. They're the color of the eye, the precise shape of the mouth. They could have at least popped something up that says, "hey, everything with this little symbol is paying customers only!"
So, not about to (A) keep GameGuard on my system a moment longer than required and (B) redesign my entire character, throwing away 15 minutes of work, I uninstalled the damn thing.
I HOPE it uninstalled GameGuard... I can't find any remnants, but with these inane, insane, idiotic, insulting, overbearing, big-brother, invasive little pieces of shit, you can't really be sure.
So, that's my review of Mabinogi.
I downloaded the Mabinogi client. It took a long time, but I was kind of looking forward to the game. It looked very interesting, for an MMORPG. IE, it looked a little interesting. It was theoretically based on one of my favorite mythologies.
Upon creating an account and launching the client, it promptly downloads nProtect GameGuard. Ah GameGuard, how do I love thee? Wait, I can't find a way. GameGuard is one of the unabashedly intrusive "piracy protection systems" that doesn't even have the decency to close when you're not playing the game.
The game was originally Korean, and evidently they're okay with that sort of thing. I'm not.
But it was too late, so I decided to keep going with the intention to at least get a taste for the game. So I try to make a character.
I spend fifteen minutes picking out various little visual details. Colors, shapes of the mouth, etc.
It tells me that I can't make the character I want to make because I don't have a premium account.
It turns out that every single option I chose was not available. Only three or four options from each is available to those with a free account.
These are not, you know, important options. They're the color of the eye, the precise shape of the mouth. They could have at least popped something up that says, "hey, everything with this little symbol is paying customers only!"
So, not about to (A) keep GameGuard on my system a moment longer than required and (B) redesign my entire character, throwing away 15 minutes of work, I uninstalled the damn thing.
I HOPE it uninstalled GameGuard... I can't find any remnants, but with these inane, insane, idiotic, insulting, overbearing, big-brother, invasive little pieces of shit, you can't really be sure.
So, that's my review of Mabinogi.
Sunday, May 11, 2008
Elegance and Complexity
I've been tearing up prototypes as fast as I can make them, pursuing something interesting. Let me describe it.
My first attempt, what sparked my interest, was to build a prototype for a kind of free running game. It was a one-player game with a stack of index cards representing "map tiles". The goal was to use a variety of relatively simple techniques to keep moving, and it featured a few simple pools that you draw on to perform moves. It was more of a toy, less of a game, I just wanted to see whether it could be done fun.
This kind of system, it occurred to me, could be useful in a variety of "skins". To prove the point, I made a system that used the exact same dynamics (set of pools, set of moves, and a self-building randomized map) to represent social interaction.
There were two problems with both of these games. The first problem was randomness: the way the maps were generated led to very weird structures (and personalities) that never would pass muster in a real game. The second problem was a lack of growth. To me, growth or progress is critical. These toys had none. They were simply "keep running, fool!"
It occurred to me that there was a connection between these two problems, so I began to explore the idea. The connection between chaos and progress.
In my exploration, I decided the connection was connection. In order for the larger scale to be interesting, it needs to have "clumpiness" or "roads" or whatever kinds of organized structure you can come up with.
This isn't actually a surprise, if you think about. The base play has these kinds of regularities. It makes sense that higher levels of play would be fundamentally the same. But a bit more depth, because there's something more to it than that...
In a game like, say, Dungeons and Dragons, you have a complex landscape of rules. But although the rules are complex, they are very regular. Certain "clumping", certain statistical groups, always crop up. Over and over. Both on a small scale - to-hit rolls, the potency of magic - and on a large scale - difficulty of monsters, level advancement.
I'm not talking about something weird and mystical, here. I'm talking simple patterns. For example, the magician gets few hit points. This is because he's not supposed to be taking the brunt of the combat, so you damn well better stick him in the back. The warrior's armor class improves as he gets better armor, but that same armor reduces his maximum dex bonus. Magical armor bypasses this pattern of better armor = less dex, but in return magical armor is rare and expensive.
So do you prefer +2 chain mail, or ordinary full plate? Just that simple decision results from the intersection of a few simple patterns: is the magical +2 better than the unaltered bonus from plate mail? Is your dex high enough to make it matter? The situation is complex not because the rules are complex, but because the situation lies on the intersection of half a dozen simple patterns that operate at different "levels".
Dungeons and Dragons isn't particularly elegant about this, but there are many games that are very elegant. Katamari Damacy is the obvious example. The patterns in Katamari Damacy - both in terms of gameplay rules and level construction - are very clear, very simple. They interact in a way that is simple as well... but still very interesting. I suspect there's a fundamental mathematical structure to the timing and layout, although I don't really know how I could even measure it...
A first person shooter has patterns as well. The interacting patterns of movement speed, level design, monster placement, resource allocation, weapon design, and the now-unavoidable "RPG element". If you want to simplify them, you can imagine each as a curve on a graph, and the juicy gameplay takes place where the curves intersect. They can't actually be simplified to a graph, of course, but it gives the basic idea: half a dozen colored wiggles that intersect in many places.
(In reality, I don't think they could even be simplified to a 4D chart... although maybe that's due to the fact that some things (such as level design) are actually a bunch of smaller, simpler patterns interacting!)
Now, this is all pretty simple, pretty basic. This really shouldn't come as much of a surprise to anyone. But if you think about it like I'm thinking about it, then there are some practices and predictions that you can make.
First, you have to remember that a game is the sum of all of its parts. Katamari Damacy is more than just gameplay: the fact that you recognize every silly object you're sucking up, the fact that it's about a kid with a really hilariously bad father, the fact that you're always helping people, all of that rolls up into a very nice bundle. Each of those elements can be thought of as a pattern that interacts, but there is a lot of complexity because they are cultural patterns. They are pieces of extremely, excessively complex patterns from the real world.
This muddies the water up significantly. Those patterns are harder to analyze (or, at least, require different analysis tools) than the much simpler, standalone gameplay patterns. Similarly, you can get away with a lot more immediately complex gameplay patterns if you base them on pre-existing patterns from other popular games... so if you're worried about how long it takes players to learn or become comfortable with various patterns, you'll find that you need to take that into account as well.
In order to try to get a sense for interacting patterns and how players deal with them, you have to account for "primed patterns" based on patterns the players are already familiar with. Otherwise, you'll end up with results that don't add up.
It isn't really feasible to make test games (or even prototypes) that leave out primed patterns, because every kind of play has some pre-existing example that will skew the player's reactions. Also, it is becoming obvious that the priming is a major part of player enjoyment, which makes sense, since it lets you tap into things they already enjoy and piggyback...
Although "pure" game tests are not possible, it may be possible to make a game that tests intersections without caring what the patterns are. If you have a pattern, it interacts with another pattern. By moderating that interaction (making it follow different rules), it should be able to be possible to test for optimal patterns of interaction between patterns.
It should be possible - in theory - to even replace patterns with other patterns to see the difference in optimal interaction algorithms. This would be a bit like spectrophotometry: you find out which "wavelengths" of interactions each pattern tends to produce, and from that you may be able to determine the "elemental makeup" of a complex pattern... but that's in the future. A more basic set of concerns:
There are definitely patterns that operate at different levels. For example, a fantasy game has a fantasy pattern (or, more accurately, a hundred interwoven patterns that don't separate very easily) that underlies the whole game. How does this pattern interact with, say, your combat pattern (which is also actually half a dozen interwoven patterns)? How "often" do they interact? How much "guidance" does one give the other? What kinds of interactions do they provide? Does it matter whether they operate in favor of the player, against the player, or in a more balanced role? Do those options even have meaning? Maybe accessible complexity of interaction is what matters, and not who the complexity favors.
Also, it's pretty clear that a game cannot be made out of single "threads" of pattern, because patterns tend to be imported in interwoven chunks. Does the player's familiarity with the pre-existing patterns cause them to essentially form a single pattern, or do we have to account for the internal "rubbing" of the cluster's patterns caused by our specific use of the cluster?
I've been trying to create prototypes, but none of them have been particularly good tests. Any ideas?
Hell, does anyone even know what I'm talking about?
My first attempt, what sparked my interest, was to build a prototype for a kind of free running game. It was a one-player game with a stack of index cards representing "map tiles". The goal was to use a variety of relatively simple techniques to keep moving, and it featured a few simple pools that you draw on to perform moves. It was more of a toy, less of a game, I just wanted to see whether it could be done fun.
This kind of system, it occurred to me, could be useful in a variety of "skins". To prove the point, I made a system that used the exact same dynamics (set of pools, set of moves, and a self-building randomized map) to represent social interaction.
There were two problems with both of these games. The first problem was randomness: the way the maps were generated led to very weird structures (and personalities) that never would pass muster in a real game. The second problem was a lack of growth. To me, growth or progress is critical. These toys had none. They were simply "keep running, fool!"
It occurred to me that there was a connection between these two problems, so I began to explore the idea. The connection between chaos and progress.
In my exploration, I decided the connection was connection. In order for the larger scale to be interesting, it needs to have "clumpiness" or "roads" or whatever kinds of organized structure you can come up with.
This isn't actually a surprise, if you think about. The base play has these kinds of regularities. It makes sense that higher levels of play would be fundamentally the same. But a bit more depth, because there's something more to it than that...
In a game like, say, Dungeons and Dragons, you have a complex landscape of rules. But although the rules are complex, they are very regular. Certain "clumping", certain statistical groups, always crop up. Over and over. Both on a small scale - to-hit rolls, the potency of magic - and on a large scale - difficulty of monsters, level advancement.
I'm not talking about something weird and mystical, here. I'm talking simple patterns. For example, the magician gets few hit points. This is because he's not supposed to be taking the brunt of the combat, so you damn well better stick him in the back. The warrior's armor class improves as he gets better armor, but that same armor reduces his maximum dex bonus. Magical armor bypasses this pattern of better armor = less dex, but in return magical armor is rare and expensive.
So do you prefer +2 chain mail, or ordinary full plate? Just that simple decision results from the intersection of a few simple patterns: is the magical +2 better than the unaltered bonus from plate mail? Is your dex high enough to make it matter? The situation is complex not because the rules are complex, but because the situation lies on the intersection of half a dozen simple patterns that operate at different "levels".
Dungeons and Dragons isn't particularly elegant about this, but there are many games that are very elegant. Katamari Damacy is the obvious example. The patterns in Katamari Damacy - both in terms of gameplay rules and level construction - are very clear, very simple. They interact in a way that is simple as well... but still very interesting. I suspect there's a fundamental mathematical structure to the timing and layout, although I don't really know how I could even measure it...
A first person shooter has patterns as well. The interacting patterns of movement speed, level design, monster placement, resource allocation, weapon design, and the now-unavoidable "RPG element". If you want to simplify them, you can imagine each as a curve on a graph, and the juicy gameplay takes place where the curves intersect. They can't actually be simplified to a graph, of course, but it gives the basic idea: half a dozen colored wiggles that intersect in many places.
(In reality, I don't think they could even be simplified to a 4D chart... although maybe that's due to the fact that some things (such as level design) are actually a bunch of smaller, simpler patterns interacting!)
Now, this is all pretty simple, pretty basic. This really shouldn't come as much of a surprise to anyone. But if you think about it like I'm thinking about it, then there are some practices and predictions that you can make.
First, you have to remember that a game is the sum of all of its parts. Katamari Damacy is more than just gameplay: the fact that you recognize every silly object you're sucking up, the fact that it's about a kid with a really hilariously bad father, the fact that you're always helping people, all of that rolls up into a very nice bundle. Each of those elements can be thought of as a pattern that interacts, but there is a lot of complexity because they are cultural patterns. They are pieces of extremely, excessively complex patterns from the real world.
This muddies the water up significantly. Those patterns are harder to analyze (or, at least, require different analysis tools) than the much simpler, standalone gameplay patterns. Similarly, you can get away with a lot more immediately complex gameplay patterns if you base them on pre-existing patterns from other popular games... so if you're worried about how long it takes players to learn or become comfortable with various patterns, you'll find that you need to take that into account as well.
In order to try to get a sense for interacting patterns and how players deal with them, you have to account for "primed patterns" based on patterns the players are already familiar with. Otherwise, you'll end up with results that don't add up.
It isn't really feasible to make test games (or even prototypes) that leave out primed patterns, because every kind of play has some pre-existing example that will skew the player's reactions. Also, it is becoming obvious that the priming is a major part of player enjoyment, which makes sense, since it lets you tap into things they already enjoy and piggyback...
Although "pure" game tests are not possible, it may be possible to make a game that tests intersections without caring what the patterns are. If you have a pattern, it interacts with another pattern. By moderating that interaction (making it follow different rules), it should be able to be possible to test for optimal patterns of interaction between patterns.
It should be possible - in theory - to even replace patterns with other patterns to see the difference in optimal interaction algorithms. This would be a bit like spectrophotometry: you find out which "wavelengths" of interactions each pattern tends to produce, and from that you may be able to determine the "elemental makeup" of a complex pattern... but that's in the future. A more basic set of concerns:
There are definitely patterns that operate at different levels. For example, a fantasy game has a fantasy pattern (or, more accurately, a hundred interwoven patterns that don't separate very easily) that underlies the whole game. How does this pattern interact with, say, your combat pattern (which is also actually half a dozen interwoven patterns)? How "often" do they interact? How much "guidance" does one give the other? What kinds of interactions do they provide? Does it matter whether they operate in favor of the player, against the player, or in a more balanced role? Do those options even have meaning? Maybe accessible complexity of interaction is what matters, and not who the complexity favors.
Also, it's pretty clear that a game cannot be made out of single "threads" of pattern, because patterns tend to be imported in interwoven chunks. Does the player's familiarity with the pre-existing patterns cause them to essentially form a single pattern, or do we have to account for the internal "rubbing" of the cluster's patterns caused by our specific use of the cluster?
I've been trying to create prototypes, but none of them have been particularly good tests. Any ideas?
Hell, does anyone even know what I'm talking about?
Friday, May 09, 2008
It's a nail! They're all nails!
Did you ever think you might have the wrong approach?
I understand that some problems are easier to solve with brute force. Brute force tends to be exponential, though, so as the project grows, the amount of brute force required grows faster. How big does something have to get before the amount of brute force becomes prohibitive?
Ask the RIAA, they've found the edge.
To me, when I see a brute force approach, I think "Oh! Look! A puzzle!"
To me, word filters aren't the right solution. People are going to express themselves regardless of what words you filter, and there are quite a few people who are more offended by the filters than by the language. For example, someone saying "the dumbfuck totally reamed me up the ass with a cactus when he ditched" is fine by me. When some twelve-year-old starts spamming, it doesn't matter whether he's spamming homophobic swears in caps or just a large number of random symbols. Either way, he's a nuisance in a way that my potty-mouthed friend is not.
To me, a word filter is a desperate attempt to cover asses, not an attempt to actually solve any kind of problem. That's the problem with a brute-force approach: it's usually treating symptoms, not diseases. Dying of cancer but with wonderfully clear sinuses is still dying.
The issue here is that the disease is not one that actually relates to chatting. In fact, it has many symptoms endemic to the game world that have nothing to do with chatting. (Hah! I used "endemic" properly! HA HAHAHA! Well, I can cross that off my list...)
What is the disease?
Maybe it's lupus!
Hee hee... no, actually, lupus is a pretty good analogy. Lupus is an auto-immune disorder that causes the body to attack itself. That's pretty much what MMOGs are doing: some bits of the body (certain players) are viciously interfering with other bits of the body (everyone who is not a dick).
The question is not "why is player A griefing player B". We already know why: players are dicks. The question is "what design would make player A unable or unwilling to grief player B without reducing the fun for either of them?"
I think it has to do with population density, and I've got a lot of little theories on exactly how and why... but what do you guys think?
...
Finally! A case of lupus!
I understand that some problems are easier to solve with brute force. Brute force tends to be exponential, though, so as the project grows, the amount of brute force required grows faster. How big does something have to get before the amount of brute force becomes prohibitive?
Ask the RIAA, they've found the edge.
To me, when I see a brute force approach, I think "Oh! Look! A puzzle!"
To me, word filters aren't the right solution. People are going to express themselves regardless of what words you filter, and there are quite a few people who are more offended by the filters than by the language. For example, someone saying "the dumbfuck totally reamed me up the ass with a cactus when he ditched" is fine by me. When some twelve-year-old starts spamming, it doesn't matter whether he's spamming homophobic swears in caps or just a large number of random symbols. Either way, he's a nuisance in a way that my potty-mouthed friend is not.
To me, a word filter is a desperate attempt to cover asses, not an attempt to actually solve any kind of problem. That's the problem with a brute-force approach: it's usually treating symptoms, not diseases. Dying of cancer but with wonderfully clear sinuses is still dying.
The issue here is that the disease is not one that actually relates to chatting. In fact, it has many symptoms endemic to the game world that have nothing to do with chatting. (Hah! I used "endemic" properly! HA HAHAHA! Well, I can cross that off my list...)
What is the disease?
Maybe it's lupus!
Hee hee... no, actually, lupus is a pretty good analogy. Lupus is an auto-immune disorder that causes the body to attack itself. That's pretty much what MMOGs are doing: some bits of the body (certain players) are viciously interfering with other bits of the body (everyone who is not a dick).
The question is not "why is player A griefing player B". We already know why: players are dicks. The question is "what design would make player A unable or unwilling to grief player B without reducing the fun for either of them?"
I think it has to do with population density, and I've got a lot of little theories on exactly how and why... but what do you guys think?
...
Finally! A case of lupus!
Thursday, May 08, 2008
Open that little black box, yeah!
The other day, I was talking to a friend about those distributed computing things, like SETI@home and the protein folding thing. The protein one interested me. I said something like:
"The weird thing is, we don't know the algorithm for protein folding - not even a little. So they're probably folding at random and then, what, testing to see whether any of the folding was close to a physical test fold?
"Maybe they're testing folding algorithms? Like ALife, testing to see which algorithms produce closest to known results, reproducing the best? No, that would require one hell of a breakthrough in an unrelated field before it could be done..."
Apparently, they were musing the same things I was musing, because they've largely given up on the idea of using your spare CPU cycles to randomly fold things. Now they're using YOUR spare cycles to make YOU randomly fold things. In all honesty, that's a much, much better idea.
Still, even with this new, less stupid method, I don't think anything will come of it. All of these things stink of bad grant allocation. Sort of like when you see those images of children on milk cartons, and they say things like "32 billion children who go missing are rescued every year..."
Yeah, but how many of them were rescued because their faces were on milk cartons? Zero? Negative two?
Protein folding is an important endeavor, but does this help? Even if it does, WHO does it help? Who gets the final patent? Who gets to charge $120 a milligram?
Anyway, check it out. See if you disagree.
http://www.fold.it/portal/adobe_main/
"The weird thing is, we don't know the algorithm for protein folding - not even a little. So they're probably folding at random and then, what, testing to see whether any of the folding was close to a physical test fold?
"Maybe they're testing folding algorithms? Like ALife, testing to see which algorithms produce closest to known results, reproducing the best? No, that would require one hell of a breakthrough in an unrelated field before it could be done..."
Apparently, they were musing the same things I was musing, because they've largely given up on the idea of using your spare CPU cycles to randomly fold things. Now they're using YOUR spare cycles to make YOU randomly fold things. In all honesty, that's a much, much better idea.
Still, even with this new, less stupid method, I don't think anything will come of it. All of these things stink of bad grant allocation. Sort of like when you see those images of children on milk cartons, and they say things like "32 billion children who go missing are rescued every year..."
Yeah, but how many of them were rescued because their faces were on milk cartons? Zero? Negative two?
Protein folding is an important endeavor, but does this help? Even if it does, WHO does it help? Who gets the final patent? Who gets to charge $120 a milligram?
Anyway, check it out. See if you disagree.
http://www.fold.it/portal/adobe_main/
Saturday, May 03, 2008
Generating Uniqueness
Once again, I'm interested in how to generate unique content. For me, this usually means NPCs. After all, if you can generate unique NPCs, everything else is easy. :D
To me, there are a few specific types of NPC uniqueness to be achieved. Let me go over them.
The first, and easiest, is simple statistical deviation. He's got a strength of twelve, she's five foot three, he has a kindness of 43, she has a longsword +4 vs dragons. Whatever. Also included here is anything where you have a fair number of options that are a list, rather than generated on the fly. For example, hair type or elemental alignment.
Statistical deviation is good because it is fairly cheap to implement and allows for detailed feedback. If his strength is twelve, he can just barely lift the grate. If she's five foot three, you look down on her head and can't find her in a crowd. Both scripted and emergent feedback are fairly easy (scripted: the grate requires 11 strength, emergent: people obscure the camera, so you can't see the girl).
However, statistical deviation is fairly boring, especially when using large numbers of characters, very small numbers of characters, or player-rolled characters. In these situations, the deviation is either too weak, too random, or a maddening gambling game (click reroll eight billion times).
If you don't see why, try rolling up random characters in your favorite tabletop RPG. If you roll up a few, you end up with weird, pointless characters that would never make a good party. Roll up a lot, you start to lose track of which characters are "interesting", and even which exist. Try to roll up the best you can get, you'll find there's always something that's not quite how you wanted it... maybe next time!
So, you need more than statistical deviation. Another method is associative deviation, which associates characters with some in-world thing to give them an anchor. This random character is a member of the mage's guild. That random character is in love with the queen. That character is an outcast, and that character is a republican. Alignments are a typical example of this, although I really hate alignments.
These are different from things like elemental damage type and hair color because associative deviation gives you a "path" between characters, other characters, places, and actions. Mage guild members "clump up" and cooperate. Outcasts are treated like crap by almost everyone. Lawful evil people tend to pursue specific activities. I mean, if hair color or elemental damage type is a significant cause of social "clumping", then sure, it's associative rather than statistical deviation.
These are not too difficult to create, and you can weight them to show up more frequently or less frequently based on a large number of factors. This allows you to create a pleasantly "bumpy" "topology" of NPCs instead of the painfully bland "field of nameless NPCs all alike".
Obviously, categories are just approximations. Some things will be both statistical and associative. For example, how wealthy you are. It's a simple statistical deviation, but it has emergent (and probably scripted) effects on how you interact with the game world.
...
Those are the two easy methods of generating unique characters, but while they create unique characters, they don't really create unique characters. Worlds inhabited by such NPCs feel kind of flat and full of pointlessness, although it can be a good starting point for a few scripters aiming to generate a few thousand NPCs.
There are a few more ways of generating unique characters, which I'll explain.
One is superlative deviation. This is basically statistical deviation, except taken to an absurd extreme. For example, the range of strength might be 20-80. This character has -32, or maybe 499. By falling massively outside the bounds of common power, the deviation causes him to be very unique. Of course, it needs to be very uncommon: if every tenth person has superlative strength, it's not really very unique or interesting. Similarly, the character has to know he has superlative whatever and adapt his performance (and, preferably, his social interactions) to his superlatives.
There are a wide variety of superlatives that don't require any kind of baseline statistical deviation. For example, you probably won't have statistical deviation on how well someone can hear, but you can certainly have someone who is deaf, or someone who can hear people's heartbeats from a mile away.
The difficulty with superlatives is balance. You either have to throw balance out the window, or you have to carefully control who can be superlative, when and where.
Another kind of uniqueness you can have is reactive deviation, in which a character is given a very unusual, unique way to react to certain kinds of things. For example, one character might be allergic to sunlight. Or maybe a character is terrified of the water. Maybe someone really, really likes donuts.
It's actually not too difficult to whip up a few thousand unique combinations using a few simple tables, but you need to have a character AI advanced enough to change its actions based on its goals and reactions. It needs to be able to hunt for donuts, or notice water and react to it. Moreover, it can't be blind about it: someone who really likes donuts is not going to jump off a cliff after that Krispy Kreme, unless you're doing a comedy game. He's just going to get really angry at whoever wasted the donut. Similarly, the man who fears water needs to be able to try to fight that fear if circumstances require.
This also covers characters with unusual or reversed progressions. For example, if someone starts at a high level and loses levels as he gains experience. That's not such a flat example as a fear of water, but it falls in the same category.
Obviously, this requires pretty solid AI and a fairly good sim, although it's not impossible. My favorite side effect of this is that it's pretty easy to make a character arc out of their strange reactions: he has to overcome his fear of water, that one has to fight his donut-stuffing mouth or fail the team...
However, my favorite kind of uniqueness is recombinant content. This has an easy example, but it's nightmarishly complex at the deepest levels.
The example for recombinant content is the ability to combine a wide variety of clothes templates and color them however you want. If you want shorts and a green polo shirt, fine. If you want fishnet stockings and a fuzzy bodice, fine. If you want fishnet stockings and a green polo shirt, fine.
This allows the player to create a unique look out of a wide variety of pieces.
The problem with it is twofold. First, the characters have to have a heuristic to keep from idiotic combos (IE, fishnets and polo shirts). This isn't too terribly hard with clothes - a few subculture markers and some basic color rules will do the trick. But the second problem is that clothes are a rotten, shallow example.
Instead, the real example is the character of the character. While characters have a baseline AI that handles the basics and may have statistical deviations for personality traits, the personalities these produce is bland at best and terribly broken at worst.
Instead, a series of "pieces" could be combined, like combining clothes. Like clothes, the pieces can vary in and of themselves, having different "colors", "patterns", "layouts", "textures", "prints", whatever you can think of that might have a correlation.
"Pieces" are significantly more complex than clothes, largely because they're not exactly clearly defined, are they? Are pieces memories of past events? Or are they special personality tendencies to give someone that interesting, subtle oddness? Or maybe they're connections to other characters and places? Or buried elemental capabilities that tend to surface, granting both power and odd behavior?
The choices are essentially unlimited, which is the most difficult part of this, for me. Because, when you implement it, you have to cut the choices down to just a very select subset. One you can not only build heuristics for assembling, but one that you can make have effects in game that make sense.
Anyhow, those are my five ways of making unique characters. Anything to add or comment on?
To me, there are a few specific types of NPC uniqueness to be achieved. Let me go over them.
The first, and easiest, is simple statistical deviation. He's got a strength of twelve, she's five foot three, he has a kindness of 43, she has a longsword +4 vs dragons. Whatever. Also included here is anything where you have a fair number of options that are a list, rather than generated on the fly. For example, hair type or elemental alignment.
Statistical deviation is good because it is fairly cheap to implement and allows for detailed feedback. If his strength is twelve, he can just barely lift the grate. If she's five foot three, you look down on her head and can't find her in a crowd. Both scripted and emergent feedback are fairly easy (scripted: the grate requires 11 strength, emergent: people obscure the camera, so you can't see the girl).
However, statistical deviation is fairly boring, especially when using large numbers of characters, very small numbers of characters, or player-rolled characters. In these situations, the deviation is either too weak, too random, or a maddening gambling game (click reroll eight billion times).
If you don't see why, try rolling up random characters in your favorite tabletop RPG. If you roll up a few, you end up with weird, pointless characters that would never make a good party. Roll up a lot, you start to lose track of which characters are "interesting", and even which exist. Try to roll up the best you can get, you'll find there's always something that's not quite how you wanted it... maybe next time!
So, you need more than statistical deviation. Another method is associative deviation, which associates characters with some in-world thing to give them an anchor. This random character is a member of the mage's guild. That random character is in love with the queen. That character is an outcast, and that character is a republican. Alignments are a typical example of this, although I really hate alignments.
These are different from things like elemental damage type and hair color because associative deviation gives you a "path" between characters, other characters, places, and actions. Mage guild members "clump up" and cooperate. Outcasts are treated like crap by almost everyone. Lawful evil people tend to pursue specific activities. I mean, if hair color or elemental damage type is a significant cause of social "clumping", then sure, it's associative rather than statistical deviation.
These are not too difficult to create, and you can weight them to show up more frequently or less frequently based on a large number of factors. This allows you to create a pleasantly "bumpy" "topology" of NPCs instead of the painfully bland "field of nameless NPCs all alike".
Obviously, categories are just approximations. Some things will be both statistical and associative. For example, how wealthy you are. It's a simple statistical deviation, but it has emergent (and probably scripted) effects on how you interact with the game world.
...
Those are the two easy methods of generating unique characters, but while they create unique characters, they don't really create unique characters. Worlds inhabited by such NPCs feel kind of flat and full of pointlessness, although it can be a good starting point for a few scripters aiming to generate a few thousand NPCs.
There are a few more ways of generating unique characters, which I'll explain.
One is superlative deviation. This is basically statistical deviation, except taken to an absurd extreme. For example, the range of strength might be 20-80. This character has -32, or maybe 499. By falling massively outside the bounds of common power, the deviation causes him to be very unique. Of course, it needs to be very uncommon: if every tenth person has superlative strength, it's not really very unique or interesting. Similarly, the character has to know he has superlative whatever and adapt his performance (and, preferably, his social interactions) to his superlatives.
There are a wide variety of superlatives that don't require any kind of baseline statistical deviation. For example, you probably won't have statistical deviation on how well someone can hear, but you can certainly have someone who is deaf, or someone who can hear people's heartbeats from a mile away.
The difficulty with superlatives is balance. You either have to throw balance out the window, or you have to carefully control who can be superlative, when and where.
Another kind of uniqueness you can have is reactive deviation, in which a character is given a very unusual, unique way to react to certain kinds of things. For example, one character might be allergic to sunlight. Or maybe a character is terrified of the water. Maybe someone really, really likes donuts.
It's actually not too difficult to whip up a few thousand unique combinations using a few simple tables, but you need to have a character AI advanced enough to change its actions based on its goals and reactions. It needs to be able to hunt for donuts, or notice water and react to it. Moreover, it can't be blind about it: someone who really likes donuts is not going to jump off a cliff after that Krispy Kreme, unless you're doing a comedy game. He's just going to get really angry at whoever wasted the donut. Similarly, the man who fears water needs to be able to try to fight that fear if circumstances require.
This also covers characters with unusual or reversed progressions. For example, if someone starts at a high level and loses levels as he gains experience. That's not such a flat example as a fear of water, but it falls in the same category.
Obviously, this requires pretty solid AI and a fairly good sim, although it's not impossible. My favorite side effect of this is that it's pretty easy to make a character arc out of their strange reactions: he has to overcome his fear of water, that one has to fight his donut-stuffing mouth or fail the team...
However, my favorite kind of uniqueness is recombinant content. This has an easy example, but it's nightmarishly complex at the deepest levels.
The example for recombinant content is the ability to combine a wide variety of clothes templates and color them however you want. If you want shorts and a green polo shirt, fine. If you want fishnet stockings and a fuzzy bodice, fine. If you want fishnet stockings and a green polo shirt, fine.
This allows the player to create a unique look out of a wide variety of pieces.
The problem with it is twofold. First, the characters have to have a heuristic to keep from idiotic combos (IE, fishnets and polo shirts). This isn't too terribly hard with clothes - a few subculture markers and some basic color rules will do the trick. But the second problem is that clothes are a rotten, shallow example.
Instead, the real example is the character of the character. While characters have a baseline AI that handles the basics and may have statistical deviations for personality traits, the personalities these produce is bland at best and terribly broken at worst.
Instead, a series of "pieces" could be combined, like combining clothes. Like clothes, the pieces can vary in and of themselves, having different "colors", "patterns", "layouts", "textures", "prints", whatever you can think of that might have a correlation.
"Pieces" are significantly more complex than clothes, largely because they're not exactly clearly defined, are they? Are pieces memories of past events? Or are they special personality tendencies to give someone that interesting, subtle oddness? Or maybe they're connections to other characters and places? Or buried elemental capabilities that tend to surface, granting both power and odd behavior?
The choices are essentially unlimited, which is the most difficult part of this, for me. Because, when you implement it, you have to cut the choices down to just a very select subset. One you can not only build heuristics for assembling, but one that you can make have effects in game that make sense.
Anyhow, those are my five ways of making unique characters. Anything to add or comment on?
Friday, May 02, 2008
Hooray for the Uncanny Valley...
The video I've seen of GTA4 is irritating to me, because they still use canned animations... I find canned animations are distractingly inhuman. "Uncanny", yes. Especially if they're "realistic".
Well, for those who want to know more about the uncanny valley, there's a series on youtube. Although it's not exactly in depth (it bears an uncanny-valley resemblance to an actual paper on the subject ;) ), it has some interesting ideas and it's from someone who is definitely an authority in the field.
Well, for those who want to know more about the uncanny valley, there's a series on youtube. Although it's not exactly in depth (it bears an uncanny-valley resemblance to an actual paper on the subject ;) ), it has some interesting ideas and it's from someone who is definitely an authority in the field.
Subscribe to:
Posts (Atom)