Showing posts with label evolution. Show all posts
Showing posts with label evolution. Show all posts

2010/09/19

How Artists Want to Make Games


On the notgames forum, MichaĆ«l Samyn posted this thread:

Programming in code is counter-productive for people with art-sided brains. The solution to this problem exists: graphical programming. But the people who need to implement this solution happen to be its worst enemies. Because to engineers, code-based programming beats everything.

Until somebody somewhere starts believing artists when they say they want to program in a visual language, or starts realizing that giving access to artists is the best way for a creative technology to continue evolving, I find myself settling with inferior designs. Because I cannot express myself adequately in code, I need to change my ideas, I need to talk about simpler things in a simple way.

It's like someone is forcing me to write poetry in French. French is a great language. And people who are familiar with it can write beautiful poetry. But I speak Dutch. My Dutch poems are subtle and sublime. In French, however, all I can write are nursery rhymes.

So I've been thinking about this a lot over the last several days. Actually I've been obsessively thinking about it non-stop and reading everything I can on related topics online.

I tend to do that for a different thing every week. This week, it's been this.

So there are a few pieces I've been focusing on, that seem most crucial to the success of a programming or game development tool for artists. There are probably others, but I thought I'd share what I've been thinking about so far.

One is readability through R-mode perception.

First of all, a disclaimer: When I say "R-mode" versus "L-mode", as in "Right brain" or "Relational" or "Rtistic" versus "Left brain" or "Logical" or "Linear", I don't mean to suggest that the brain is really divided into strict differences between its physical right and left halves. That is an outdated belief. But I find the terminology to be a useful shorthand.

Thinking on Michael's comments about visual flowcharts being easier for him to read than linguistic code, and looking back on my own experience, I think there really is something significant about how the code is presented and perceived, even when the underlying logic is the same.

When I am reading code (or a book!) I am usually using what I call "L-mode" perception - going through in a linear, linguistic way, and building up my mental model one step, one line of code at a time, following the logic that is expressed symbolically, in sequences like that.

However, sometimes my mind is in an "R-mode" of all-at-once, spatial perception like you'd use for looking at a painting or trying to find a certain LEGO piece in a big box of pieces. When I am in that state of mind, and I look at code (or to a lesser extent, written language) I see all the words at once and perceive the spatial relationships between them, and the underlying logic of the code is utterly incomprehensible to me. Obviously not the "right" way to read code.

But maybe it could be.

Ha, that would be a good tagline. "The right way to code." :P

The thing about R-mode perception is that it's a lot easier to be creative when you're in it. The other thing about R-mode perception is that artists are usually a lot more skilled at functioning in R-mode than they are in L-mode.

Therefore, if you had a tool that let you do programming while in R-mode rather than L-mode, it might be slightly easier to do creative things with it. At the least, there would be less inefficiency caused by switching between R-mode and L-mode whenever you think about what you want to change and then have to dive into the code to actually change it.

However, this may not even be possible.

All the visual programming editors I've seen, all the examples that have been posted here, require an uncomfortable mix of L-mode and R-mode perception in order to use. What I tend to see is a bunch of visually identical boxes connected by lines, and differentiated by text.

What you see in R-mode is the set of relationships between the boxes. But you can't tell what each of the boxes does. To do that, you must read the text and think symbolically, in L-mode. Really, very little information is conveyed through spatial relationships, through R-mode. Most of it is still sequential and symbolic.

For that reason, I find that pure written code, all L-mode, is much easier for me to deal with, since I don't need to switch around multiple times a second just to figure out what everything means. However, I suspect that there may be a way to create a pure R-mode method of programming too. But I'm not confident that it's actually possible. Just intrigued enough to try.

There are some programmers who hate the idea of visual programming, and say that it's a waste of time to use spatial relationships to convey the meaning of code. If you are one of those people and you use syntax coloring or indentation, you are a hypocrite.

So there's one aspect. Make sure your tool is R-mode accessible, if you want artists to be able to use it.

The second thing is building with functional pieces in real (or almost real) time.

Artists tend to appreciate tools where "what you see is what you get" - you're manipulating the end result, so you can immediately see the results of your actions. The process becomes more like sculpting.

Programmers tend to discount such tools as nice but unnecessary. They are used to typing in code for an hour, hitting a button, and waiting a minute for everything to compile and show up on the screen.

