卡坦世界的(持續)演變
卡坦世界(Catan World)的(持續)進化|Massively Fun
卡坦世界(Catan World)的(持續)進化
卡坦世界(Catan World)的(持續)進化
2012 年 8 月 17 日
今天是個非常特別的日子。Goko(一家懷抱宏大夢想的新銳公司)於今日正式推出其 HTML5 遊戲平台,首發作品包括《Dominion》與 Ranier Knezia 的《Forbidden City》,並同步預覽了《Catan World》——這款經典桌遊的大型多人線上版本。想一窺《Catan World》的遊戲畫面,不妨參考 VentureBeat 與 GeekWire 的專題報導。截至目前為止,各方反應熱烈,玩家普遍感到興奮。(其他媒體報導包括:Gamespot、Games.com、Shacknews、TechCrunch、All Things Digital、GigaOM、redOrbit。)
《Catan World》由 Massively Fun(也就是我們!)為 Goko 與 Catan GmbH(《卡坦島》原始創作者)聯手打造。隨著預覽版正式公開,我們終於能敞開大門,與大家分享開發背後的故事。
進化歷程
HTML5 遊戲領域仍處於萌芽階段,正如平台本身一樣嶄新。Dean 與我(本專案兩位核心工程師)在打造協助遊戲順利上市的開發工具過程中,玩得十分盡興。我曾隨手截下遊戲在各個開發階段的畫面,起初並無明確目的,但回頭細看遊戲如何一步步演進,實在趣味盎然。
首批圖塊
Canvas 非常出色。它提供極簡的繪圖 API,搭配硬體加速渲染與高效的 JavaScript 執行環境,無需任何外掛程式,即可具備打造互動遊戲的基本工具。然而,這些基本工具就僅止於「基本」。真的非常基本。要在畫布上顯示第一張圖片相當容易,要讓該圖片動畫化也相對簡單;但除此之外,一切便不再那麼直觀。
HTML5 Canvas 中的圖形採用「即時模式」(immediate-mode)繪製——意味著一旦形狀繪製完成,Canvas 本身便不再保留對該形狀的任何記憶。因此,開發者必須自行實作實體管理(entity management)等機制。若想實現比單一動畫圖像更複雜的功能,就必須圍繞遊戲實體及其渲染基元(rendering primitives)建立抽象層。於是,Dean 就在短短一天(或類似瘋狂的時間內)完成了這項工作。接著,他著手撰寫最初版本的遊戲核心——地圖視圖。
相關: — 現成的藝術作品、工具和模板可直接放入您的 Unity 專案中.
上方影片展示了 Dean 製作的首批動畫圖塊。(有興趣的讀者可參考 Dean 在 Cascadia Ruby 大會上的演講,其中更深入探討了 Canvas API 與實體管理等主題。)
全新 HUD
留意各段影片,你會發現遊戲的 HUD(頭頂顯示介面)持續演進。Massively Fun 團隊多數成員來自消費性產品開發背景,而「快速迭代」正是該領域的核心精神。我相信這一點在本專案中得到了充分體現。
無限地圖
Massively Fun 的另一款遊戲《WordSquared》以其廣袤無邊的棋盤聞名。我們希望在《Catan World》中重現這種體驗。這意味著我們的地圖視圖必須能識別自身在世界中的相對位置、請求對應區域的資料,並即時繪製出來。上方影片即展示了這一過程。
我們的選擇: — 涵盖 Unity、Unreal、C++、C# 和着色器编程的点播课程.
網路化地圖
在《Catan World》中,所有玩家共享同一個由多塊棋盤組成的巨大平面。我們不能僅為每位玩家的島嶼載入獨立的「關卡」或「棋盤」記憶體實例;相反,系統必須支援隨意平移至世界任意區域,並即時呈現該處的玩家活動。
全新美術與遊戲機制
迭代持續進行,美術團隊為我們帶來了煥然一新的精美版本,取代先前的粗糙草稿。眾人歡欣鼓舞——這款作品終於開始像一款真正的遊戲了!
同時,「戰爭迷霧」(Fog of War)機制正式引入,旨在讓玩家清楚掌握哪些世界區域已被探索。《卡坦島》與《WordSquared》在某個關鍵面向上截然不同:在《WordSquared》中,玩家透過放置圖塊來創造世界;而在《卡坦島》中,世界早已存在,等待玩家探索與征戰。為了傳達同樣的「玩家參與感」,我們需要設計一項緊密連結玩家行為的機制。雲層效果恰好胜任此職。
Alpha 版本:本地資源可見性與世界探索
這對我們而言是重大里程碑。首次,全體團隊成員得以坐在各自的電腦前,共同進行一場《卡坦島》對戰。此版本引入了數項有趣的新機制:
-
船隻:作為破除迷霧、往返島嶼之間的交通工具。這開啟了若干元遊戲(metagame)策略空間,我們至今仍持續探索。船隻雖能揭開島嶼周圍的迷霧,卻不會顯示資源數字。這讓玩家在決定進駐某島前,能大致掌握其佈局,同時保留一定風險——那些看似豐饒的木材與磚塊產區,若對應數字為 2 或 12,或許值得先派偵察兵探查。
-
偵察兵:用於揭示資源數字(並進一步驅散迷霧)。有趣的是,資源數字的揭示係以「每位玩家」為單位獨立計算。遊戲過程中,你可能看見其他玩家在特定資源點周圍建立聚落,卻完全不知該資源的擲骰數字為何。你可以選擇朝該方向建設,或派出自己的偵察兵來揭曉真相。
音效與發展卡
沒有音效怎能稱之為遊戲?這是我們在音效上的初次嘗試——尚未加入背景音樂,但已實作數項關鍵音效。同時,「進度卡」(Progress Card)機制正式加入遊戲,大幅改變了整體玩法。也正是在此時,我們確立了基本的「強盜」(robber)功能(此處不贅述),我只想說,它為遊戲增添了更多緊張感與壓力。
新版 HUD 迭代、移民者機制與行動點數
此階段引入了「行動點數」(Action Points, AP)系統:
- 穿越迷霧需消耗行動點數。
- 移動移民者(Settler)所消耗的 AP 數量則視情況而定:若沿道路移動,且該道路歸屬不同玩家,消耗值亦有所不同。
我們捨棄了偵察兵,改以移民者取而代之。為因應遊戲的非同步特性,有必要重新檢視初始遊戲條件。每艘船(遊戲中存在多艘)搭載一定數量的移民者,而每名移民者可轉化為一座聚落與一段道路。將初始聚落設置限制於移民者當前所在位置,強化了遊戲早期「搶地」階段的競爭壓力。
移民者雖可自由在地圖上移動,但此舉會減少可用於擲骰的行動點數。因此,即便地圖另一端有更優質的圖塊,玩家也可能選擇儘早定居,以換取更多擲骰機會。
行動點數系統的引入,讓我們能純粹透過調整「行動經濟」來微調遊戲平衡,無需頻繁改動核心遊戲機制——這確實是一大優勢。
《卡坦世界》登陸 iPad
在 Massively Fun,我們是 HTML5 與 JavaScript 的堅定擁護者,甚至為此舉辦專屬的 Meetup 聚會。基於開放技術開發遊戲的一大優勢,在於其無所不在的潛力——任何採用這些技術的平台,皆可能成為遊戲的目標運行環境。這意味著《卡坦世界》目前已能在 Windows 與 Mac OS X 上的多種瀏覽器中流暢運行。我們的無畏領袖 Grant 已成功將遊戲移植至
在瀏覽器中建立 HTML5 遊戲
基于浏览器的无代码 HTML5 引擎,可导出到 Web、移动设备和桌面