iT邦幫忙

2024 iThome 鐵人賽

DAY 2
2

「...我的統治到目前為止都太幸福了,既沒有大規模瘟疫,也沒有殘酷的宗教,甚至連政變也沒有。簡而言之,沒有任何會讓你們作古的原因。所以啦,有點是因為這樣,我試著平衡命運的穩健審慎。我要說的是......不知道你們聽懂了沒(笑),總之,我取代了瘟疫。」

-- <卡里古拉>,卡繆著,嚴慧瑩譯

要記得,調整平衡和開發模型來研究如何平衡,這兩者要攜手並進。因為調整的過程中,你會發現更多遊戲內的交互關係,並做出更好的數學模型來表現這些關係。修改模型的同時,你也會更知道該如何為你的遊戲調整平衡。模型可以指導平衡,平衡也可以指導模型。

-- <遊戲設計的藝術>,傑西.謝爾著,盧靜譯

官方規則目前經歷過三版的變動,需要 BGG 會員身份才能下載。如果需要快速參考,可以閱讀那隻哈士奇在巴哈姆特上的介紹

更生動的版本,可以看逸馬的教學與試玩或是肥龍的六分鐘介紹。我就不一一帶過了。

令人眼睛一亮的規則特色

從玩家角度來理解,疫途拆分了許多抽象棋盤遊戲裡面理所當然的要素,並且將策略決策填補在拆分之後的空隙裡面,從而形成令人驚豔的概念。我舉兩點。

首先是包裝為冥界與人間界的黑白格子。人們、尤其是西方文化浸淫的人們,應該時常接觸黑白相間(或其他顏色)的棋盤格結構。它出現在西洋棋棋盤上、賽道的終點旗幟、甚至國家級的圖騰。然而,它們在遊戲上並沒有強烈的區隔性,最強烈的已經要屬西洋棋的主教了,任一方的兩枚主教,一開始就各自佔據黑、白,終其一局不可能跨越到異色格子去。但疫途之中,冥界與人間界是不會互相干涉的:冥界的棋子就只能走黑格、人間界的棋子就只能走白格。而黑白格的模式,是模組化而隨機擺放的,這增加遊戲的可重玩性和變化性。

隨機舉兩局已經完成設置階段的盤面,可見其冥界與人間界的樣式大不相同:
https://ithelp.ithome.com.tw/upload/images/20240902/20103524Gga2cpqkfg.png

https://ithelp.ithome.com.tw/upload/images/20240902/201035247C0K6BwGCw.png

這麼說來,原本的疫途遊戲當中附贈地圖版塊 8 塊 3x3,雙面都有樣式(這本身當然是個極佳的排列組合題目);雖然沒有明說,但是看起來,指導原則是,不會有任何一列或任何一行全屬同一個世界。然而,我的遊戲系統雖然有確保每個 3x3 版塊符合上述條件,但是沒有排除相同的版塊出現在同一組棋盤設置當中,所以嚴格來說,這裡也有與原版遊戲之間的歧異。

再來是雙棋盤的設計,由小棋盤駕馭大棋盤。一般棋盤遊戲,人們很習慣在格子中指揮自己的棋子移動、行動;但在疫途,玩家能夠直接指定的,是羅盤上的格子;其後,根據羅盤上敵方、己方的相對位置,才能夠定義出大棋盤中的棋子的移動路徑。

關於變體

累積至今,也可以觀察到設計師針對遊戲平衡出手調整數次。變體,對我來說,在遊戲研究的領域裡面,是最迷人的一個研究子題。形式上,調整平衡變體,其實就只是程度之別而已。前者者當然給人一種 DLC 擴充、巨大新增或改變的感受,但後者也同樣是有所不同。最直接的例子是這篇 ACM 文章,它描述了 AlphaZero 演算法如何幫忙計算西洋棋中每一子的子力在不同變體規則當中的變化。

但是我認為,像是DeepMind 使用 AlphaZero 尋找改良西洋棋的機會這種文章,就太超過了,充滿科技傲慢。你有能力有資源,什麼都可以試著去,但良窳優劣,請留給玩家社群和歷史評斷。

又比方說韓國象棋和中國象棋的差異其實很小,但是那些改變可能會造成一些盤面下的對應完全不同。比方說,在軍帳之中的斜線,除了士之外,連炮都可以走的話,那會如何?這很有趣。

我自己最感興趣的就是圍棋的各種變體。規則上的變異,維基百科已經整理得非常精彩,但我也感興趣於更激進的各種變化。但這些部份就只能留待之後有機會再研究了。

Plague、疫病方;Doctor、醫療方。

言歸正傳。疫途目前為止的變化主要是讓疫病方不過於強勢。第一版到第二版的修正中,將疫病方置放的初始四枚病菌限制為禁止同行、同列、或是同一象限;第二版到第三版的修正中,進一步限制四枚改為兩枚。