These are two fundamentally different mindsets, as different as a slideshow and an animation.

When you operate in the slow, "slideshow" approach, development and creativity tends to happen in an architected, "top-down" way. You have a plan, which is in your head, and then you put in a bunch of time and hard work to mold reality into the shape of that plan.

There is a fundamental shift that occurs as you decrease the time between action and result. It's as real as the shift that occurs when you hit 24 frames per second - from slideshow to animation. To your brain, it's alive, it's moving.

When you operate in the immediate, "animation" way, development tends to operate in a more exploratory, "bottom-up" process. You don't have to have an entire plan in your head. You see the results of your actions immediately, and if they are surprising or unexpected, you can adjust your plan. You can try random things and follow them if they prove to be interesting.

In the area of game design, innovation is much more likely to come out of an exploratory process than an architected one. As Jonathan Blow said earlier. It's hard to do things that haven't been done before if you have to plan it all out in your head first.

So we want a tool that allows us to sculpt the end result, with immediate feedback.

Part of this is that everything you can make should work. It may not work in the way you desire or expect, but it should still do something.

If you are painting with pixels in an art program, no matter how you put those pixels down on the screen, it will always be a functional, viewable image. It might not be pretty, but you can still see it. You are never going to run into a error message that says, "Invalid pixels at position 55, 46. Image cannot be displayed."

But if you are writing the code for a program, this sort of thing happens all the time. Most of the things you can type won't work at all. They won't turn into a program, even a broken one. There are right ways to write code, and wrong ways to write it.

I would say that this also makes a big difference. Perhaps the biggest difference is that writing code has a much higher barrier to entry, more learning how to do things at all before you can start learning how to do them well. But it also makes experimentation so much more difficult. You can't throw a bunch of random stuff together just to see what happens. Because what happens is nothing. It just won't do anything at all.

So if you can build only with pieces that work, and immediately see what changes, this would make truly artistic interactive art much easier to create.

The last thing is expressing general logic through specific examples.

This is probably the most impossible and most revolutionary but least important of the three. If you just had a tool that you'd use in R-mode, that let you shape the end results with immediate feedback, that could be awesome, and probably enough to make a huge difference.

But at the same time I am intrigued by this further vision I have of providing specific examples, which the system will extrapolate to create possible general rules for creating those examples, which you will then provide feedback on and refine in order to guide the system's hypotheses toward the end you have in mind.

Because I don't see how to actually avoid symbols when describing logic, or how to directly manipulate end results in a general way. Because games are systems, and the end results happen when you take the rules that you have set up and run them through their paces.

So maybe this is the only way to achieve those first two goals in their entirety.

What am I talking about?

You know how you draw diagrams and mockups for different things that happen in different situations in a game? Like this. It's a pretty common way to organize your thoughts when you're designing. The thing about those is they're all organized around specific examples, not general rules. So you might draw a diagram with a guy hitting a wall, showing how he bounces off or breaks through it or whatever. It's not completely specific, as you might have an abstract line standing in for any kind of wall, and a stick figure representing any kind of guy, but at the same time it's very concrete. And you can add general connotations by writing in little notes, to explain the rules behind the example more clearly.

The reason that we don't just stop there is that our game development tools require everything to be spelled out exactly - they cannot extrapolate from these examples, because there is so much ambiguity. It could mean this or it could mean that.

However, we run into a similar problem when trying to communicate our ideas to other people who are helping us make them into a reality. Especially if we are designers and we are telling programmers what to do. How do we solve this problem with other people?

Part of this is by clarifying with more examples when an area is unclear. Kind of starting at the highest level and breaking it down into more specific situations when necessary. Another part is through conversation, asking "It sounds like you're describing this... Is that right?" and responding "Yes, exactly!" or "No, I was thinking something more like this..."

Both of these could be accomplished with a special computer program instead of a human programmer. Maybe not as well, especially in terms of accuracy of translation, but in some ways better - particularly, in the time between your description of a design and seeing something on the screen. And this increase in speed could make up for the lack of accuracy, since you can adjust and correct much more quickly. And as a result, make use of exploratory design instead of architecture.

Break dynamics down into stories instead of rules. A playthrough of the entire game could be an example story, and you could create example stories of successively smaller and smaller pieces of the game until you have specified it completely. Or completely enough.

