GALACTIC CIVILISATION SIMULATOR

Version 3

DOCUMENTATION




CONTENTS




A. Primary theory behind simulator

Assuming a race discovers some technology that allows instantaneous transfer of spacecraft between any two points in space (known from here on as "jumping"), where the energy expenditure is such that it is practical to jump anywhere in the universe, that race would still colonise the nearest habitable systems first in any period of expansion.

The reasoning behind this theory is limited and obviously cannot be validated in our age of pre-stellar civilisation, but is more probable than the alternative(s), in my opinion:

  1. New colonies would wish to be as close to other habitated systems, so in the event of loss of jump technology they could still return within a relatively practical amount of time at sub-light speeds. For example, if a race colonised a random point in the universe, it could be up to billions of light years away, and probably would be giving the vastness of the universe. A journey home would take them an amount of time that could be measured in aeons to get back to civilisation. However, if a nearby star system was colonised (assuming a roughly galactic density of stars), a sub-light starship could probably make the journey back within a lifetime or less.

  2. The psychological effect of being millions of light years away from home could be very large, although this would probably vary broadly depending on the genetic makeup, cultural issues, and historical-geographical constraints on the race's pre-stellar evolution. (For example, a race which had a small birthrate and lifespan, and therefore a low population density, but lived on a very large world, would not be as daunted by the isolation of living hundreds of light years away from their home world.) Such a psychological makeup should also be considered in any models of racial interaction; e.g. xenophobic tendencies.

These two concepts form the basic precept which underlies the whole simulation; the only real constraint on expansion other than minor factors such as colony age and other races.


B. Explanation of some variables in code

Racial variables

[agress]
The variable "agress" is a bipolar measure of a race's general agression towards others. For example, an extreme positive value would probably mean a warlike, bloody violent race who put little value on life in general, for some reason. This generally varies towards one extreme with great age, representing the cyclic nature of race-mentality, perhaps even "penduluming" if the race survives long enough.

[iq]
"iq" is the race's base genetic intelligence. This is basically the factor that determines the race's rate of technological advance. It is difficult to alter unless the race's tech level is very advanced.

[relations[R]]
This is another bipolar variable representing the race's general attitude to each of the other races. It is affected by many factors.
-127: Unity. Same minds, same dreams, same soul. Total alliance.
-64: Friend. Similar interests or brought together in war.
0: Neutral.
64: Hostile.
127: Jihad.

[war_left[R]]
How long a certain war against another race has left, decided by staying power, relations, wisdom and relative size. NOTE: A war in this simulation is defined as ACTIVE agression towards another race; i.e. invasive behaviour. A race can have +127 in its relation towards another race but not be actually at war with them.

[wisdom]
This is not conventional all-encompassing wisdom, but a measure of a race's xenopsychology and philosophy; basically how well they can understand other races alien to them. Also includes historical pragmatism; how well they have learnt from past mistakes. This variable will increase with prolongued exposure to varied alien cultures and wars, but will decrease over times of isolation. A positive value describes a conclusion that war isn't useful, practical or good.

[staying]
How dedicated towards a cause over prolonged lengths of time the race will generally be. Generally increases with age. Is a factor in calculations such as how long wars last, how quickly diplomatic relations alter, etc.

[product]
How productive the race is. e.g. a slug-like race, however intelligent, ain't gonna make much stuff. GRP (gross racial product) is calculated with tech level as well though, simulating automated production technologies such as factories etc.

[policy]
Politics! Not really. Pseudo-politics; basically describes which of the many ways resources are being used at the time.

Varies in wartime etc.

To simplify matters, a certain indice means 50% of resources are being allocated towards that goal and the rest are being distributed evenly.
0 [NONE]: Even distribution
1 [TECH]: Technology
2 [WAR]: War (weapons, vehicle manufactoring, infantry training etc.)
3 [CULT]: Culture (important building restoration/contruction etc.)
4 [COLONY]: Expansion. Default at start -- dawn of interstellar travel!

[tech]
The general technology level of the race. Technology advances made from friendships with other races, intelligence of own race and resource allocation.

[age]
The post-interstellar age of the race in years.

[culture]
Hard to quantify in the real world, but here it's an arbitrary value defining the richness and diversity of the race's culture and heritage. Increased by older colonies, political orientation. Destroyed by prolongued extremes of racial contact, e.g. wars and unifications. The soul of a race.

Some simple relations:
int first_contact_attitude = wisdom * agress
long int GRP = tech * product * total_pop
boolean start_war = (our_grp / their_grp) * (agress / wisdom) + relation/63
int length_of_war = (staying - wisdom) * agress
int yearly_tech_advance = (GRP * policy_factor) * (iq + staying/2)


C. Download the source code

You will need the JDK to compile and run this source code. It runs well on a Pentium II, although the graphics are a bottleneck due to the standard libraries not supporting any kind of single pixel plotting routine.

GalSim.java