It’s been a long time since my last update. Rest assured, I’m not dead, I’ve just been busy with that other game we all love known as “real life.” That said, it’s not that I’ve gotten nothing done on SagaSim. I’ve done very little programming but I’ve been brainstorming other aspects. In particular, I’ve developed the species system in more detail, specifically dealing with traits. In the previous entry, I laid out how the DNA system works. Now, it’s time to define just what all the various DNA-defined traits mean in terms of simulation behavior.
I have the following list of traits so far:
plant animal generalist specialist spore-bearing seed-bearing invertebrate vertebrate fabric producer endothermic ectothermic large-bodied small-bodied aquatic terrestrial scales feathers fur skin exoskeleton woody wings herbivore carnivore algae fern shrub tree burrower ground-dweller tree-dweller deep sea dweller reef dweller conifer fruit-bearing egg-laying live birther predator scavenger nocturnal diurnal baleenic domesticable farmable omnivore flying flightless migratory non-migratory parasitic venomous hive solitary colony pack flocking schooling large brain pollinating grasping appendages opposable digits bipedal sapient
I will no doubt add more and tweak the ones I have. Currently, there is some inconsistency between ones used as nouns and others used as verbs. I will likely adjust those once I decide how best to code them. In any case, I’ve come up with several game elements as a result of these. The following concepts are now part of the species simulation:
- Mobility — Animals can move, plants can’t. This literally just affects whether a species can move from one location to another as part of normal simulation activity. Immobile species can only “move” by reproducing into an adjacent tile.
- Sustenance — Plants need sunlight to live. Animals must eat to live.
- Threat — A value indicating how severe a threat this species poses to others. Think of this like an “attack” statistic from role-playing games.
- Vulnerability — Sort of the inverse of Threat: how easily this species can be harmed by others. This is akin to a “defense” statistic from role-playing games.
- Range — Specialists can live only in the biome type from which they originate. Generalists can live anywhere (so long as their other trait-implied needs are met.)
- Size — Determined by various traits. Size values are exponential: a size of 2 is ten times size 1, size 3 is ten times size 2, etc. This is useful when determining which animals can eat which, as generally larger animals eat smaller ones.
- Resources — Some species produce resources usable by civilizations, such as fabric (think silk.) I will probably come up with more of these, e.g. leather, fur, etc.
- Migration — Some species migrate, which means they can relocate from one tile to another based on availability of food resources. Now, any animal species will migrate in an effort to find food, if food becomes genuinely scarce where they are, but a migratory species will migrate either randomly or just if there is a more optimal source/quantity of food nearby.
- Herding — Animal species can be solitary, or they can operate in packs, or colonies/hives. Animals that operate in herds receive a vulnerability bonus based on their local population. Herding behavior also determines the maximum population for this species on a given tile.
There are some other attributes I’m still roughing out. The next step will be to create the basic species simulation system that simulates populations on a given tile. That one is going to require quite a bit of programming and I might write a blog post about it next, as I work out the particulars.
Most of the brainstorming I’ve done over the past several months was related to the civilization system, so admittedly I’ve neglected the species system in that time, hence the rather sparse update this time around. I’m hoping to get another update done (with actual development progress!) in the next week or two.