The tool generates possible rules that could create the situations you specify, and presents several for you to try out. Most likely none of them work the way you want. Pick the one that's closest, and let it generate more possibilities based on that. It's an evolutionary search. Like Biomorphs.

And stories don't always have to be specific stories about specific instances. They can be more or less abstract and universal. Like Raven, with a capital "R", who is both the character Raven and all ravens and all tricksters at once. Or the princess in the tower, or the wise old man, or the dragon in the cave. Or the stick figure on the crosswalk sign who represents all pedestrians who could ever walk this way. There is a continuum between the specific and the symbol.

I am particularly inspired by the concept of the Dreamtime. The translation of this name is misleading, as it does not refer to a time in history. It is like a parallel slice of the world running alongside and underneath the specific, physical world, where the gods and heroes walk, creating and personifying the dynamics and processes that underlie everything we see in reality.

I want a tool where I can not only shape the world as a level designer, but also shift into the Dreamtime and shape the dynamics of that world as concretely I would shape the placement of coins and mushrooms.

When this happens, we will get our interactive art.

2009/07/12

Several Intriguing Ideas

More ideas? Yes, indeed! I'd like to share with you several intriguing gems I've recently unearthed from my idea notebook:

2009/07/12
A game about guerrilla gardening, where you collect seeds and construct seed bombs. You would go on bombing runs where you try to turn vacant lots into gardens or break open pavement by putting certain kinds of seeds in the cracks. Like a collectible card game, it would support a variety of play styles that would appeal to different kinds of people. But instead of collecting cards, you collect different types of seeds, and instead of building decks, you strategically construct seed balls, and instead of dueling, you go out and try to plant your 'bombs' without getting caught. The concept also makes use of a slowly evolving world that changes as the plants grow, much like a turn-based strategy game such as Civilization. I think it could really fun.

2009/07/02
Try making a physics-based strategy game that derives its gameplay and complexity from the basic physical rules rather than a complicated set of components and interactions. The purpose of this approach would be to make the game intuitive enough to pick up and play without a tutorial, which is very difficult for the typical RTS.

2009/05/26
A game to help you notice the weather and how it changes. In this game the weather would have a big impact on the gameplay. Your character could be warmed up by the sun, or rained on, or snowed on. There would be a sort of 2D map of clouds blown around by the wind, so if you look up into the sky and see which way the wind is blowing, you can predict what sort of weather will be coming your way.

2009/05/17
An art tool where you manipulate shapes or direct streams of particles, but instead of choosing options and colors with a toolbar, there are 'seeds' that appear. You can either ignore these seeds or cultivate them and use them as new colors or shapes in your drawing. There would be a sort of genetic algorithm at work, where new seeds would appear based on existing elements on the screen, while neglected seeds fade away. The idea is kind of similar to the way that new goo balls are actually crawling around on the structure itself in World of Goo, not in a menu.

Like the sound of these? Let me know what you think! :)

I especially like the first one, about guerrilla gardening, and I'll probably try to make it into a real game some day. Let me know if you want to help.

2009/03/18

Google Is the Future of Games

It seems to me that the future of game development, in terms of minimizing the barrier to entry so anyone can easily make a game, would look a lot more like Google than like Photoshop. And it wouldn't look at all like Visual Studio. ;)

I can imagine a knowledge network of algorithms and components and behaviors, built up by people searching a space, as in Electric Sheep, and then organized and filtered by people participating in some kind of social network metagame.

If I am putting together an environment sketch and I'm looking for some procedural water ripples for a fountain, I'd be able to search for these procedural components as easily as I would for a web page. I'd be able to navigate through the space of algorithms at a finer level, too, like Biomorphs, to tweak an existing component without ever touching any code. And if I wanted to, I could modify the code directly.

Whatever social rewards I'd gather through my creation would automatically trickle down to those who created the components I used to make it. In this way, there would be an ecosystem of people creating, evolving, filtering, and combining this procedural material from which games are made and recycled back into.

I'm not saying it will happen, but something like that will have to happen before creating games becomes a mainstream activity. It's a tough problem, but I'd love to see it solved. How do you turn software engineering into an art form?

*image from one of my favorite flash animations, Pencilmation*

2009/02/25

Game Idea Giveaway - Pique

...continued from The Game Idea Giveaway Thread