但變體的想像是無遠弗屆的。舉一個遙遠的例子,交大(現為國立陽明交通大學)的吳毅成老師將五子棋、六子棋的概念參數化,並且率領學生做出後續的貢獻(如確認 7 路與 8 路棋盤的五子棋的解法)。疫途本身也有一些參數,比方說疫病方每著散佈 4 枚、醫療方每著散佈 5 枚的參數。這些如果加加減減會如何呢?還有一些非參數化的,如同上述西洋棋變體探索文章的無入堡、兵走橫等等,或許疫途也有一些更激進的可能性,如打破人間、冥界互不干涉的絕對假設,或至少賦予相關策略條件之類。

雖然牽強、雖然要變的東西不少,但深顏色工作室的新作鳥居,用最遠焦的鏡頭去觀察的話,也可以看作是疫途的一種變體吧?在未來若有足夠彈性的框架,或許有可能令這個敘述不那麼空想。

DeltaPathogen 計畫原初也是想要探索變體的影響,更希望這樣的作業能夠營造出給予遊戲設計師的正向回饋。原團隊恰好又在今年夏季提出了最新的第三版規則,正是可以大展身手的機會!但是,這次的系列文 30 天內應該是無暇顧及了,所以整個系統還是以我最熟悉的第二版規則為主。也許不那麼遺憾的是,在數位遊戲界其實有反向的思路,也就是在遊戲設計的藝術一書中,提到如果想要快速展示遊戲的原型設計(prototype),則一個快速方法是向桌遊設計參考他們的作法。也就是說,其實傳統上來講的桌遊設計,本就不需借助數位工具甚至 AI 來輔助開發。多了這類的工具之後,遊戲的平衡和遊戲的體驗又會如何變化呢?這又是個大哉問了。

紀錄的媒介

大部份的數位遊戲耗時長,不可能一次結束,因此紀錄的內容是最新的遊玩狀態,形式則是該遊戲程式自行定義的編碼(encoding)。有些桌遊像是 Gloohaven 或第七大陸,也是如此,只是當然僅使用人類可以手眼操作的格式。

但是抽象棋類,預期是可以在短時間內完結的遊戲形式,並且對弈過程當中的諸般決策是讓玩家或愛好者最享受的關鍵,因此抽象棋類的紀錄必須要包含其過程,也就是簡單說,要紀錄的東西是棋譜

疫途既然是抽象棋,那稱紀錄為棋譜、賽局為棋局,也無不可吧。

2002 左右,我在當時相當風行的 LGS 上面下圍棋,首次認識到 SGF 格式,因此我在思考疫途的遊戲引擎實作時,一個很初始的構想就從如何建立一個可以輸入、輸出 SGF 的程式部份切入。輸出容易理解,因為總要留個紀錄,至少也是除錯時的重要證據;輸入比較不直覺,但是輸入的存在可以允許我實作由任意給定盤面開始的棋局。

今日也差不多就到這裡了。通篇散文未免技術量不足,因此附上目前我為疫途制定的 SGF 格式定義,明日再分享實作相關部份的時候的故事。

目前狀況

雖然上一篇以首文的姿態解釋了一下 DeltaPathogen 的一些時間點和發展線,但這裡更明確地宣佈給予讀者諸君:我每日的系列文由兩個部份構成,它們來自不同的時間軸。前半部,也就是一些遊戲或技術主題的雜談,是八月初左右開始陸續積攢的文稿(也沒剩幾篇了...);後半部,也就是「目前狀況」以後的內容,則是每日更新上 ITHome 時,開始編輯當日的所得。當然,如果像是今天開始是工作日,我就只能發一些非同步的小實驗與心得,比方說我在開會、執行手邊業務,而一邊將家中的電競筆電(對,本系列文絕無使用公司資源訓練或寫程式)放著跑模擬棋局與訓練模型。

這麼做當然會有個問題,因為兩條時間軸無論如何不是很直覺的體驗,對讀者是如此。對作者的我也算困難,因為有些概念若是已經打算在之後的篇幅提及,那及早亮相就是非序列化的暴雷,不提又不對。那麼就只能在不過度曝光關鍵的情況下在這裡更新九月開始之後的專案進度。

其實在目前來講,我已經試圖讓模型進展了 11 個世代。第 12 世代也同步在以先前世代的模型自我模擬棋局。現在的狀況,一言難盡,也許我到十數天後能夠以到時候已經累積的概念來理解這些訓練過程中產出來的圖表。

https://ithelp.ithome.com.tw/upload/images/20240902/20103524Nw6apOgZuD.png
https://ithelp.ithome.com.tw/upload/images/20240902/20103524pEYOChTM0A.png
https://ithelp.ithome.com.tw/upload/images/20240902/20103524mmnygFrofb.png

也請精於機器學習概念的前輩不吝提點可能可以注意的事項。


上一篇
啟動
下一篇
定義並實作疫途可用的 SGF
系列文
DeltaPathogen:國產雙人不對稱抽象棋「疫途」之桌遊 AI 實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
marsgoat
iT邦新手 5 級 ‧ 2024-09-23 15:00:21

沒想到還有人下過LGS
推一個時代的眼淚

高魁良 iT邦新手 1 級 ‧ 2024-09-23 15:37:27 檢舉

真的,都是大專杯拿序號,拿著拿著它就掰了...

marsgoat 大大的電腦對局系列文!相見恨晚!

我要留言

立即登入留言