Project Mendel

Genetics has always been a big fascination for me, but especially the ways it can be simulated and used as a game mechanic. I first explored this concept in Chimera by using genes that contained images of creature parts. To create offspring, I had a fairly simple function that randomly selected which parent each gene would be inherited from. I also had no form of mutation, because each part was a set size and shape.

I recently decided to try a new experiment in genetic simulation that would allow me to prototype different concepts of genetics and crossbreeding. Over a few nights I put together a processing sketch using the Recursive Tree script as a starting point. Because plants are much more simple than creature, they can easily be drawn by a computer program, given a set of parameters, and produce a wide variety of forms.

I turned the values used to define the structure of the tree, such as branch angle and size, into numbers stored in each plant as gene objects. As I made the plant drawing process more complex, adding branch width and a possible random deviation every time it draws a branch, I simply added a gene to the plants’ genome to define its individual expression of this value. I then select two plants and put then through a process of one point crossover. This takes the values of one parent’s genes up to a specific, randomly selected point and then “crosses over” and takes the rest of the genes from the other parent.

I’m not sure where this project might lead, but right now I am using it as a platform for testing various methods for gene organization, mutation and crossover which can then be applied to plants or animals. I do think there is interesting potential for a small (mobile or online) game involving the cultivation and crossbreeding of plants which allows the user to create new and interesting looking plants in a virtual garden.


Chimera Update

Play Chimera

I recently fixed up the Chimera prototype I started in college with embedded fonts and tutorial boxes to explain how to play the game. It’s still a very rough prototype, particularly in the combat which I find extremely boring. I have plans for an improved combat system, but I’m not sure when I will get to actually implementing it. Right now I’ve begun to redirect my focus to the genetics simulation.

I have begun a new prototype to test and tweak new methods of organizing and crossing genetic information that are closer to the way real genetics combine when reproducing. While working on Chimera, it has always been in the back of my mind that the same genetic breeding system could be used to define the appearance of plants as well as creatures. With that in mind I began to code what I am currently calling Project Mendel. More on this soon.

Chimera: Genesis and the Constructor

Since I graduated from SCAD I’ve been redesigning and programming the basic structure of Project Chimera. Since I haven’t done much updating on my progress since then, I figured I would give a simple explanation of the main structure of the program I’ve been writing.
There are two major static classes, one that handles the importing and functions for DNA, and one that takes the DNA and translates it into “physical” parts which each creature is built from. I named these two programs Genesis and Constructor.

Genesis takes XML files describing genes, creates Gene objects based on the XML information and puts them in a global collection of all genes. These genes can be selected and placed in a DNA array, either through predetermined or random selection, or by crossing over two DNA arrays. The DNA is then passed to the Constructor which creates Part objects based on the genes in the DNA array. Parts are then attached to a Creature object and the Constructor produces a new-born creature.

Chimera Reboot

A lot has happened since I completed the first iteration of project Chimera. Now that I’ve completed my classes at SCAD, I will be further developing project Chimera. I plan to rework the structure of the DNA and rewrite a lot of the code.

Features of the new version of Chimera include:

  • More realistic genetic crossover
  • Mutation
  • Part size modification
  • Color
  • Interactive Animation

Project Chimera v0.5

I’ve polished up the Project Chimera prototype I submitted for class to include, primarily, embedded font, help information, and a title screen. And without further ado, here it is:

Play Project Chimera