wololoEN

墨圈的設計:畫圈、切斷與封印

墨圈的規則從哪裡來:為什麼只有被圈住才會死、切斷為什麼不殺人、機器人怎麼調得像人,以及模擬之後改掉的數字。

在墨圈裡,你是一支在宣紙上奔走的毛筆。筆尖一直往前走,滑鼠決定方向;筆畫和自己交叉就形成一個圈,圈裡的墨點全歸你,把別人的筆尖圈進去,就蓋上朱紅的「封」。這篇記錄這些規則背後的考量,以及跑過模擬之後改掉了什麼。想先玩一局的話,墨圈在這裡。

一個核心動詞:畫圈

我們同時規劃了三款 io 類遊戲,第一條要求就是每款的核心動詞都不一樣,免得做成三個換皮的吞噬遊戲。墨圈的動詞是「畫圈」和「切斷」。

規則刻意很少:

  • 每一步都檢查筆尖剛走過的那一小段,有沒有和自己的筆畫交叉。有的話,交叉點、之後畫的筆畫和筆尖就圍成一個圈。
  • 圈裡的墨點全部收走,圈裡的敵方筆尖被封印出局。面積太小的圈不算,免得滑鼠抖一下就意外閉合。
  • 封印者立刻拿到對方四成的墨,另外四成沿著對方的筆畫灑成墨點,剩下兩成消失。

墨點用筆尖直接碰也吃得到,但圈起來效率高得多。整個遊戲的節奏就建立在這個落差上:亂走可以活下來,畫圈才會長大。

只有被圈住才會死

墨圈沒有撞牆死,也沒有撞到筆畫死,碰到紙的邊緣只會沿著邊滑行。唯一的死法是被封印,所以每一次死亡都有明確的「誰、怎麼做到的」,而且一定是對方畫出來的。剛出生的 3 秒內也不會被封印,免得一進場就落在別人的圈裡。

切斷是反制,不是擊殺

筆尖穿過敵人的筆畫,會把那條筆畫從交叉處切斷:比交叉點更舊的部分直接消失,在原地留下一些墨點。

我們刻意不讓切斷殺人。如果穿過別人的筆畫會讓對方死,遊戲就會變成貪食蛇,大家比的是誰先撞到誰。切斷只拆掉對方的網,於是「圍」與「逃」成了主要的攻防。被包圍的時候,切斷圍住你的那條筆畫是唯一的活路,也是整個遊戲最重要的一招。

只消耗閉合的那一段

圈成立時,只有圍成圈的那段筆畫會被用掉,更舊的尾巴會留下來。閉合後整條清空當然比較簡單,但那會讓筆畫長的玩家每圈一次就失去全部優勢。保留尾巴之後,連續畫 8 字、一口氣圈好幾塊地就成了進階技巧。

越大越笨重

墨量就是分數,從 20 開始。墨越多,筆畫上限越長(520 + 2.2 × 墨量,最多 5200),能圈的範圍越大;轉向卻越慢,最小迴轉半徑會從約 55 變成約 82。

io 類遊戲都得給大魚一個弱點,不然第一名會一路滾雪球到底。墨圈的弱點是:長筆畫要繞很久才閉合,這段時間就是小玩家切斷它的機會。

加速也是同樣的思路。按住動作鍵,速度變成 1.75 倍,每秒耗 5 墨,耗掉的墨會在身後滴成墨點。追逐戰會留下一條撿得到的痕跡,給旁邊的第三者一個靠近的理由。

機器人:會圍、會逃,也會犯錯

場上有 24 支機器人筆。它們會繞著墨點密集的地方畫圈覓食,會把另一支筆最近的行跡整個圈起來追獵,覓食時有人跑進圈裡就加速閉合,被包圍時衝去切斷圍住自己的筆畫;侵略型的看到前方有筆畫,還會順手切過去。

讓它們打得贏的,是幾個刻意的限制:

  • 圈得下才追。機器人會估計目標最近約 700 單位的行跡範圍,這個圈超出自己筆畫繞得到的大小就放棄。所以通常是大筆圍小筆。
  • 察覺包圍要時間。謹慎的機器人在敵人筆畫繞了約 220° 時察覺,粗心的要到約 265°;察覺之後還有一段反應時間,技術越好越短,最長將近 0.8 秒。
  • 避開擁擠的墨池。附近已經有其他筆的地方,覓食的吸引力會打折,免得大家擠在一起互相切來切去。

墨與宣紙

三款遊戲各有獨立的美術方向,墨圈是唯一的亮色:米白的宣紙底(#f2ead7),疊上纖維紋理和淡淡的方格線,邊框用較深的紙色加雙線,像篆刻印章的邊。

玩家固定是墨黑,機器人全是彩墨:靛、石綠、赭、藤黃、紫、胭脂⋯⋯在彩色筆畫交錯的畫面裡,先找到自己是第一需求,而黑色在米白紙上對比最高。朱紅只留給印章,不給任何一支筆。

筆畫從筆尖往尾端漸細、漸淡。回饋也借用書畫的語彙:閉合時圈內刷上一層半透明的主人顏色再暈開;封印是一枚略微傾斜的朱紅方印「封」;切斷則是墨花飛濺,加上一個「切」字。

危險提示:把機器人知道的事告訴人

機器人可以精確算出自己被包圍了幾度,人在混亂的畫面裡很難判斷。所以當某一條敵方筆畫繞著你超過 200°,畫面邊緣會浮現朱紅暈影,同時響起心跳聲。

這個角度是「繞行角度」:沿著敵人的筆畫,把它相對於你的方位角變化一路累加。直直經過的筆畫最多算到 180°,真正把你圍住的圈則接近 360°。玩家的暈影和機器人的脫困判斷用的是同一套計算。

模擬之後改掉的地方

照原設計做出來之後,我們用無頭模擬讓 25 支筆跑 5 到 10 分鐘,再看數據。主要的修改有這些:

  1. 開局筆畫從 394 加長到 564。 394 只比最小迴轉圈的周長(約 344)長一點,而人用滑鼠畫的圈幾乎一定更大,結果開局根本閉合不了。加長之後,半徑 80 左右的圈都能閉合。
  2. 切斷改成零和。 原本切斷會憑空掉出墨點,再給切的人 +3。模擬裡每秒發生 20 到 30 次切斷,3 分鐘內中位數墨量就衝到 1200。現在掉落和獎勵都從被切的人身上扣(不會扣到 20 以下)。副作用正好符合設計:長筆畫是負擔。
  3. 墨點集中成會移動的墨池。 均勻散布時,半徑 150 的圈平均只圈到 6 顆,和亂走差不多。現在新補的墨點有六成落在 9 個墨池周圍,圈一個池子能拿 30 到 60 顆。每 25 秒有一個墨池換位置,地圖不會變成固定路線;補充速度也有上限。
  4. 包圍判定改用繞行角度。 原本把周圍切成 16 個扇區來數,從旁邊經過的直線也會被算成 180° 以上,三分之一的機器人隨時處在脫困模式。
  5. 機器人加上反應時間。 原本機器人一被包圍就立刻衝出去,5 分鐘只有個位數的封印。加上察覺延遲、擁擠扣分和「有人進圈就加速閉合」之後,模擬穩定在每分鐘約 9 到 12 次封印。
  6. 介面上的小修正。 切斷一秒好幾次,所以擊殺訊息只播封印。觸控版的小地圖移到左下,把右下角留給加速鍵。

機器人和模擬的做法是三款共用的,細節寫在〈沒有伺服器的 io 遊戲〉。

設計筆記