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

Mission Complete! Kinda…

It’s over! Project Chimera Prototype 4 is complete and post mortem has been presented to the class. But Project Chimera is far from complete. I plan to work on it more over the winter vacation, and will likely continue to post my updates to this blog.

I am driving home today and do not have time to upload the finished project to my ftp, but it is up on my Deviant Art page. I will publish a more official version (fixing font issues) when I get home. For now, check it out here:

Project Chimera v0.4


I’ve come up with the absolute simplest way to implement a skill-based randomization for training. The function works as follows:

If a random number between 1 and 15  is greater than the creature’s current stat, that stat increases.

With this formula, it becomes less likely to succeed at increasing a stat the higher it is. It also creates a level cap at 15 because the highest possible “roll” is 15, which can not be greater than 15.

A more complex version of this training system could roll against the cumulative values of all stats, so that one creature could never have more than a certain sum of attribute points. Experience points could then be earned in battle which would add to the creature’s roll score, increasing the likeliness of gaining higher skill points in more stats.