A world generator and simulator sandbox – currently under development

Main menu

Post navigation

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 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.

13 thoughts on “It’s Alive!”

I’m a mod on the Simulate subreddit. We track and discuss projects of this scope and are working on a webGL platform of comparable scale. I just thought I’d let you know I posted this blog entry and that you might want to discuss it yourself in the comments!

If you have any other good overview or source material please share! I’m hoping to get my own astrometry library in Python going for our planned procedural solar system! We’re also looking for more partners on our codebase, and our engine system is modular so both open and closed components can interface the API! Shoot me an email anytime about that!

Thanks! I appreciate the link! I’d be happy to discuss the project on reddit but the lack of comments to your post tells me nobody’s especially interested just yet. 🙂 (That much is likely my own fault for the lack of activity.)

Wow, good work so far. I’m hopeing to see more on this soon. One question though, are you going to implement pathogens and microorganisms? Or are you just going to stick with the large multicellular organisms?

I don’t plan to simulate microorganisms directly, just their effects. So, diseases will break out and spread and have general characteristics in terms of what they do to the life forms they infect, but their own populations and so forth will not be simulated on their own. I decided this was an adequate tradeoff since trying to simulate yet another level of life forms would make the life simulation far too intensive to be workable.

I honestly don’t know. I have a full-time job and am a single parent and just busy in general. This project gets attention when I have the time and energy. Obviously, I care enough about it to have a site and talk about it, I just have a lot going on that takes my attention and energy away from it. Even so, I’ve been kicking this idea around in one form or another for most of my life, so it’s not likely I will ever give up on it! It just may not be done until I’m 60…

Great question! I actually do differentiate between them, because I generate rivers and (most) lakes separately from oceans. Oceans are assumed to be salt water, and any rivers and lakes generated by the river algorithm will be considered fresh water. Some lakes may be created by the normal terrain generation (as they fall below the designated sea level), in which case they are assumed to be salt water. This may not be the best (most realistic) way to do it, but it will suffice for now. Having two different maps for this already, it shouldn’t be hard to change in the future if I want to take a more accurate approach.

Glad you’re excited, too! I will post again when there are further updates.

A question regarding the simulation, are you going to simulate things like moons, other planets in the simulated planet’s solar system and colonization of said planets and moons by the more advanced species? Or is it just going a simulation of the initial generated planet?

It’s embarrassing how long it’s taken me to come back and reply to this! Oops.

In all honesty, while the system I’m using could support a random mutation model I don’t think that’s in the cards for SagaSim itself. However, it wouldn’t be that difficult to make another program that builds on the species system and permits things like evolution via natural selection. Definitely something I’ve been kicking around.

So I’ve been following this for a long time. I think it’s been two years now, and when I found this I had extremely high hopes for it, but with your last post being over a year and a half ago, I’ve come to accept that this blog is pretty much dead. But, my curiosity gets the best of me time and time again, so I keep coming back. So, I ask, is this blog dead? I know you’re very busy as you said, but on the off chance it’s not dead I’d love to hear that you’d made more progress on it, even if it’s a negligible amount. And if it is, you saying it could at least give me some closure. I hope to hear from you soon.

Well, I do poke at this from time to time, but I don’t want to promise anything. The fact is, I am busy with a lot of stuff and this just doesn’t get as much of my attention as I’d like (which is to say, it gets very little.) I think what I will probably have to do is start from scratch and take another approach to it because I’ve felt stuck on this for a good while.

I very much appreciate your interest and thank you for holding on all the time, seemingly for no reward. Your dedication is not unnoticed. 🙂