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:使用計算可約性的紙筆帝國遊戲