Request by Incrue:
  • what sort of game idea you're looking for
    A puzzle that dont looks like a tetris variation, something like gimme friction
  • what your goals are in making this game
    To make cool game ;)
    I mean, it would be a puzzle very very simple to learn but the things that are going make the game more complex came from the movements of the player, not from a level pre designed
  • what games you've made already
    Only one point n click
  • your favorite Flash games
    samorost,gimme friction, sylvaniah, heli attack3
  • your abilities in game design, programming, art, and sound
    This game is not suposed to have sounds, i dont like sounds.
    Also, im not good with phisics engines, so no advanced phisics or falling blocks
  • your preferences in game design, programming, art, and sound
    Anything but sounds.

The idea: Pique

In short, this idea is a Minesweeper-like puzzle game about the processes of evolutionary search. Your goal in each level is to find the highest peak of an invisible height map, by taking peeks at one spot at a time.

a height map...

At the beginning of each randomly generated level, you are presented with a blank and unknown map, a grid waiting to be filled in. It is like Minesweeper, but instead of randomly placed mines, there is a hidden landscape of peaks and valleys to chart and uncover. Your goal is to locate the highest Peak. You start by clicking a spot on the map to place a Peek, revealing the height of the landscape at that point. Placing several Peeks would allow you to have a rough idea of what the landscape looks like. The challenge is essentially in inferring the shape of the terrain based on limited information, as fast as possible and with as few moves as possible.

This would be a good opportunity for a simple 3D display.

might look a bit like this...

Now this could be the entire game. In fact, I'd encourage you to start by just getting this basic system up and running, and see if it's fun. I don't know. It might be fun, or it might not. I suspect a lot of the fun at this stage would depend on the particular algorithm you use to randomly generate the height map.

There's a bit more to the game though. This is supposed to be about evolutionary search, remember? Here, the player takes the role of evolution in the search for the high peak in a fitness landscape. Each point in the landscape represents a simple genome, and the height represents its fitness. Let's give the player a few extra tools to help them out. The two most basic tools used by any evolutionary algorithm are mutation and crossover. So, let the player use them.

Here's how it would work. You start off with a limited number of Peeks at your disposal. When you place a Peek, in addition to revealing the height on the map, you get some amount of money proportional to the height you just found. You can then spend that money to use your special abilities. One ability would be Mutation. You select the Mutation ability and click on a Peek that's already on the map. Then a handful of new Peeks pop up around it, scattered randomly within a short radius like mushroom spores. Money from these new Peeks would be added to your total, as usual. Some testing would be necessary to ensure that the cost of a mutation is balanced with the likely payoff.

Crossover is the other basic action. You'd select two existing Peeks on the map, and several new Peeks would pop up somewhere in the line between the two. Just like Mutation, it would cost some amount to use, and each of the Peeks created by it would earn you money based on their height.

The controls for this could actually be very minimal. Click an empty space to place a new Peek. Click an existing Peek for a mutation, and drag from one Peek to another for a crossover. Though you'd have to be sure that you give plenty of information by the cursor icon and text. If you mouse over an existing Peek, it should tell you clearly that this is a Mutation, and how much it will cost, and in what radius the new Peeks will be distributed. If you start dragging, it should tell you that you are starting a Crossover, and how much it will cost. You'll need to introduce each new tool through the introductory levels. It might be better to have a toolbar on the side where you can select Peek, Mutation, or Crossover explicitly, with some explanatory text that comes up when you mouse over them. Otherwise the players might not realize what options are available to them.

Once the player finds the highest Peak, the level is won. It would be nice to then reveal the landscape with some sort of nice 3D rendering, perhaps using ray casting.

Let me know what you think. If you're unfamiliar with the idea of evolutionary search, I'd recommend that you read this interesting excerpt from the book Out of Control.

Want an idea? Make a request on The Game Idea Giveaway Thread!

2009/02/06

Game Idea Giveaway - Selexion

...continued from The Game Idea Giveaway Thread

Request by venomblood:
  • what sort of game idea you're looking for
    Shooting, action, evolution, strategy
  • what your goals are in making this game
    A game that brings a new idea to the internet, with unique emotions, themes, and gameplay

The normal idea: Bubblebomb

The weird idea: Selexion

