Monday, May 22, 2006

Evolutionary Gaming

I've been fascinated recently with evolutionary/genetic algorithms. My favorite, of course, is electric sheep, but today I caught glimpse of a simpler one, Evolve.

This kind of approach to dynamism got me thinking about how social voting algorithms could be worked into a game. To have a game (single-player or multiplayer) tune itself to the player's desires would be fantastic, surely. But forcing the player to submit a vote explicitly is a bit much. Instead, what mechanisms could be used to imbue the engine with the capacity to observe the player and tune something (the physics, the environment, the textures) according to the player's tastes?

I find myself thinking about how much I dislike desert levels in games. I hated it in all the Star Wars games that ever used Tatooine, I hated it in Diablo II, I hated it in Ratchet and Clank... I just hate desert levels. But whether it's the sense of dryness, the wasteland quality, or just that piss orange color, should the engine be able to detect that I don't like it?

In a game like Vyde, the player will ideally encounter areas having many different themes. Travel far enough, and you may encounter a fire cave, then an ice cave, then a rainforest cave, not necessarily in that order. But can't something be said about the users that deliberately avoid certain types of areas? If a player repeatedly encounters a fire cave and retreats within sight of it, can't the engine assume that that user just doesn't like (i.e. won't play through) fire caves? And if that assertion can be made, wouldn't it make for better gameplay if the engine tunes itself to avoid that type of level? (This assumes, of course, that we're talking about an engine whose responsibilities include randomly generating territories, but the principle could've easily been applied to, say, the random item generation algorithms that drove the Diablo series or even Nethack.)

I want Vyde to be procedural to an unprecedented degree. Though Spore may beat me to it, I'd still like Vyde to have self-tuning capabilities that make it possible to encounter variations on themes based on the areas I choose to explore.

The system itself shouldn't be hard to implement. The engine would keep counters related to the number of times a user encountered a certain type of area. An encounter would be defined as, well, the event that occurs when the engine decides to switch themes in response to a freshly-broken tile. Even if the engine is capable of creating an infinite variety of areas, it can cull old tallies and maintain some kind of cache of "recently explored themes" that it can use to govern its future theme-choosing behaviors.

Projects like electric sheep and Evolve always make me wonder if, given enough participation, an "ideal" result could emerge. I'm still reading Emergence by Stephen Johnson, and even in my humble capacity as a hobbyist I feel obligated to recommend it to all game designers.

There is a terribly encouraging trend emerging in the capability of hardware to outthink its users, and when applied to gaming, it isn't hard to imagine a day when a game can rework itself to a player's tastes. Could we be so bold as to assume that it would increase the marketability of replayability?


Blogger Keith said...

I realize this is an old post but the idea is a good one. I would have to say that a quest system would actually work best here. Essentially what you would do is have a Quest giver with multiple quests, each with different zones, based on the frequency of choice the player could begin to see more of the same dungeon types.

7/10/2007 04:52:00 PM  

Post a Comment

<< Home