🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Genisis and Growth Formulae

Started by
3 comments, last by cyssis 21 years, 6 months ago
Hi, I have been programming a game system for a few months now (mostly the graphical engine, but somewhat on AI, etc)and I have arrived at a sort of empasse... My game (tenatively titled "Genisis: Origins of Species" is a rts / rpg / fps (I''m not a novice by any means... and I''ve been making significant progress) is based in space, and begins as a space rts. I plan to make it so that the player can control hundreds of planets & races, but I absolutely refuse to program them all... What I was planning to do was to write a sort of data-mipmapping kind of prog. Basically I plan to seed the program w/ major details, and as soon as the player begins to interact with a specific planet and race, the prog would generate the background and history to the races / ecology / and politics of the planet and store it in a database (so that the data is always the same on the same machine). However I''m at a loss as to how to proceed... I''ve never done anything on this massive of a scale (although I have worked w/ evolutionary alg''s before) and I''d appreciate some feedback as to how I should begin... I know it''s somewhat nebulous, but any response (intelligent, not "start typing" ) would be appreciated.
Advertisement
I hope the following is what you are after. If it''s not, then I have misunderstood what you are seeking. This idea is based on randomly selecting a race from a very large set of possible races, without having to store each one individually.

As a first step, you''re going to need to define a set of characteristics that possible races/ecologies/political systems can have.

For example, let''s consider different races. There might be 4 basic types of races: Avian, Terran (and subterranean), Aquatic and Space-based. You might then have different bases for life-forms: carbon, silicon, energy, etc. Now, for land-based life-forms, you might have bipeds, tripeds, quadrapeds, etc. Avian races might have two wings, four wings or something completely different! Finally, you can add racial characteristics: how big are the creatures, how strong, smart, etc.

Given enough of these racial characteristics, you can see that you will end up with a multitude of different races for your world.

You could do the same for political systems and ecologies too, although the latter might be somewhat more difficult (although somewhat determined by the type of race (aquatic, space-based, etc).

To implement a random generation of races, you need to define a one to one mapping from a set of random numbers to the set of possible races. One simple way to do this is to use a random number for each of the characteristic types... so, choose their environment, then choose basis for life, then depending on these, determine physical characteristics. Given the outcome of the environment, determine ecological characteristics. Similarly for the political system and any other random factors you want.

I''m certain there are many other ways of creating random races... this is just one of them.

Cheers,

Timkin
A very funny thing in these kind of "automatically generated games" is to have a "name generator".

I worked in one of these some years ago. And after several days of tweaking, you can made a name generator to generate names that "sound" japanese, or german, or spanish, or english, or whatever, just by modifying some parameters. It''s nice that all the generated names pertaining to a race "sound" more or less equally.

In this way, you can automatically generate the names of the planets, leaders, etc...
hi!
Seems like a nice game idea.
Timkin: your idea is very good, altough a draw back is that the races will turn out somwhat static i think. Unless you have an infinite number of choices for each characteristic i think it will be very easy to see a "pattern" of how the races were created. Land living biped grazer ot land living biped carnivore...see what i mean. This doesnt HAVE to be bad but i think it is a little boring.
Cyssis: you said you had worked with genetic algs before. A thought hit me. Cant you evolve the races from a set of characteristics and then you can evolve all racees in either the same speed or some may evolve faster. The rate of evoulution can depend on if they are bipeds or the amnount of resources on planets etc. Then (of course) you save the state of the evolution after each game. Is this what you mean or do you want all the races to be fully evolved when the games starts?

good luck
--spencer
--Spencer"All in accordance with the prophecy..."
For most species, evolutionary time scales are much much greater than the length of life of a single member of the species. There are very few examples of life on Earth that show evolutionary changes during the average human lifespan. It would be a little unrealistic to meet a race one day, come back a few months or years later and find out that they''ve evolved a 3rd eye, or extra leg!

As to the comment about ''static'' races... well, yes... see above. Most species ARE static (evolutionary wise) for observers. Furthermore, it is VERY unlikely that, given enough different characteristics, that the player would see a lot of land-dwelling bipeds. In fact, the number of land dwelling biped races met would be approximately 1/N, where N is the total number of combinations. It''s pretty easy to generate a large N.

Cheers,

Timkin

This topic is closed to new replies.

Advertisement