In short, the concept is abstract top-down shooter (like Geometry Wars) exploring the dynamics of evolution by sexual selection. Uh, yeah. If the game Coil offends you, don't read the rest of this. ;) But really, this is meant to be as clean and abstract as possible while retaining the core of the evolutionary dynamics that occur between the two sexes of a species.

There are two types of creatures in the world: males and females. Males look like triangles, like the outline of a slice of pizza that's been cut into eight or twelve slices. The pointy end is forward, as in Asteroids, and the males shoot from the pointy end (hence the shooting-ness of this game). Playing as a male, your creature would rotate to point toward the mouse cursor and accelerate toward it if the mouse button is not pressed. Pressing the mouse button would both put on the brakes to slow down your creature, as well as shoot bullets like a normal shooting. Females look like a pizza or stop sign with a slice taken out of it (so a male and female together would make a single circle or octagon). The opening is forward, which rotates to point toward the mouse cursor and accelerates very slowly toward it if the mouse button is not pressed. Much like in the game flOw, pressing the button accelerates the creature toward the cursor somewhat faster, rather than shooting.

The point of the game is to accumulate as many offspring as possible. Gameplay occurs in timed rounds, for each generation. For the first round, you can choose your creature from a small random set of individuals. All your offspring that survive to the end of the round are added to your total score, and one of them is chosen randomly to be your creature in the next round. This motivates you to choose your mates a bit more carefully, to ensure that you are not stuck with a sickly and weak creature in the next round. And of course, it forces you to experience the game from both the female and male perspectives. During a round, your creature could be colored blue, other creatures in red, and your juvenile offspring in purple, perhaps. There would need to be at least three colors, anyway - maybe you can come up with a better scheme. :p

Creatures can attack each other. Females are larger and stronger than males, though less nimble, so they attack by ramming (avoiding the opening, which is not armored). Females cannot shoot. Males can ram too, but they are smaller and usually just shoot to attack. As you may have suspected however, bullets serve a dual purpose. If the bullet is shot into the opening (the missing slice) of a female, there is a chance that the female will be impregnated. If this occurs, a baby creature is formed from the genetic material of its two parents, plus a mutation or two. As in the game Cultivation, the new creature gestates for some amount of time (more than a few seconds, less than a minute) inside its mother before it is born and takes its place in the world as a nonreproductive juvenile creature. A pregnant female is slower and more vulnerable than normal.

There is also food in the world, in the form of small squares that spin across the screen like in Evolites. Creatures can eat food by touching it, which they must do every so often to keep their energy meters high. These energy meters drain very slowly over time (faster during pregnancy) and also serve as a creature's heath bar when shot or rammed. When it reaches zero, the creature dies. All these physical properties of the creatures, like energy meter size, draining speed, armor strength, body size, acceleration rate, maximum speed, fire rate, bullet speed, bullet size, fertility, gestation time, would be variables in the genome of each creature.

So we have here a minimal but quite expressive system in which many interesting evolutionary dynamics may emerge. The problem is that in order to take advantage of it, the creatures must have some quite sophisticated behavioral AI that also can be encoded within their genome, or you must design a multiplayer game in which human brains take the place of evolution in exploring the strategic space. I have some ideas toward a solution but nothing completely defined. If you are sufficiently interested I would be glad to elaborate on how this system could be turned into an actual game. :)

Want an idea? Make a request on The Game Idea Giveaway Thread!

2006/11/28

Review of Cultivation

Cultivation is a game I've mentioned before, but in case you have not tried it yet, here's a description from the "press section" of the website:

"Cultivation explores the social interactions within a gardening community. You lead one family of gardeners, starting with a single individual, and wise choices can keep your genetic line from extinction. While breeding plants, eating, and mating, your actions impact your neighbors, and the social balance sways between conflict and compromise.

Cultivation features dynamic graphics that are procedurally-generated using genetic representations and cross-breeding. In other words, game objects are "grown" in real-time instead of being hand-painted or hard-coded. Each plant and gardener in the game is unique in terms of both its appearance and behavior."

So basically, you have this little circle creature, which you can direct around the map and plant seeds, water them, eat fruit, share fruit and stuff like that. A cool thing about it is that all the stats, the graphics, and even the music is all based around a genetic system and is different every time. However, the basic play experience is very similar each time, at least on the surface.

