I am a biological chemistry student, programming in my free time to get some practice and to use some of the math I learned. I might move into systems&synthetic biology or bioinformatics or physical chemistry, where programming may be very important.
I did some code on a roguelike type of game, so I can concentrate on what I think is fun and not waste time on things like graphics.
I have some of the basic stuff out of the way, had some fun with procedural generation and now I can think about the actual gameplay.
I am thinking about the game allowing the player to capture creatures and evolve them, like in Pokemon.
The think I run into now is how I combine different parts. They may be body parts or some internal metabolic process. Say I generate creature properties from the set of enzymes they have. Certain enzymes work together. Others do nothing.
Say I want every part/enzyme to have a number. When I combine two numbers I want to get some effectiveness score. This gives me a function of two independent values. Say these go from -100 to 100. Then say I want a function that returns a value between 0 and 10. So what I want is some surface that describes the 'effectiveness landscape'. It is some rolling hill landscape with a few mountains. These maxima are solutions to which parts would be the best to combine.
So I can make this function that is a sum of 9 different variations on f(x,y)=e^-(x^2+y^2). To that I can even add 1/5(cos(x/100)+cos(y/100) to create a saddle so the base of the landscape is never completely flat.
But this now all seems overly complex. A pokemon game just has set types that multiply damage and dice that get rerolled over and over to generate internal values. And what I have is this crazy function in Maple that doesn't even fit onto a page. The more I think about it, the more I think this is just a useless endeavour that will take a lot of time and not produce anything meaningful. Maybe I can just as well make a 10 by 10 table, put some 'effectiveness landscape' inside it myself, and just use that.
Which reminds me that the voice in the back of my head keeps telling me that what I really need is physics simulation engine. Considering my studies, what I really want is some simple model of chemical reactions inside my creatures. Only then I can have some genetics data that can have unique solutions and unique properties. Which then lead me to think I need 3d graphics and crazy stuff I won't have the time for to execute.
I tried to read up what has been said and written about this in gaming. I found a lot on procedural generation, but not a lot on this. If I don't get any good ideas, I might just give up on emergent properties and evolution and just go with procedural generation of creatures, using linear combinations.
Anyone has any ideas? In the end this is just something to get some programming experience, try to use some concepts that I learn, so that the couple of weeks where I do have free time to waste, I do it using game programming and not gaming itself.