I’ve been thinking about making a game that demonstrates the concepts related to evolution. Specifically, the interaction between genes, mutation, and selection. I started thinking about a game that gives you control of the genes of one clade of decendants and the computer gets control of the other clade. Both competitors get a few changes to the genetic code every generation and you get to see who wins.
But then I got to thinking, if I were intelligently planning gene changes. If I could I’d first imagine genes like a sequence of code. I’d build up blocks of alternate code for different ways to make a beak if I were working on birds. Each alternate might take some time to build but then one of the gene changes could simply be to load a different kind of beak. That would be a one step way to make a big change in the genes expressed by a creature.
I wonder if that actually happens in reality.































































Take a look at http://boxcar2d.com/ to see how they dealt with genetic algorithms.
The best bet is to run generations of a population, where each one is judged by its ability to reach a certain goal. In real life, that goal is reproduction, and the result of that is a new generation that contains half of the genetic code from each parent, plus a certain percentage chance of a genetic mutation.
In real life, well, it’s still even not quite so simple, but one thing for sure is that a mutation cannot all of a sudden produce a new design for an existing function (i.e. a brand new beak design—like from a pelican beak to a duck bill—within a generation).
One of the reasons I posted this was I was having trouble articulating it and I wanted more practice.
I’m a software engineer and with that in mind, if I could run a genetic experiment, I’d try to encode a new beak for a bird in some unused area of the DNA. DNA has start and stop bits or something, right? If I can find jump bits that jump the code to different sections kind of like function calls, then I’m in business. And I agree that my thought experiment isn’t going to happen naturally. So in this sense I’m wondering more about what I can do to code in DNA. In computer programming languages I can make various functions and then swap exactly one line to change lots of behavior and that’s where I’m coming from.
I did just stumble across this http://ds9a.nl/amazing-dna/ “DNA seen through the eyes of a coder” and that’s some fascinating stuff.