It's pretty interesting. I wouldn't really call it "fun" though. If I'm not misaken, it's still in development, so hopefully the author will continue to improve the game.

The main problem is that it doesn't seem to go anywhere. After the first time I tried it, figured out how to play, I wasn't really compelled to keep going. It just seemed like I would be repeating the same basic strategy I had figured out in the first few minutes. This is an issue of gameplay progression.

Most games use techniques such as levels and upgrades to structure their gameplay progression, as I've mentioned before. But it's my impression that Cultivation is meant to have a more freeform progression, where the player may uncover for themselves new complexity and strategy that already exists in the mechanics. It fits with the procedural approach to the rest of the game content.

Unfortunately, just having lots of depth hidden in your game doesn't mean that players will find it. I've struggled with this myself in my game Braids. It also has a lot of complexity and depth, and also fails to get that across to many people who try playing it. The time when it does manage to get people interested in it, is when they are playing against another person. Us humans are very social, and we learn socially as well. When you are playing with other people, you can learn by watching what they do, and by communicating.

With Cultivation, it's hard to learn socially like that. It's hard to learn by watching what the computer players do, partly because most of the time you can't see them on the screen, but also because the important actions of the game are not reflected strongly in the graphics. You pretty much just see some circular creatures gliding around, with things occasionally popping up and disappearing around them. It's hard to see what they're thinking, what strategies they are using in the game, how game events are influencing their behavior.

Right now the actions and graphics in the game are pretty distant from the interesting parts of the gameplay. Though I haven't really gotten to that level of play, I presume that the interesting parts of the game come from the social dynamics of the gardeners. But I haven't been able to see much beyond noticing that if I try to enroach onto their territory, they get mad, and if I give them food, they like me.

And the basic actions of the game, like planting, watering, harvesting, seem even further removed from the actual game. I know the basic sequence - plant, water, harvest, repeat - but it doesn't seem to really tie into the social dynamics in a significant way. From what I understand, you could cut it out completely and just have establishing territory and giving gifts, and the social part of it would be relatively unaffected. If that's true, then maybe it should be simplified in that way, or at least made more significant to the gameplay. And if I am mistaken in dismissing the connection, the connection should be made more clear through better feedback! Hopefully this is an issue that can be simply resolved by improving the user interface.

So if I'm lucky, the author of Cultivation will come read this and improve the game. :) But anyway, I think it could be fun for me to make my own game like this, expanding more on the cultivation side of things, with more interesting things you can do with the plants, and easier guidance of the evolution of your garden. I am eager to play with procedural generation of plants, and right now I don't have a clear idea of how the social aspect of Cultivation is supposed to work.

But something that could be fruitful to integrate into the game would be the dynamics of sexual selection. There is mating in Cultivation, but everyone is hermaphroditic and you don't really have much choice in the matter. When I played I couldn't help being pregnant constantly since the other creatures seem to exchange eggs at every opportunity. :p

I'll leave you with that thought. :D

2005/11/16

Analysis of Electric Sheep

The final chapter of Laboratory Life by Latour and Woolgar, presents a framework for understanding the construction of scientific facts. I will use this framework to analyze the knowledge production in Electric Sheep. This knowledge concerns the location of aesthetically pleasing fractal flames in the space of all possible fractal flames. Each fractal flame is an image produced from a seed of 84 real numbers. Essentially, each one may be defined as a point in an 84-dimensional space.

Using the framework in Laboratory Life, I can describe the Electric Sheep project as moving from chance to necessity. In the beginning, there is no way for you to know where the interesting fractal flames may be hiding, so all locations are equally probable. If you were to choose one to look at, you would have to make a random guess, only informed by chance. But as you build up knowledge of where the nice fractal flames may live, certain places are more probable than others. Eventually certain positions in this space become necessary to look at, as the probability of it containing interesting fractal flames becomes very high. This movement, from equal probability and chance to unequal probability and necessity, is the essence of knowledge production.

Latour and Woolgar's book describes six elements which work together to create this movement. First off there is construction, which is the slow, evolutionary process of accumulating facts. These facts are created through an agonistic process where hypotheses and their scientists compete to show that they are the best one. Once these facts are accepted they are embodied in laboratory equipment or skills and then taken for granted - materialization. This influences the fact's credibility, which refers to the cost in rejecting an established fact because of the time and energy invested in it. It is also important to recognize the role of individual circumstances in the production of knowledge, as knowledge is not so much about finding the universal truth as it is an idiosyncratic approximation to it. Finally, noise is a description of the initial state where all possibilities are equally probable, which facts try to limit into necessities.

