Flatdom,一次对于文明演变的探秘

23 February 2015

为何?

一个文明总是不可避免地从最开始开拓蛮荒之地,然后安居,不断发展到繁荣,最后湮灭在战火下。我对于这么一个兴衰的过程非常好奇,所以通过编程试图模拟。我把这个模拟简化成了只有三件类型的事情可以发生,探索,发展和战争。

什么是 Flatdom?

Flatdom 是一个二维的世界。这个世界有无数网格组成。每一个网格可以理解成一个特定的区域。这里可以是一个定居点,Flatone(Flatdom 里的小生物)在里面发展;或者是一片荒蛮之地,等待被探索。Flatone 不停地通过探索向相邻的网格扩张并且发展已有的定居点。Flatone 有许多不同的阵营,并且彼此会因为想占有同一个荒蛮的网格而引发战争。

Flatdom 里具体发生了什么?

Flatdom 里每一个网格都有一个 power index 去表示这里的定居点发展程度,或者这里的蛮荒之地开拓艰难程度。

有三种类型的事件可以在一个网格里发生,

  1. 探索:对于蛮荒之地的网格,临近的 Flatone 定居点可以派遣一组人员去占领此地,并丢失和该地的开拓艰难程度相对应的 power index。
  2. 发展:对于有定居的网格,可以经历发展,大概率 power index 得到增长。
  3. 战争:对于有定居的网格,如果临近的网格有其他阵营的定居点,并且该定居点的 power index 更高,那么对面阵营就有可能侵略此网格。每次战争会减少双方的 power index,直到一方 power index 降低为 0,这一方的网格就被对面阵营占领了。

每一轮的模拟,所有网格会依次计算一遍发生上述事件的概率。这些事件发生与否由自己和相邻网格 的 power index 决定。目前这个概率符合 normal distribution,但是战争的优先级最高。

Flatdom 模拟是怎么样的?

下面的截图展现了一个 8x8 的 Flatdom 里如何进行演变的。最开始,Flatdom 只有很少的网格被两个阵营占领。

Flatdom at 0th iteration

经过几轮模拟,变成了这样,

  1. 大多数的蛮荒之地都被占领并定居。
  2. 大多定居点的 power index 都因为发展而增加。
  3. 战争以及在一些网格发生了,可以看出那里的 power index 被降低。少量被对立阵营包围的网格甚至已经被侵略和占领。

Flatdom at 10th iteration