It’s Alive!

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.