The big thing these days is to let your players choose. Sometimes, these choices relate to the fact that it's an open world where any issue can be approached in a thousand ways. Sometimes, these choices are scripted nodes in the plot.
Let's skip the weaknesses of scripting choice, except to say that it's not a very scalable or satisfying method of adding choice to a game.
However, adding choice to the world itself...
A lot of games have done this pretty well. Crackdown and Skate are two examples.
Usually, this is tactical choice. Approaching a situation from any direction you please, carefully allowed by permissive level design.
But this method is also flawed. The difficulty here is that if you let a player choose, he'll choose the same thing over and over again.
For example, in Crackdown I killed every single boss by kicking them in the face. Whether this was algorithmically a dominant strategy or not, I certainly felt it was. I never felt any urge to kill bosses using guns or grenades or whatever.
Skate took this problem in hand by giving you missions that specifically required different actions. This mission is about grinding, this one's about jumping through a hole, this one is about long air, this one's a race...
Therefor, Skate had the opposite problem. While I very much enjoyed the game, occasionally a mission would be snap-your-controller level frustrating. I can rack up ten thousand points in thirty seconds, no problem, but don't ask me to manual to jump to manual, that's just too hard. Let alone those races, which were just asinine.
While Skate's physics give the player freedom of choice, the actual "plot" was engineered to make you experience the full range of abilities. That's not a bad idea... except when you take it to extremes and require the player to excel in every ability in order to advance. That kind of defeats the purpose of choosing in the first place.
As another example, I have always loved the old Buck Rogers games. Ancient things programmed in a familiar engine, but better.
Back in those days, they were happy to let you build every member of your party from scratch. Unlike normal D&D, things didn't always boil down to combat: it was common to have to do zero-G maneuvers, naval combat, bomb defusing, fast talking, and so forth. So the game wasn't so much about minmaxing for combat.
But, like the worst in Skate and Crackdown combined, this game required you to both excel at everything and once you had decided on an approach you were basically stuck doing it for the rest of the game.
Scripted choices have this problem as well. How many people actually "risked falling" in KOTOR? 99% of the players either always chose good or always chose evil. Even though there was a choice, it was only a choice. One choice. Made near the beginning of the game.
Similarly, did anyone actually kill a few of the Little Sisters? I'm pretty sure that everyone either killed them all or saved them all.
In both cases, there might be a few outliers where the player changed their mind halfway through. For example, I wanted to be Sith in KOTOR... but after a few planets I found that "evil" was just another word for "spoiled thirteen-year-old boy", and didn't really have any urge to re-visit that particular phase of my life. So I became "good", which is apparently just another word for "naive thirteen-year-old girl". Which is better only in that I have never been one before.
"Choice" in games... no. Never put "choice" in games.
Put in choices.
Friday, December 14, 2007
Monday, December 10, 2007
I Hate Ads!
A rant with an optimistic end.
I've ranted about ads before, especially that sniveling, puss-filled little piece of blue shit that advertises free smileys and yells "HELLOOOOO?" at max volume whenever you happen to put your mouse somewhere nearby. Like, say, if you want to get from your tab bar to the page you want to look at.
Of course, technology of any kind is always perverted into scummy stains on the face of culture and humanity by the fourth worst kind of person on the planet: advertisers.
I'm a big fan of this nightmarish piece of crap. I especially like that the putrid blot parading as a human being isn't even sorry he's abusing it. "Well, I'm sorry you feel that advertising our shitty show INSIDE YOUR HEAD is bad. You'll get used to it." It's bad enough that the show itself is completely devoid of any value.
I especially like that the article, written to be carefully neutral, is a narrow strip between ads, with ads above and below as well.
I believe that there are a steadily growing number of people who react as I do. Let's call them "early adopters". We are so offended by intrusive ads that we actively blacklist any company that uses them. If I didn't have a spam filter to automatically kill ads from eBay and Amazon, I wouldn't use them. They spam your ass. Invasive advertising of a sort I can stand simply because I bounce the motherfuckers.
At the moment, we of the impermeable personal space are not a significant force: most of these invasive ads target hyperactive ten-year-olds and adults whose technical savvy can be charitably described as limited. The fact that the ads piss us off doesn't matter, because we weren't planning on downloading their smiley-encrusted malware or watching their vapid piece of crap anyway.
But I can't help but think about how geeks were when I was a kid. Nothing was marketed to geeks except personal computers. Everything else was marketed to the general public, because by and large the general public was where all the money was. Not only were geeks few in number, but individual geeks didn't have more than double the purchasing power of the general public.
Well, nowadays a lot more people are free to grow up geeky. I would say that the geek percentage of the population outnumbers (and overlaps) any given minority. Nowadays geekhood drives product design all across the board. Executives and sports fans buy Blackberries and iPhones. Everyone's a geek these days. Everyone's a technophile, to some extent.
You have to be, because if you can't use the geek tech, you can't compete.
I can't help but think that we're going to have the same switch in public opinion about ads. I think that in a generation, a significant chunk of the population is going to be advertised to using only rigorous opt-in and word of mouth. I think that, in many ways, the world will become a smaller, more personal place thanks to the power of technology.
I think this will happen because the ads are and will become more of a measurable negative influence. In order to live well, you will have to cut ads from your life.
You will have to, because if you can't block the ads, you won't be able to compete.
I'm not a doomsayer who believes that tomorrow will be blanketed in ads. I don't believe that the next generation of ad will be effectively memetic mind control. I think humanity will reject ads and, perhaps, centralized news.
I think our children will grow up on the cusp. Our children will see the final assault by the old, great "memes" of advertising, propaganda, and religion. And our children will win, because it is impossible for an idea to win if it is hated deeply enough.
Their children will grow up in a land where all the billboards are blank.
I think the world will feel much smaller. I don't think we'll have a unified global society. I don't think anyone really wants that. I think we'll have one better: global friendship.
Of course, by "we" I mean "them", unless you biologists stop lazing about and get crackin' on that youth serum. Chop chop.
Anyway, that's your dose of future for the day. :D
...
PS: Apparently, when I'm angry enough, I fall back to about four preclauses. Of course, I can't help but think in that way I especially like.
I've ranted about ads before, especially that sniveling, puss-filled little piece of blue shit that advertises free smileys and yells "HELLOOOOO?" at max volume whenever you happen to put your mouse somewhere nearby. Like, say, if you want to get from your tab bar to the page you want to look at.
Of course, technology of any kind is always perverted into scummy stains on the face of culture and humanity by the fourth worst kind of person on the planet: advertisers.
I'm a big fan of this nightmarish piece of crap. I especially like that the putrid blot parading as a human being isn't even sorry he's abusing it. "Well, I'm sorry you feel that advertising our shitty show INSIDE YOUR HEAD is bad. You'll get used to it." It's bad enough that the show itself is completely devoid of any value.
I especially like that the article, written to be carefully neutral, is a narrow strip between ads, with ads above and below as well.
I believe that there are a steadily growing number of people who react as I do. Let's call them "early adopters". We are so offended by intrusive ads that we actively blacklist any company that uses them. If I didn't have a spam filter to automatically kill ads from eBay and Amazon, I wouldn't use them. They spam your ass. Invasive advertising of a sort I can stand simply because I bounce the motherfuckers.
At the moment, we of the impermeable personal space are not a significant force: most of these invasive ads target hyperactive ten-year-olds and adults whose technical savvy can be charitably described as limited. The fact that the ads piss us off doesn't matter, because we weren't planning on downloading their smiley-encrusted malware or watching their vapid piece of crap anyway.
But I can't help but think about how geeks were when I was a kid. Nothing was marketed to geeks except personal computers. Everything else was marketed to the general public, because by and large the general public was where all the money was. Not only were geeks few in number, but individual geeks didn't have more than double the purchasing power of the general public.
Well, nowadays a lot more people are free to grow up geeky. I would say that the geek percentage of the population outnumbers (and overlaps) any given minority. Nowadays geekhood drives product design all across the board. Executives and sports fans buy Blackberries and iPhones. Everyone's a geek these days. Everyone's a technophile, to some extent.
You have to be, because if you can't use the geek tech, you can't compete.
I can't help but think that we're going to have the same switch in public opinion about ads. I think that in a generation, a significant chunk of the population is going to be advertised to using only rigorous opt-in and word of mouth. I think that, in many ways, the world will become a smaller, more personal place thanks to the power of technology.
I think this will happen because the ads are and will become more of a measurable negative influence. In order to live well, you will have to cut ads from your life.
You will have to, because if you can't block the ads, you won't be able to compete.
I'm not a doomsayer who believes that tomorrow will be blanketed in ads. I don't believe that the next generation of ad will be effectively memetic mind control. I think humanity will reject ads and, perhaps, centralized news.
I think our children will grow up on the cusp. Our children will see the final assault by the old, great "memes" of advertising, propaganda, and religion. And our children will win, because it is impossible for an idea to win if it is hated deeply enough.
Their children will grow up in a land where all the billboards are blank.
I think the world will feel much smaller. I don't think we'll have a unified global society. I don't think anyone really wants that. I think we'll have one better: global friendship.
Of course, by "we" I mean "them", unless you biologists stop lazing about and get crackin' on that youth serum. Chop chop.
Anyway, that's your dose of future for the day. :D
...
PS: Apparently, when I'm angry enough, I fall back to about four preclauses. Of course, I can't help but think in that way I especially like.
Saturday, December 08, 2007
Blather
It's said (incorrectly) that Eskimos have over a hundred words for snow... it wouldn't have surprised me if it were true, since Americans have at least two dozen words for "talk meaninglessly"...
Thursday, December 06, 2007
Defined by Relationships
More on social simulation
For the past few months I've been studying language, especially Pinker's stuff and, therefore, Allen Fiske's stuff.
It's always been a common approach to try to simulate characters by focusing on the relationships a character has. The only more common approach is to do a goal-focused approach, and in most of the tries I've seen, both are used.
Fiske's basic idea is that there are four basic kinds of social relationships: Authority Ranking, Equality Matching, Market Pricing, and Communal Sharing. In English these are "Who's the boss", "tit for tat", "barter", and, um... communal sharing. That last one means that you treat a group as equivalent to a single person - for example, all blonds are dumb, you always help your family, everyone shares the roads, and politicians are liars.
This sounds like a pretty great basis, doesn't it? I mean, you could set up characters to think in these terms no problem.
The issue that instantly pops up is that relationships are not as transparent as you might presume. For example, when someone is in your home, they are a guest. When you are in their home, you are the guest. Similarly, a waitress won't ask you what kind of appetizer you want if you meet her in a bookshop.
Some of Pinker's work is based on the idea that much of the complexity of language arises from negotiating these relationships implicitly. For example, your parents teach you to say "please" and "thank you" because these allow you to make demands without entering into an authoritative relationship.
Some more of Pinker's work is based on the idea that ideas and other nonphysical things can be discussed as if they were physical things. Moving a meeting from Thursday to Friday, for example.
Combining these ideas is fairly obvious: if you can encode a situation into a relationship, you can have a wide diversity of relationships that are realistic. For example, you could simply say that the waitress relationship only exists while she's working at that restaurant. Or you can say that someone is only a mother to specific children. Or you can say that a general is only in a position of authority in military matters.
Even then, you're likely to miss subtleties. For example, a guest. What kind of relationship do you have to a guest? You're expected to make them feel welcome, to play the host, but what kind of relationship is that, exactly? Is it giving them some level of authority? What are the limits of that relationship? Similarly, while a politician technically is in a position of authority over me, it is a very disperse and indirect thing: in person, he has absolutely no authority over me and, in fact, would probably be glared at quite a lot.
Actually, what about being glared at? What kind of relationship is dislike? You could, I suppose, argue that it's a kind of negative communal sharing: you are specifically partitioning yourself from this person, specifically not sharing. This basis could, in turn, make you more aggressive and opportunistic in future social relationships with this person...
As you can see, the complexities quickly begin to build. In order to simulate something resembling common human experience, it is necessary to create a wide variety of potential situations to relate over. For example, can you share your hopes with someone? You need to be able to, for a decent social simulation. So "hopes" need to have some kind of representation in the world. Probably several, since there are hopes like dreams of the future, and hopes like what we think might arise out of something, and hopes like hoping something we cannot see has gone well...
Of course, it's not just a representation of hope, but also a social stigma attached to that representation. Me, I'm happy to tell most of my hopes on almost every scale to anyone who seems geeky... but I'm not likely to share my actual personal life. On the other hand, I know people who refuse to talk about what they want long-term while sober, but are fine with giving the gory details of their latest break-up.
Do we each have a defined relationship to representations of concepts? Perhaps so, but if so, we need to add some kind of "personal space" or "importance" relationship, because I can't see any way of representing what value I place on something in what contexts using the Fiske four. (Also, I think that equality matching and market pricing are fundamentally the same and should not be represented separately... so I guess it would still be four relationship types?)
As usual, it gets really, really gory the closer to implementation you get. The reason for this, as Murray Gell-Mann explains, is because any given situation is not descended from a core algorithm, but from such an algorithm plus a metric butt-ton of random chance building on random chance.
Our social algorithm is probably something fairly simple, although it may be difficult to express using English and more easy to express with math. But our actual social situation - both personal and cultural - is not a result of that algorithm. It's a result of that algorithm plus our life and the residue of the lives of our ancestors back at least four centuries.
We cannot "grow" a culture that is like ours, even if we use the same algorithm. We might develop a culture that is human-like, but it will feel as alien to us as if we were riding with Attila the Hun... and not necessarily very entertaining at all.
Attempting to reconstruct our culture, even simplified, is a monumental task involving listing a huge number of objects, cultural norms, microcultures, standard relationships within microcultures... Ugh!
In my mind, this approach cannot be used to create social play unless it is created by somehow harnessing the power of thousands of players that build the culture over a large period of time.
On the other hand, it may be possible to generalize all of our little obsessions and create something vaguely interesting to interact with that way... still, bottom-up is not the answer at the moment.
Instead, I prefer to build a framework of interesting content, ignoring all the details, and then basically just picking from column A and column B. Then I can focus on social reactions to this content, rather than having to simulate a history with that content or the other characters involved...
Either way, not very straight forward at all.
For the past few months I've been studying language, especially Pinker's stuff and, therefore, Allen Fiske's stuff.
It's always been a common approach to try to simulate characters by focusing on the relationships a character has. The only more common approach is to do a goal-focused approach, and in most of the tries I've seen, both are used.
Fiske's basic idea is that there are four basic kinds of social relationships: Authority Ranking, Equality Matching, Market Pricing, and Communal Sharing. In English these are "Who's the boss", "tit for tat", "barter", and, um... communal sharing. That last one means that you treat a group as equivalent to a single person - for example, all blonds are dumb, you always help your family, everyone shares the roads, and politicians are liars.
This sounds like a pretty great basis, doesn't it? I mean, you could set up characters to think in these terms no problem.
The issue that instantly pops up is that relationships are not as transparent as you might presume. For example, when someone is in your home, they are a guest. When you are in their home, you are the guest. Similarly, a waitress won't ask you what kind of appetizer you want if you meet her in a bookshop.
Some of Pinker's work is based on the idea that much of the complexity of language arises from negotiating these relationships implicitly. For example, your parents teach you to say "please" and "thank you" because these allow you to make demands without entering into an authoritative relationship.
Some more of Pinker's work is based on the idea that ideas and other nonphysical things can be discussed as if they were physical things. Moving a meeting from Thursday to Friday, for example.
Combining these ideas is fairly obvious: if you can encode a situation into a relationship, you can have a wide diversity of relationships that are realistic. For example, you could simply say that the waitress relationship only exists while she's working at that restaurant. Or you can say that someone is only a mother to specific children. Or you can say that a general is only in a position of authority in military matters.
Even then, you're likely to miss subtleties. For example, a guest. What kind of relationship do you have to a guest? You're expected to make them feel welcome, to play the host, but what kind of relationship is that, exactly? Is it giving them some level of authority? What are the limits of that relationship? Similarly, while a politician technically is in a position of authority over me, it is a very disperse and indirect thing: in person, he has absolutely no authority over me and, in fact, would probably be glared at quite a lot.
Actually, what about being glared at? What kind of relationship is dislike? You could, I suppose, argue that it's a kind of negative communal sharing: you are specifically partitioning yourself from this person, specifically not sharing. This basis could, in turn, make you more aggressive and opportunistic in future social relationships with this person...
As you can see, the complexities quickly begin to build. In order to simulate something resembling common human experience, it is necessary to create a wide variety of potential situations to relate over. For example, can you share your hopes with someone? You need to be able to, for a decent social simulation. So "hopes" need to have some kind of representation in the world. Probably several, since there are hopes like dreams of the future, and hopes like what we think might arise out of something, and hopes like hoping something we cannot see has gone well...
Of course, it's not just a representation of hope, but also a social stigma attached to that representation. Me, I'm happy to tell most of my hopes on almost every scale to anyone who seems geeky... but I'm not likely to share my actual personal life. On the other hand, I know people who refuse to talk about what they want long-term while sober, but are fine with giving the gory details of their latest break-up.
Do we each have a defined relationship to representations of concepts? Perhaps so, but if so, we need to add some kind of "personal space" or "importance" relationship, because I can't see any way of representing what value I place on something in what contexts using the Fiske four. (Also, I think that equality matching and market pricing are fundamentally the same and should not be represented separately... so I guess it would still be four relationship types?)
As usual, it gets really, really gory the closer to implementation you get. The reason for this, as Murray Gell-Mann explains, is because any given situation is not descended from a core algorithm, but from such an algorithm plus a metric butt-ton of random chance building on random chance.
Our social algorithm is probably something fairly simple, although it may be difficult to express using English and more easy to express with math. But our actual social situation - both personal and cultural - is not a result of that algorithm. It's a result of that algorithm plus our life and the residue of the lives of our ancestors back at least four centuries.
We cannot "grow" a culture that is like ours, even if we use the same algorithm. We might develop a culture that is human-like, but it will feel as alien to us as if we were riding with Attila the Hun... and not necessarily very entertaining at all.
Attempting to reconstruct our culture, even simplified, is a monumental task involving listing a huge number of objects, cultural norms, microcultures, standard relationships within microcultures... Ugh!
In my mind, this approach cannot be used to create social play unless it is created by somehow harnessing the power of thousands of players that build the culture over a large period of time.
On the other hand, it may be possible to generalize all of our little obsessions and create something vaguely interesting to interact with that way... still, bottom-up is not the answer at the moment.
Instead, I prefer to build a framework of interesting content, ignoring all the details, and then basically just picking from column A and column B. Then I can focus on social reactions to this content, rather than having to simulate a history with that content or the other characters involved...
Either way, not very straight forward at all.
Wednesday, December 05, 2007
Fun with Fractals
One of the things I'm always irritated with is the fact that fractals seem like they should be applicable to character simulation, but they never work out.
There's one major reason for this. I will approach it obliquely:
A big part of human activity, at least the interesting stuff, is social. Even things that are done alone, such as painting your fingers or blogging, are social.
Social stuff is inherently interactive. Actually, all of human action is actually interaction. If not with another person, than with a thing or a situation or a disease or whatever.
A further difficulty is that some human activities change the social landscape, changing all further activities and serving as a center for activities. Examples of this vary from building a house to having a weekly poker game to that embarrassing time that nobody will stop talking about.
On the other hand, many human activities are not permanent, but instant - saying hi, selling an apple, winking.
So, not only are human activities interactive, but they are interactive with themselves in a bit of a weird way that isn't quite how a fractal normally builds on itself.
But it might be possible to build a more conditional kind of fractal. A multi-phase fractal: a sort of "graph" fractal that builds edges (social actions) and nodes (social centers) deterministically.
For example, each character has a base shape. A base shape is lines of specific colors that get built in a specific pattern, plus a number of spawn nodes that grow more base shapes. If two lines cross and are either identically or opposingly colored, that becomes a social center. A social center exerts gravity, such that all lines drawn near it are curved slightly towards it. Social centers combine if their edges touch, and the larger a social center is, the more gravity it exerts.
That doesn't end up being terribly interesting, as it turns out: you usually end up with what amounts to a boundary of black holes between every character. However, what you can do is give every social center a specific color (or set of colors) it pulls on, and it leaves the others intact... and pushes other-colored social centers away.
This results in a far more interesting situation, where the border black holes break up and migrate, radiating colors in every direction and even developing more or less stable orbital lines. You get massively different results depending on the geography of the base shapes, so that's good. You need to set the dissipation rate pretty high so that minor encounters don't turn in to massive lifelong issues.
While it's interesting enough, can it be translated into characters in a game?
Well, let's presume we're not pretending these beings are human. Let's make them first-generation sentient robots or something. This makes roughness more forgivable. It also gives us an excuse to use an evolutionary population pool instead of hand-programming everything.
Originally, the basic idea was that each colored line was a particular kind of social action - happiness, anger, whatever. This doesn't end up working very well unless you use a very complicated multi-base-shape model, so that's not going to work out.
While it is clear that these colors do map to some kind of emotional output, the overall action needs to vary based on gravitic pressures. So, I've decided that the overall ratio of colors determines the default mood of the character, but the more a particular color is pulled by gravity, the more of that kind of mood they are in when they are drawing that particular segment. Also, if you're running with structurally sound shapes, lines which are stretched or squashed to maintain structural integrity also affect the kind of action in this segment. (You have to separate the edges in your mind: a character who is falling into a red black hole near one person might be feeling very angry, but only when the in-game situation is around that person. They may be perfectly happy when interacting with someone else.)
How you judge fitness is still a bit of mystery to me. You could simply do it by propagation, except this ends up not feeling very human, because they don't have the same reasons or reactions to having children, even if you tweak their interactions with their children.
Fortunately, our creative conceit is that these are robots, so having children like humans doesn't make a whole lot of sense anyway. How they have children and their reaction to their children completely changes the feeling of their society, especially if you are running evolutionary rather than scripting each character. An easy example is if you make it so that they can only have children with the first other bot they have children with, or that they can only have one child per other bot... and, of course, whether there are genders...
Personally, I think that, at the moment, the best way to determine fitness is to allow the player to choose which bots have the neatest patterns of interaction. While these patterns are at least half chance, they are at least partially NOT chance, which does make this an effective method if you have the patience. Also, allowing you to "draw" your own bot base shapes is perfectly acceptable.
In terms of layout, I think it's best if each bot's spread is, at least initially, very linear. This allows you to create a "family" of bots by arranging them in a circle pointing away from each other. This gives them a lot of interaction without immediately dropping everyone into a black hole.
It also means that a family "starts flat". There is no childbirth on the fly, because you need to arrange everyone in circles. However, you can (and should) give parents several turns before children come on-line, and each child should come on-line after a delay as well. This creates the illusion of a growing family, but more importantly, it allows for age dynamics to manifest. Also, of course, you probably should inhibit sexual interactions among family members, assuming you want sexual interactions at all. They are robots, after all.
Also, I like creating social nodes when a robot's interactions cross over its own interactions. This lets the robots be self-obsessed and flat-out insane.
I'll try to get something Flashy up and running to show you what I mean, but I wouldn't mind hearing your preliminary thoughts.
There's one major reason for this. I will approach it obliquely:
A big part of human activity, at least the interesting stuff, is social. Even things that are done alone, such as painting your fingers or blogging, are social.
Social stuff is inherently interactive. Actually, all of human action is actually interaction. If not with another person, than with a thing or a situation or a disease or whatever.
A further difficulty is that some human activities change the social landscape, changing all further activities and serving as a center for activities. Examples of this vary from building a house to having a weekly poker game to that embarrassing time that nobody will stop talking about.
On the other hand, many human activities are not permanent, but instant - saying hi, selling an apple, winking.
So, not only are human activities interactive, but they are interactive with themselves in a bit of a weird way that isn't quite how a fractal normally builds on itself.
But it might be possible to build a more conditional kind of fractal. A multi-phase fractal: a sort of "graph" fractal that builds edges (social actions) and nodes (social centers) deterministically.
For example, each character has a base shape. A base shape is lines of specific colors that get built in a specific pattern, plus a number of spawn nodes that grow more base shapes. If two lines cross and are either identically or opposingly colored, that becomes a social center. A social center exerts gravity, such that all lines drawn near it are curved slightly towards it. Social centers combine if their edges touch, and the larger a social center is, the more gravity it exerts.
That doesn't end up being terribly interesting, as it turns out: you usually end up with what amounts to a boundary of black holes between every character. However, what you can do is give every social center a specific color (or set of colors) it pulls on, and it leaves the others intact... and pushes other-colored social centers away.
This results in a far more interesting situation, where the border black holes break up and migrate, radiating colors in every direction and even developing more or less stable orbital lines. You get massively different results depending on the geography of the base shapes, so that's good. You need to set the dissipation rate pretty high so that minor encounters don't turn in to massive lifelong issues.
While it's interesting enough, can it be translated into characters in a game?
Well, let's presume we're not pretending these beings are human. Let's make them first-generation sentient robots or something. This makes roughness more forgivable. It also gives us an excuse to use an evolutionary population pool instead of hand-programming everything.
Originally, the basic idea was that each colored line was a particular kind of social action - happiness, anger, whatever. This doesn't end up working very well unless you use a very complicated multi-base-shape model, so that's not going to work out.
While it is clear that these colors do map to some kind of emotional output, the overall action needs to vary based on gravitic pressures. So, I've decided that the overall ratio of colors determines the default mood of the character, but the more a particular color is pulled by gravity, the more of that kind of mood they are in when they are drawing that particular segment. Also, if you're running with structurally sound shapes, lines which are stretched or squashed to maintain structural integrity also affect the kind of action in this segment. (You have to separate the edges in your mind: a character who is falling into a red black hole near one person might be feeling very angry, but only when the in-game situation is around that person. They may be perfectly happy when interacting with someone else.)
How you judge fitness is still a bit of mystery to me. You could simply do it by propagation, except this ends up not feeling very human, because they don't have the same reasons or reactions to having children, even if you tweak their interactions with their children.
Fortunately, our creative conceit is that these are robots, so having children like humans doesn't make a whole lot of sense anyway. How they have children and their reaction to their children completely changes the feeling of their society, especially if you are running evolutionary rather than scripting each character. An easy example is if you make it so that they can only have children with the first other bot they have children with, or that they can only have one child per other bot... and, of course, whether there are genders...
Personally, I think that, at the moment, the best way to determine fitness is to allow the player to choose which bots have the neatest patterns of interaction. While these patterns are at least half chance, they are at least partially NOT chance, which does make this an effective method if you have the patience. Also, allowing you to "draw" your own bot base shapes is perfectly acceptable.
In terms of layout, I think it's best if each bot's spread is, at least initially, very linear. This allows you to create a "family" of bots by arranging them in a circle pointing away from each other. This gives them a lot of interaction without immediately dropping everyone into a black hole.
It also means that a family "starts flat". There is no childbirth on the fly, because you need to arrange everyone in circles. However, you can (and should) give parents several turns before children come on-line, and each child should come on-line after a delay as well. This creates the illusion of a growing family, but more importantly, it allows for age dynamics to manifest. Also, of course, you probably should inhibit sexual interactions among family members, assuming you want sexual interactions at all. They are robots, after all.
Also, I like creating social nodes when a robot's interactions cross over its own interactions. This lets the robots be self-obsessed and flat-out insane.
I'll try to get something Flashy up and running to show you what I mean, but I wouldn't mind hearing your preliminary thoughts.
Tuesday, December 04, 2007
Tricky Synthesis
Recently there have been a few games that have had elements of shocking excellence, things which make the players gape openly. These are not usually what you expect - not core game elements.
For example, Civ IV's theme music "Baba Yetu". Civ IV is the only game I've ever played that made me wish it took longer to load levels. Another musical example is "Still Alive" from Portal.
Not all of these superlative elements are music. Sometimes it's a breathtaking plot twist, as in Second Sight. Sometimes it's a level, like Lungfishopolis in Psychonauts. It can be a visual, or a character, or even just a sound.
As to music...
Listened to without their game, Baba Yetu and Still Alive are both quite good. But you don't get that jaw-dropping impressiveness.
What multiplied their effect was the expectation that came with them. The context.
Baba Yetu comes before you even get to your first turn in Civ IV. But you're all primed for Civ IV. You have a clear image in your head of what the game is going to be like, and it's significantly improved by the satellite view of the earth spinning gently beneath you. The song can be considered completely part of the pregame experience: there are no seams, nothing feels forced.
Still Alive comes after the game, and is almost exactly the opposite. You're coming down off of a huge high, and the song is perfectly suited for that gentle finish. Again, it is a flawlessly integrated element.
Lungfishopolis is so entertaining because it turns the normal situation on its head in a brilliant manner that fits in with the game so well that there are no seams.
It's not often that you hit one of these superlatives that isn't a seamless part of the game. I can't think of any examples. So I think it's pretty clear that being seamlessly integrated is one of the requirements to be superlative.
So far, I've used experiences that most gamers are familiar with. But this sort of thing is not limited to excellent games. Even poor or non-artistic games can have elements that surprise you with how catchy or insightful they are.
For example, the Bubble Bobble theme. The map scale of Sid Meier's Railroads. Shadow Watch's mission selection phase.
No matter what game I look at, I find some element that seems to be a flawless part of the main play. An element that just clicks, that enables the player to feel exactly what he is supposed to feel at this point in this game. It makes sense that there will always be one element that fits better than the rest.
It's just something I noticed. I think it might be possible to do this on purpose, or at least increase your chances of having it happen. It's sort of related to immersion, I think, but at this point I'm pretty much just feeling my way through the theory.
Any way you cut it, it is clear that a game is not simply gameplay. And, in fact, even gameplay is not a lump of rules, but a delicate ecology in which some elements tend to fit (be fit?) better than others at different times.
Look back at some games you have played recently. What elements seemed most flawlessly integrated? What elements made you feel exactly what you felt you should be feeling right then? On the other side, what elements broke your experience up a bit?
I have a sneaking suspicion that people will frequently post the same thing on both sides. I know some people really liked God of War's "open the door" mechanic, and I didn't. To me, it is flawed, to them, not so much. Perhaps because we expected different things...
Anyway, what do you see when you look at games?
For example, Civ IV's theme music "Baba Yetu". Civ IV is the only game I've ever played that made me wish it took longer to load levels. Another musical example is "Still Alive" from Portal.
Not all of these superlative elements are music. Sometimes it's a breathtaking plot twist, as in Second Sight. Sometimes it's a level, like Lungfishopolis in Psychonauts. It can be a visual, or a character, or even just a sound.
As to music...
Listened to without their game, Baba Yetu and Still Alive are both quite good. But you don't get that jaw-dropping impressiveness.
What multiplied their effect was the expectation that came with them. The context.
Baba Yetu comes before you even get to your first turn in Civ IV. But you're all primed for Civ IV. You have a clear image in your head of what the game is going to be like, and it's significantly improved by the satellite view of the earth spinning gently beneath you. The song can be considered completely part of the pregame experience: there are no seams, nothing feels forced.
Still Alive comes after the game, and is almost exactly the opposite. You're coming down off of a huge high, and the song is perfectly suited for that gentle finish. Again, it is a flawlessly integrated element.
Lungfishopolis is so entertaining because it turns the normal situation on its head in a brilliant manner that fits in with the game so well that there are no seams.
It's not often that you hit one of these superlatives that isn't a seamless part of the game. I can't think of any examples. So I think it's pretty clear that being seamlessly integrated is one of the requirements to be superlative.
So far, I've used experiences that most gamers are familiar with. But this sort of thing is not limited to excellent games. Even poor or non-artistic games can have elements that surprise you with how catchy or insightful they are.
For example, the Bubble Bobble theme. The map scale of Sid Meier's Railroads. Shadow Watch's mission selection phase.
No matter what game I look at, I find some element that seems to be a flawless part of the main play. An element that just clicks, that enables the player to feel exactly what he is supposed to feel at this point in this game. It makes sense that there will always be one element that fits better than the rest.
It's just something I noticed. I think it might be possible to do this on purpose, or at least increase your chances of having it happen. It's sort of related to immersion, I think, but at this point I'm pretty much just feeling my way through the theory.
Any way you cut it, it is clear that a game is not simply gameplay. And, in fact, even gameplay is not a lump of rules, but a delicate ecology in which some elements tend to fit (be fit?) better than others at different times.
Look back at some games you have played recently. What elements seemed most flawlessly integrated? What elements made you feel exactly what you felt you should be feeling right then? On the other side, what elements broke your experience up a bit?
I have a sneaking suspicion that people will frequently post the same thing on both sides. I know some people really liked God of War's "open the door" mechanic, and I didn't. To me, it is flawed, to them, not so much. Perhaps because we expected different things...
Anyway, what do you see when you look at games?
Saturday, December 01, 2007
The Ruby Ceiling
I designed this fun little "civ light" game to build in Ruby on Rails. I even got ImageMagick working for synthesizing the map. Only now that everything's working, I find I've hit a fatal flaw in my otherwise clever plan:
Ruby is really, really, really, really slow.
You don't notice when you're doing something simple, like listing grocery receipts or whatever. But when you tell Rails to create a few thousand entries (tiles on a map), it chokes and essentially dies. I'm sure it would finish eventually, probably. Maybe. But no time this year.
This is something that can be done pretty fast in most situations. I've done something similar in Flash, it takes less than a second. But the combination of Ruby's poor performance and Rail's need to write to a database record by record gums the works up fatally. In order to get around the problem, I would have to generate the map a tiny piece at a time, which would be feasible if what I wanted was a completely crap map... but it's very hard to actually create a realistic-feeling map when you work on it in 5x5 tile chunks!
Maybe an answer will pop into my head (or into my comments), but this is a really irritating flaw. I've heard there's a new version of Ruby out, but trying to get Rails to run properly on a beta language... is not something I care to try.
It's not a flaw I expected to run into.
Ruby is really, really, really, really slow.
You don't notice when you're doing something simple, like listing grocery receipts or whatever. But when you tell Rails to create a few thousand entries (tiles on a map), it chokes and essentially dies. I'm sure it would finish eventually, probably. Maybe. But no time this year.
This is something that can be done pretty fast in most situations. I've done something similar in Flash, it takes less than a second. But the combination of Ruby's poor performance and Rail's need to write to a database record by record gums the works up fatally. In order to get around the problem, I would have to generate the map a tiny piece at a time, which would be feasible if what I wanted was a completely crap map... but it's very hard to actually create a realistic-feeling map when you work on it in 5x5 tile chunks!
Maybe an answer will pop into my head (or into my comments), but this is a really irritating flaw. I've heard there's a new version of Ruby out, but trying to get Rails to run properly on a beta language... is not something I care to try.
It's not a flaw I expected to run into.
Subscribe to:
Posts (Atom)