The above image gives an example of the gene creation language that we are working on. There are two stages to writing a gene. The first is specifying various properties of the gene and the second is implementing it's behaviors. Because individual genes can be very complex we have begun the creation of a language in Emergence for their creation. Currently it mainly exists in C++ as a series of C-processor macros for prototyping. All the gene code gets compiled and optimized.
I won't currently go into details about what all the code does as nothing is in stone as of yet but I'll give a general idea. The gene in question "Spike" codes for the ability to create a sharp Spike on an organism. Now having this gene alone won't result in a spike on the organism, other genes are necessary to decide where it's placed etc...) The gene has two parameters that may mutate and evolve rate (length of spike and damage done) and angle which determines the angle that the spikes protrudes at. It goes through a couple steps of phenotype refinement as other genes can affect it. The gene also determines the shape of the spike so as genes mutate the shapes of the parts that make up creatures do as well. When the shapes change properties of the shapes (area, volume, sharpness, etc...) change as well that may affect other genes/processes. This makes genetics in emergence very dynamic.
We hope to make the creation of genes available for those whom purchase the software.