Sortis:使用計算可約性的紙筆帝國遊戲

Sortis 是一款紙筆帝國遊戲,旨在提供類似 Minecraft 或 OGame 的程序化、全自動資源發展遊戲體驗——卻不需要電腦。遊戲的核心設計哲學圍繞「計算可約性」,讓玩家能在不模擬每一回合的情況下計算帝國的未來狀態。

透過 LFSR 產生程序化地圖

Sortis 使用在單一位元組上運作的線性回饋移位暫存器(Linear Feedback Shift Register,簡稱 LFSR)來產生 256×256 的格子世界。此方法只需紙筆即可創建程序化產生的地圖,免除骰子或計算機的需求。

產生演算法

要產生地圖,玩家需在 0 到 255(0x0–0xFF)之間選取兩個種子($s_x$ 與 $s_y$)。每個軸的序列使用以下公式產生:

$$\text{step}(s) = ((s \ll 1) & \text{0xFF}) \mid (b_8 \oplus b_7 \oplus b_2 \oplus b_1)$$

對於任意格子 $(x, y)$,地形值 $v$ 為 X 序列第 $x$ 個數字與 Y 序列第 $y$ 個數字的 XOR:

$$v(x, y) = \text{LFSR}^x(s_x) \oplus \text{LFSR}^y(s_y)$$

地形與礦石等級

地形由 $v$ 的值決定:

Value Terrain
$v < \text{0x75}$ 水域
$\text{0x75} \leq v < \text{0xE0}$ 森林
$v \geq \text{0xE0}$ 山脈

對於山脈格子,礦石等級由該值二進位表示的尾隨零數決定。例如,值 0xE0(二進位 11100000)有五個尾隨零,因而為 ore(5)。這產生的分布使得 ore(n+1) 平均比 ore(n) 稀有兩倍。

遊戲機制與資源進程

玩家協調代理人(agents)探索、開墾土地並建造建築,以提升工作坊等級,這是遊戲的主要目標。

建築類型與成本

建築成本遵循指數曲線($2^n$),其中 $n$ 為建築等級。

  • 住宅(House): 成本 $2^n$ 木材。每升一級可容納一名額外代理人。
  • 工作坊(Workshop): 成本 $2^n$ ore(n)。建造或升級其他建築至等級 $n$ 必須先有此建築。
  • 採集器(Extractor)(鋸木廠/礦場): 成本 $2^n$ 木材(鋸木廠)或 $2^n$ ore(0)(礦場)。每回合產出 $n+1$ 單位。
  • 冶煉廠(Smelter): 成本 $2^n$ ore(n)。將 $2^n$ ore(n) 與 $2^{n+1}$ 木材轉換為 1 個 ore(n+1)。
  • 道路段(Road Segment): 成本 ore(d)。在陸地上 $d=0$。若為橋樑,$d = \text{距離海岸的距離} + 5$。

代理人規則與後勤

代理人是遊戲的主要行動者。必須實際站在格子上才能執行動作。

  • 局部性(Locality): 資源必須位於目標格子上才能進行建造。
  • 行動經濟(Action Economy): 代理人每回合只能執行一項動作(移動、開墾、建造或操作)。
  • 授權(Authorization): 代理人必須拜訪等級 ≥ $n$ 的工作坊,才能獲得建造等級 $n$ 的授權。
  • 移動(Movement): 移動成本依地形而異:已開墾土地/道路 1 回合,森林 2 回合,山脈 3 回合。水域徒步不可通行。

回合管理與計算可約性

Sortis 不要求模擬每一回合,而是鼓勵玩家使用閉式公式來預測資源累積與代理人移動。

回合日誌(Turn Log)

玩家維持一份只記錄重大事件(例如建築升級或代理人行為變更)的回合日誌。由於產出是恆定的,玩家可以直接跳過數百回合,直至達成特定資源目標的時點。

代理人投射(Agent Projection)

對於在循環中移動的代理人(例如在兩點之間運送資源),玩家可利用模數算術在任意未來回合 $t$ 直接算出代理人的位置,而無需模擬中間步驟。

社群見解與說明

早期玩家的討論指出原始規則中若干模糊之處:

"規則說山脈的『礦石等級等於其十六進位值的尾隨零數』。但範例中將 E0 視為 ore(5),只有在以二進位計算尾隨零時才成立。"

此外,使用者也提出了關於起始 ore(0) 的取得方式、車輛容量的精確公式(列為 $2N$)以及撿起或放下資源是否算作消耗回合的行動等問題。


摘要

Sortis 是一款以紙筆進行的資源發展遊戲,利用線性回饋移位暫存器(LFSR)產生程序化地圖,並透過閉式公式讓玩家能跳過回合、預測資源累積。

標題

Sortis:使用計算可約性的紙筆帝國遊戲

Sources