Over six months have passed since The Project began, and it was long before that the ideas were seeded. Pariahpism published his version of The Project origins right away. While this was an accurate description, I feel it is time to post my view on where it all started, what the past six months have involved, and where we might be going with The Project.
It began with an article published in 2007 by Alan Bellows on DamnInteresting.com about hardware evolution, “On the Origin of Circuits”. A comment in this article led me to Kevin Kelly’s book, Out of Control which is fully readable online. Now normally in my internet browsing I am not going to follow a link to a book and end up reading it in its entirety, but that is exactly what happened with Out of Control. The book starts out in Biosphere 2 in Arizona, and I thought, “Hey, I’ve been there!” And it only got more interesting as it went. Who would have thought ecology, philosophy, technology, economies and evolution had so many things in common.
Turns out Kevin Kelly is no scientist or engineer, but he is a hub of information, finding new meaning and understanding in many subjects, especially technology, with direct access to the top thinkers of our time. His blog The Technium continues to amaze and inspire me, while helping me think outside the box.
Out of Control covered a broad range of subjects, but some information seemed to stick out from the rest. I distinctly recall being impressed by the following, from Chapter 2:
In the film Batman Returns a horde of large black bats swarmed through flooded tunnels into downtown Gotham. The bats were computer generated. A single bat was created and given leeway to automatically flap its wings. The one bat was copied by the dozens until the animators had a mob. Then each bat was instructed to move about on its own on the screen following only a few simple rules encoded into an algorithm: don’t bump into another bat, keep up with your neighbors, and don’t stray too far away. When the algorithmic bats were run, they flocked like real bats.
It all came down to simple mathematical algorithms. Throw enough math into the software and, TADA! Biology plays out on your computer screen! Then, Chapter 15 dealt specifically with Artificial Evolution, while Chapter 17 “An Open Universe” expounded on that. Tom Ray and his game Tierra were highlighted, as was the GP master John R. Koza. These would soon become household names to The Project.
Fast-forward to July 2009. Pariahpism had taken to game journaling, and while not being interested in gaming I was surprisingly enthralled by his stories. My experience with software engineering combined with the memories of Origin of the Circuits and Out of Control prompted a sudden want to try to develop something of the same substance, but on a different scale. Imagine gaming journals about a self-evolving, unpredictable game! Immediately ideas started to take hold. We could provide the goals and the necessary environments, but let the games do the work!
After brief but furious discussions on the matter, Pariahpism proceeded to write about a number of game ideas brewing in our heads:
And then the serious research began to see how to go about bringing such ideas to fruition. Little did we know everything that was already out there. Computational Intelligence is a huge realm under AI which includes, among others, Genetic Programming, Genetic Algorithms, A-life, Neural Networks, and so on. Books, websites and whole development environments are relegated to these subjects, prompting us to back up a step and begin collecting information at a rapid pace.
And here we are—still collecting. I have decided to completely overhaul the old website and devote it to The Project, and video gaming in general. Why dailyvillain.com? It started in 2004 as an inside joke, turned nickname, turned URL. It even stood as an acronym on the website for a while—something like Vagabond Interpreting Life’s Lessons and Idiosyncratic Nuances—but that was way too long. Anyway, the web space was already there and now it exists and persists as The Project’s home.
So where is The Project headed? Our original goals still stand. Early versions of Alphabet Soup and various programming languages are the focus of most of our attention for the moment, but concerning the future, anything is fair game at this point. The nice thing is that the interwebs allows the unprecedented vast sharing of information, letting us build on what others have already created. The beauty of Open Source is that it is more than just convenient, it also allows for the acceleration of information sharing, and of course, innovation. That’s what The Project is all about.
For a tad more organization… This blog will help to track our thoughts and progress, while this blog has become the home for the aforementioned gaming journals, other game reviews and pretty much anything game-related.
(Originally published December 10, 2009)
So my latest idea for a game came to me in the shower like all good ideas. I was trying to be less similar to the last few and was trying to do something in the same vein but exactly contrary. Mostly our idea is to use artificial evolution against the player and watch him struggle and die in varying degrees of difficulty. So my thought led me to attempt to think of a way for the player to be the one evolving.
I’ve seen plenty of games that fake evolution. You can buy Evolution Upgrades that either improve you caprice shell or sharpen your pincers with evolution points. I want a game where the engine for evolution is your play-style.
Let’s say there are 10,000 in your herd of The DeathDinkles. They all do what you do in 10,000 similar situations. The only variable is individual strengths and weakness. You avatar only has the strengths; the best of everyone.
You see a bear. Do you fight it, jump over it, climb a tree, outrun it, hide form it, …etc? What you do determines which of your species lives or dies. Half of them have the strength to fight the bear and survive and only a half of them have the fortitude to stave of infection from the wounds inflicted. You could quarter your herd in one simple choice but the resulting herd would carry the traits needed to survive similar situations. The offspring of this herd would have children and a higher likelihood of producing mutations of increased strength, stamina, fortitude and disease tolerance. Pretty soon bears become your easy prey and staple food as was naturally selected (by you). The bears undergo the same evolutionary changes and maybe become faster and stronger, or maybe become lithe, agile and harder to see. Or maybe the fail as a species and go extinct.
So your herd of tough brutes is having increasing trouble with the new agile b’ougars (bear-cougars) and have started to lose population. There are some mountain goats in the west mountain range that seem like easy prey. The high jumps of the mountains split your herd between those that have good balance, equilibrium and jumping strength. The split doesn’t kill the other half, simple divides them into another species variant, The PrairieDinkles, while you become the MountainDinkles. The PrairieDinkles will continue to survive unassisted with an emulation of your behavior prior to the split. They may someday target you as a prey but completely unrecognizable as having a common ancestor.
The mountain goat high rate of reproduction makes them a good sustainable resource. The cold mountain winds and winters weeded out those with thin pelts and make your herd more hardy to the cold weather. Layers of fat to protect against the cold have made your herd a bit slower and not as agile. You, the player, continue to force your herd to areas of increasing agility and cold; contradictory elements usually. You herd thins dramatically and is split many times. The few that can survive your demanding play-style become smaller and wiry; almost rodent like. No longer can you feed on goats unless skeletonized via an en mass assault where many are crushed or hurled off into the abyss. It’s a grim choice but a better one than the losses expected in changing the diet to the local poisonous fauna (perhaps 100%). The massive regular losses from both the climate and behavior engage an high birth rate as being your only saving grace. Birthing twins leads to triplets leads to litters of pups with higher and higher numbers.
I could just go on forever writing this. I think the same could be said for playing it. I can see some cool 2D models for this. There would be different segments for each moving part that would be randomized and passed down each generation. Say like you grew one arm larger than the other giving it greater mass, strength and therefore hitting power. And it became so favorable that it almost became exacerbated into one giant club arm and another small arm on the side for delicate work. Maybe backjointed legs? Longer necks? Nothing would be default except perhaps the parameters. Things would be designed to mailable through chaos and natural selections.
You can’t say, “I want a tiger with a unicorn horn,” and expect it to happen. You’ve got no choice in the way you herd looks, just acts.
There could be a farmer option where favorable traits and looks are grown purposefully with genetic engineering. But that would be an easy little side addon to the main quest part of the game.
It’d be cool if it was a persistent world. Say you got tired of the RodentDinkles and started a new one. You’d be going along and learn of the PrairieDinkles and make them your new prey to your poisonous venom snakes or whatever.
(Originally published October 17, 2009)
Breaking it down: the constant is free will, and the most important variable (so far, that we are aware of) is the amount or “level” of choices available to the participant, be it human, biological agent, or technology program / game.
Level 0: no choices, just actions. You are basically a robot, doing what you are told and not having the ability to realize that there are other choices from which to choose. Levels above this increment exponentially as a set of choices are involuntarily encountered. For instance, level 1 requires that you must make a given choice. You have a pool in Sims; you must choose to add a ladder to it or not. The end result of adding the ladder is that you can escape from the pool; otherwise you drown. Take it up another level. Each decision set leads to more inevitable encounters with the given set of decisions branching off of the original(s). It’s a schematic of logic gates or a roadmap of connections. However you visualize it, realize that the level or “layer” is not dependent on the number of choices per se, but more accurately it is based on the choices you have already made to lead to the present layer. Each choice along the path determines the destination. Obviously if there are more choices available, there will be more possible destinations. In the Sims pool, for example, what if someone jumps in the ladder-less pool and drowns, then a second sim jumps into the pool and also begins to drown. In addition to the choices and the level, there must be a goal–in this case survival. If the need to reach the objective is strong enough, then innovation can take hold–as long as the parameters allow for such choices to be made. In Sims the parameters do not allow it, but what if the person could “figure out” the option of somehow using the other body to climb out of the pool? The real beauty in this emerges when it is not explicitly defined as an option, but it is not explicitly denied as an option either. That is when the available data set of choices may not be as clear, and where the evolutionary game has the potential to surprise us.
There is the pool escape example in Sims, but each level is not necessarily limited to two choices. Another example would be the infinitude of involuntary “choices” at work in our everyday living, breathing bodies (blood pumping, cells working, et cetera). Each process can be observed and broken down–at the most basic level–to options.
Taking that thought further, can every process in our known universe be broken down into 1s and 0s? Maybe not necessarily completely true, but as a general concept it helps organize everything into comprehendible compartments. As another way of thinking about it, can everything be broken down to mathematics? Even the more complex pool example can be literally broken down into thousands of ones and zeros.
One modern accomplishment is our ability as humans to streamline these millions of bits of data by organizing and standardizing these decision-making procedures. The best example of this may be the many levels of programming languages: translating and interpreting the ones and zeros of machine language into higher and higher level languages to the point of understandable human language or even GUI interfaces. All those thousands and millions of ones and zeros are still completely necessary and they are still doing their thing, but it is all transparent to us. We are harnessing the data in a very energy efficient manner. And we’re getting better at it, but I still think we’re only scratching the surface.
A multitude of individual tiny decisions end up determining large-scale, complex operations. Just as organs make up a body, bees make up a hive, and trees make up a forest within the realm of biology, computers have the capacity to organize the “organs, bees and trees” of data into meaningful advancements within the realm of technology. This is an important revelation, but it is not new. One important difference between biology and technology, however, is the fact that biological evolution is bound by biological time. Technological evolution is not. Because we continue to find more efficient means of organizing these technological decision-making processes with tools such as high level languages, behind-the-scenes processes, and so on, we are in essence accelerating the process of evolution through technology. Furthermore, biological evolution is restricted by its boundaries, already defined by layers of earlier decisions defined by physics, history and circumstances. Technology has a similar set of restrictions, but these restrictions are much less limiting. In other words, with technology we are capable of optimizing the evolutionary process because we are not bogged down by biological time, unnecessary appendages, and all those other restrictions with which biology has to contend.
The grand idea out of all of this is that to truly optimize technological evolution to reach its full potential, we need to add another layer of technology. Don’t rely on the slow human who is restricted by his biological brainpower. Let the computer program do that data organizing / mining / evolving. When we are able to achieve this, I expected to be amazed by the results. So we begin with evolution-infused games. The balance in design lies in figuring out where to draw the boundaries: how many options? How many layers? It is all about letting the program make the decisions, but first we have to determine the correct parameters. How do we promote innovation? This will probably be the hard part, and is going to take a lot of research. That, of course, is where we are at for now.
There are still many things to consider, study and write about later to consolidate our pool of knowledge as it progresses. Some more topics I want to deal with at length:
The potential of software memristors.
Coevolution in technology.
Quantum computing potential.