In Electric Sheep, construction is the creation of a family tree of the best fractal flame images, or 'sheep.' Each one represents the knowledge that interesting sheep are more likely to be found nearby in 84-dimensional fractal flame space. Sheep are voted on for this privilege, which is agonistic in that it is competitive. Materialization takes place when the popular ones are saved as part of the family tree, to be used as the basis for later variations. Participants can not communicate to convince each other to vote for one sheep or another, so credibility does not play a noticeable role. People may submit their own fractal flames as stock for new sheep, and the direction the family tree branches from it is highly dependent on individual circumstances. It is extremely unlikely to chance upon the same fractal flame more than once, and the space of possibilities is so large that any knowledge network can only map a small portion of it. The end result is that in one corner of this fractal flame possibility space, the noise has been decreased so that some spots may be known to hold pretty fractal flames.

2005/11/08

A Distributed Knowledge Network

Electric Sheep
Electric Sheep is a distributed computing project which allows users to view fractal flames and vote for ones they like. To use it, you download a screensaver that will help generate the fractal flames and display them on the screen. Fractal flames are computer-generated animations which take a lot of processing power to produce, so each computer running the Electric Sheep screensaver does a little bit. A new fractal flame, or 'sheep,' is displayed on each participating computer about every ten minutes. While that sheep is on the screen, pressing the up arrow key will give it a vote. Only a few sheep are stored on the server at one time, so the sheep with more votes get to live longer. New sheep are variations on sheep still living on the server, so a sheep that got a lot of votes would have a lot of children that are similar to it. This means that Electric Sheep can explore the space of possible fractal flames to find pretty ones.

This project produces some very simple knowedge - collective knowledge of which fractal flames are interesting. Each saved sheep is a label that marks all similar sheep as potentially interesting forms. Electric Sheep takes the information of user's votes and embodies it as knowledge by using popular sheep as a basis for the next samples. I consider knowledge to be the structure of a system which is influenced by incoming information and then produces some action from it. In the case of Electric Sheep, its structure consists of the currently saved sheep along with the method by which it explores new fractal flames. The system uses this knowledge to make pretty pictures and to further develop its knowledge.

2005/10/11

Wikipedia Case Study

Evolutionary creationism
This is a Wikipedia article about the belief that evolution is compatible with creationism. It was first created as a stub on 2003/09/27 and has been edited by roughly thirty people so far.

Here are some frequent contributors to the page:
Duncharris
A contributor to a wiki on evolutionary biology who has Google bombing links suggesting an anti-Bush and anti-Christian viewpoint.

PhilVaz
A computer programmer who also maintains a Catholic website.

Johnstone
A person who seems to be interested in the possibilities for group intelligence, of which Wikipedia is an example.

Grutter
A youth worker for an Anglican church, who also has a Ph.D. in archaeology and geochemistry.

The main source of debate in editing this topic has been the distinction between evolutionary creationism and theistic evolution. Currently the consensus is to redirect the theistic evolution links to the evolutionary creationism page. Apparently they are not different enough to warrant separate articles for each.

The way discussion seems to work is that someone brings up a suggested change, and then people respond to it or ignore it. When they respond to it, they may either discourage the action or add their own suggestions. If a suggestion is ignored, its originator is free to carry it out. Most disagreements build up until one side accepts defeat and stops posting.

In general, many changes are carried out by a few people who are regular Wikipedia users and also have an interest in the subject. These people often act as editors who maintain the quality of the article. But both small changes and new additions are made by people passing by.

2005/10/10

Reaction to Google Bomb Paper

Deconstructing Google Bombs
Google bombing is a cool idea that I would like to try once I think of a worthy subject. But the purpose of this paper is to determine whether Google bombing can be considered a "social movement." Apparently some cases are social movements, but some are not. The miserable failure Google bomb is not a social movement because it arose from a general dissatisfaction and not specifically to put Bush's biography at the top of a search for "miserable failure." But the Jew Google bomb was specifically organized in response to the appearance of an anti-Semitic website as the first result of a search for "Jew." I'm not sure if the distinction is so clear-cut though. Is "miserable failure" not a social movement because it reflects an existing state of mind, while "Jew" is because it was a new creation?

