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.

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

Combat Prototype

Combat Prototype

Play Prototype 3

I have completed a preliminary combat prototype and quickly learned that having automated, non-interactive combat is kind of boring and leaves the player feeling very detached from the experienced. The alternative would be a Pokemon-style battle system where the player gets to choose which moves to use; moves expend energy; energy is determined by stamina. Creatures would also have a defend ability which allows them to take less damage if hit next turn (augmented by their constitution score).

There will also eventually be animated sprites that are played for each attack, while the creatures move back and forth to indicate attacks, dodges and hits.

Another key feature missing from this prototype which will be implemented in the next 2 weeks is training. Now, when you try to fight a creature and lose, you simply have to try again with another creature. In the final prototype, after you lose a battle you will be able to choose to train your creature in one of the traits which will increase it by 1 point. Trained ability, of course, is not genetically transferred.