桌上遊戲是近年來迅速成長的產業之一,由於近幾年疫情的影響,人們參與大型戶外活動的意願相較疫情前有所降低,相較於在外接觸陌生人,這時待在家中或是與熟識的少數朋友小聚成為許多人的選擇,進而意外促進了許多產業的蓬勃發展,而桌遊便是其中之一。
由於我個人本身對桌遊也抱持著濃厚的興趣,因此我的碩士論文便以桌上遊戲的視覺化為主題,希望能在明確的空間定義下找出相似的遊戲,而我的研究資料來自於BGG 這個網站,它是全球最大的桌遊論壇,上面刊載的桌遊多達數十萬筆,我透過網路爬蟲從中獲取數據。
在這篇文章中,由於篇幅有限,我主要的介紹目標是呈現我的視覺化成果,因此若是需要更為詳細的資訊,歡迎查閱我碩士論文 的內容或是與我聯繫。
A little bit EDA #
在呈現視覺化的篇幅之前,我先為快速為接下來出現的幾張圖所使用到的變數做一些簡單的說明。
-
Gametype:在這裡我們把它稱為遊戲屬種,一款遊戲的屬種是由BGG上的用戶投票決定的,一款遊戲會有 1 到 3 個屬種,而屬種的類型一共有 8 個,它們分別是
抽象策略遊戲
、主題遊戲
、家庭遊戲
、兒童遊戲
、派對遊戲
、策略遊戲
、戰爭遊戲
及可定制策略遊戲
,它們分別描述了不同的遊戲。 -
Category:在這裡我們把它稱為遊戲類別,遊戲類別的部分變數數量相對較多,共分為 83 個,因此在這裡我們便不一一介紹,遊戲類別代表著遊戲內有使用到 的元素,例如
戰爭
、卡牌
、科幻
、經濟
和戰鬥
等等。在一款遊戲中的遊戲的類別通常不只一個,在這筆資料裡一款遊戲甚至可以達到 14 個類別。 -
Mechanic:在這裡我們把它稱為遊戲機制,遊戲機制是一個多達 182 種機制的類別變數,由於遊戲機制眾多,而大多數的機制都不是太過熱門,少數如
擲骰子
、棋盤遊戲
、手牌管理
、收集要素
等等較為熱門,而一款遊戲的機制數目更是可以來到遊戲類別的兩倍不止。
透過這其中幾個變數的說明我們可以發現它們是一個複雜的 multivalue 問題,並且同時因為資料十分稀疏,因此若是未經處理便直接對其進行分析,那麼將會造成這個稀疏矩陣所擁有的資訊量並不足以釐清變數之間的關係,那麼我們便無法從中獲得足夠的資訊。
Data Visualization #
在這裡我主要將呈現兩個部份的視覺化結果,它們分別對應到遊戲類別與各遊戲之間的關係,首先讓我們看到遊戲類別的部分。
Category #
在遊戲類別的視覺化中,我將矩陣做了轉制處理,因為我好奇遊戲類別之間的關係,同時我們懷疑在不同的遊戲屬種上可以看到有不同的類別取向,例如客群面向家庭及兒童的遊戲所擁有的類別標籤,與注重策略的遊戲會擁有不同的類別標籤,嘗試了許多方法後,我們最後採用 Jaccard 計算較熱門類別之間的距離後,利用 PCA 對遊戲類別做資料視覺化的呈現,而PC1 與 PC2 的解釋變異也多達 17%。
在第一張圖中,我們透過兩個算法的相互配合,讓原本難以被定義距離的類別之間可以在二維空間有很好的呈現。
備註:在圖中抽象策略、戰爭、兒童的遊戲類別標籤與遊戲屬種不同,擁有特定類別的標籤不代表就是該屬種的遊戲。遊戲類別並不能如同遊戲屬種一樣提供使用者投票,因此可能較符合原始遊戲設計師的類別定義。
在這張圖中我們可以看到各遊戲類別之間的關係,從對桌遊類別語意的直接解讀而言,在圖的上半部分多為戰爭相關的類別,中間部分的策略成分較高一些,左下角為一些帶有主題例如冒險、奇幻類的遊戲,右下部分看似表現不好誤將兒童與恐怖等遊戲混雜在一起,但這只是因為在二維空間下他們的距離無法被拉開所導致,如果我們從 PC2 及 PC3 的角度來觀察結果,便可以將兒童與恐怖遊戲分開,它們分別位於下圖中的左上方與左下方。
但到這裡為止並不是完整的呈現,我們在這裡使用遊戲屬種為遊戲類別上色。同時我們提取所有屬於該類別的遊戲,接著將它們的第一個遊戲屬種之於全體遊戲屬種之間的比例進行權重調整,最後取最占比最高的屬種來決定這一個遊戲類別是屬於什麼遊戲屬種,目的是避免上色時存在遊戲屬種數量優勢的問題。
我們可以看到上色後的結果如同我們猜測一樣,不同的遊戲屬種上可以看到有不同的類別取向,同時他們可以被很好的區分及視覺化。
Games #
接著我們下一步將對遊戲之間做視覺化的呈現,透過加入如遊戲機制、複雜度等等其他處理後的變數,更甚至是遊戲屬種也做權重調整後加入,因為我們的目標並不是將遊戲分群,而是將遊戲之間的關係釐清做視覺化呈現。我們可以看到遊戲的四張桌遊地圖,它們分別代表我對不同需求所構建的視覺化成果。
Orginal #
這是一張原始版本的桌遊地圖,它對應的是沒有對運算過程做權重調整的輸出,相較於其他版本,這張地圖的受眾可以是所有想了解桌遊之間關係的人,透過可以被解釋的距離,我們可以很好的看出遊戲之間的關係,因此在呈現上除了最左邊的抽象策略屬種以外,其他的屬種彼此之間並沒有相互拉開距離,也很好的反映出現代的桌遊其實大多與過去如圍棋、象棋和西洋棋等抽象策略遊戲已經有所不同。
Category #
相較前者而言,在這張桌遊地圖中,我們增加了遊戲類別的權重,調整後的結果使得相近遊戲類別的遊戲更加接近了,同時也稍微拉近了一點相同屬種的遊戲之間的距離。如果目標是找尋一款遊戲畫風或是主題相近的遊戲,那麼將遊戲類別的權重加重可能是一個不錯的選擇。
Mechanic #
接著是關於較注重遊戲機制的桌遊地圖,遊戲機制的權重加重可以讓我們更好的找到玩法相近的遊戲。但由於不同屬種之間的遊戲在遊戲機制的區分上並不明顯,因此在加重機制權重佔比的地圖中我們發現在各桌遊屬種上的分佈更加混雜,這張地題對策略遊戲等較注重機制玩法類的遊戲可能會有較好的效果,目標受眾是想尋找玩法相近的遊戲。
Gametype #
最後是遊戲屬種的桌遊地圖,透過加入相對較高額的遊戲屬種權重讓不同屬種的遊戲彼此分開,但又不過分將其他資訊稀釋而讓遊戲屬種之間不至於完全分開,在搜索同屬種的相近遊戲上可以有不錯的表現,適合目標為尋找同屬種遊戲的人群,例如找尋彼此相近的派對遊戲等。
Website Demo #
在完成資料視覺化之後,我們將桌遊地圖透過架設至網頁 上讓使用者可以進行實時的互動,我們可以從第一張圖片中的搜索欄位輸入遊戲的名稱,按下繪製結果後便可得到該遊戲在選定權重種類的局部放大圖及全圖,並可以透過滑鼠與圖片進行互動。使用者可自行選擇四種權重來查看不同的結果。而下方的表格為以歐式距離計算,距離目標遊戲最近的 30 個遊戲。
首先我們先查看原始權重的桌遊地圖實例,讓我們以 Azul 這個遊戲為例,這是一款透過拼湊花磚在遊戲中比較得分的桌遊,我們可以看到除了遊戲本身的其他版本以外,其餘的遊戲許多都具有拼圖的遊戲元素存在,並且它們多有相近的遊戲機制成分。
接著我們查看遊戲類別權重加重的桌遊地圖實例,接著我們以 Carcassonne 這個遊戲為例,我們扮演了想尋找相近遊戲元素的使用者,我們可以從圖中看到在下方的表格中,許多遊戲都具有中世紀、城堡、城市建造等遊戲元素存在,同時也存在同款遊戲的其他版本。
我們以 The Resistance: Avalonl,也就是大家所熟知的阿瓦隆來查看遊戲機制權重加重的桌遊地圖實例,我們從想尋找溝通推理的用戶角度出發,在下圖的下方表格中,許多需要玩家之間溝通推理等的遊戲可以被很好的看到。
最後我們以 Agricola,在台灣名稱為農家樂,同時也是台灣早期被稱為「神農電波」四大策略桌遊之一的知名遊戲來查看遊戲屬種權重加重的桌遊地圖實例,在這裡我們扮演的是想尋找重度策略遊戲的使用者,我們可以從下圖中的表格,我們可以看到 Terra Mystica(神秘大地)、Power Grid (電力公司)、Puerto Rico(波多黎各)等遊戲均在表中。
Conclusion #
透過不同的視覺化方法對桌遊資料做解析後,使我們對遊戲之間的關係有更深入的認識。增加遊戲類別的權重將加強輸出結果之間遊戲主題的相關性,同時將遊戲屬種之間的距離做些許的拉近。而遊戲機制會使輸出的結果更加偏向遊戲性,而遊戲屬種之間亦會相互混雜。它們兩者對將桌遊地圖視覺化缺一不可,僅透過類別或機制均無法對遊戲整體的相似做較好的還原。最後我們透過加入些許遊戲屬種與其他變數的資訊可以讓目標客群相近的遊戲可以更容易被互相吸引,但遊戲屬種的權重過高會造成不同群體的遊戲之間無法互相被看到,因此調整適當的權重是十分重要的。