The issue of who controls media and reality reminded me of The Third Wave, a book which predicts and describes the fall of industrial society and the rise of a new, decentralized society. One interesting topic in the book is the distinction between producer and consumer that industrialism created, which the third wave is supposed to reunite. The Internet is part of that change. Instead of monolithic television stations controlling our representations of reality, media is splitting up into a more democratic form.

Blogs are a relatively new way to bring production back to the people. And Google bombing is a way for groups of loosely connected people to influence the Internet's equivalent of monolithic media producers. That's not necessarily a bad thing. The danger lies in tipping the balance too far from conformity to the side of diversity, where search engines are no longer trusted to provide objective results. Google bombing is an agent of diversity because it increases the number of viewpoints in what makes an objective result. When Google is upholding the objectivity of their search, this underlying conformity enhances the effectiveness of communication; it is a common language. Hopefully Google will remain balanced.

A similar concept is Douglas Adams' idea about communication and the fourth "age of sand" from his speech Is there an Artificial God? There is the conversational one-to-one communication, the hierarchical one-to-many, the democratic many-to-one, and finally the chaotic many-to-many. This many-to-many flavor of communication is now being made possible on a large scale by the Internet. We are still dominated by an industrial one-to-many format by newspapers, television and public education. This separation of production and consumption is unhealthy and stressful. We can't easily do much about the disasters we hear about or the policies of our centralized government. Fixing this problem is the promise of the third wave and the fourth age of sand.

2005/10/06

Kevin Kelly Quote on Thinking and Evolution

Tunneling through randomness
"Some students of the human mind make a strong argument that thinking is a type of evolution of ideas within the brain. According to this argument, all created things are evolved. As I write these words, I have to agree. I began this book not with a sentence formed in my mind but with an arbitrarily chosen phrase, "I am." Then in unconsciously rapid succession I evaluated a headful of possible next words. I picked one that seemed esthetically fit, "sealed." After "I am sealed," I went on to the next word, choosing from among 100,000s of possible ones. Each selected word bred the choices for the next until I had evolved almost a sentence of words. Toward the end of the sentence my choices were constrained somewhat by the words I had already chosen at the beginning, so learning helped the breeding go more quickly."

Exactly.

"What will the next words be that I write in this chapter? In a real sense I don't know. There are probably billions of possibilities of what they might be, even taking into account the restriction that they must logically follow from the last sentence. Did you guess this sentence as the next one? I didn't either. But that's the sentence I found at the end of the sentence."

You can't know exactly what you are going to think next in your head, because if you did you would have already thought it. But you still think; the thoughts make sense and you know that you made them yourself.

Kevin Kelly Quote on Ecology and Evolution

Ecosystems: between a superorganism and an identity workshop
"Because evolution is such a symbolic process, we now can artificially create it and attempt to govern it. But because ecological change is so body bound, we cannot synthesize it well until we can more easily simulate bodies and richer artificial environments."

Ecology is what happens in systems like Tierra, where the evolving species can interact with each other. The evolutionary landscape is the space of possible genomes, while the ecological landscape is the space of interactions between genes, species and the environment.

Kevin Kelly Quote on Exploration and Exploitation

Cooperation without friendship or foresight
"Every complex adaptive organization faces a fundamental tradeoff. A creature must balance perfecting a skill or trait (building up legs to run faster) against experimenting with new traits (wings). It can never do all things at once. This daily dilemma is labeled the tradeoff between exploration and exploitation. Axelrod makes an analogy with a hospital: "On average you can expect a new medical drug to have a lower payoff than exploiting an established medication to its limits. But if you gave every patient the current best drug, you'd never get proven new drugs. From an individual's point of view you should never do the exploration. But from the society of individuals' point of view, you ought to try some experiments." How much to explore (gain for the future) versus how much to exploit (sure bet now) is the game a hospital has to play. Living organisms have a similar tradeoff in deciding how much mutation and innovation is needed to keep up with a changing environment. When they play the tradeoff against a sea of other creatures making similar tradeoffs, it becomes a coevolutionary game."

This is the tension between diversity and conformity. Also, exploration and exploitation are the two key words I came up with for adventure and strategy games.