Alirobo:用Go開發、WASM驅動的黑客冒險遊戲
鳴謝
本遊戲所用圖片多謝opengameart.org這個開源遊戲美術社群,冇佢哋幫手,真係趕唔切交貨!
我開發咗啲乜?
呢個遊戲入面,你會扮演一個可以變形嘅「道德黑客」機械人,接受老細嘅任務,要用社交工程(Social Engineering)技巧潛入一個秘密地下設施,破解八個唔同嘅伺服器機房。
你要用鍵盤方向鍵去穿梭地道同梯級,第一目標係搵齊所有辦公室。如果入面有員工行嚟行去,你要先撳 S 鍵變成人類外形,但只要再郁就會變返機械人。等員工行埋身,撳 Shift 鍵同佢互動——模擬你用社交工程扮失咗通行證嘅工程師。如果成功,你會攞到新通行證,畫面會有對應伺服器房嘅圖示,表示你可以入去。
有啲辦公室冇員工,但枱上有部電腦。你可以行埋去撳 Space bar 拎密碼,模擬道德黑客發現無鎖機嘅電腦,偷到登入資料。當你攞齊所有通行證,佢哋會開始閃爍,提示你可以去-5同-6層搵伺服器房。
每個伺服器房都要用啱嘅通行證先入到,門口會有阿里雲服務嘅圖示,你要認出係邊個服務,再用對應通行證。每個房有三次試驗機會,失敗就會扣一條命。每成功入一間,就可以繼續去下一間。
當你破解晒所有伺服器房,就返去起點搵你老細。如果全部房都入咗,任務就大功告成,象徵你向老細報告成果,等佢安排安全訓練。
如果你入咗某個房唔知做乜,可以撳 H 鍵攞提示(如果嗰個房有特別規則或者任務)。
遊戲示範
我已經註冊咗個網域,遊戲主機用阿里雲 ECS。注意:遊戲只支援電腦,唔支援手機,同埋舊機可能因為冇 OpenGL 支援玩唔到。
https://www.alirobo.fun/
(請俾啲耐性,可能要等幾分鐘先 load 完!)
遊戲截圖
阿里雲服務實戰經驗
成個遊戲完全用 Golang 開發,然後 compile 做 WebAssembly(WASM)直接喺瀏覽器運行。因為我本身做 backend 都用 Go,就試吓用嚟整 game。為咗支援遊戲,仲寫咗個輕量 Go API,負責記錄同查分榜頭十名。
**原本規劃用阿里雲咩服務?**
– **OSS 對象儲存**:本來打算用嚟 host 靜態檔案(HTML、WASM、JS、圖片)。原因係 OSS 容量彈性大,易同 CDN 結合,全球加速。不過 OSS 預設會令 HTML 變下載檔,唔係直接 render,除非用 HTTPS 同 custom domain,搞到我要搵文件研究先知點解。唔想為咗 HTTPS 又註冊網域,部署時卡咗。
– **CDN + OSS**:想用 CDN 加速圖片,但因為 OSS hosting 有限制,最後冇用到。
– **Function Compute(FC)**:API 原本設計做 serverless function,啱用嚟處理分數 API。但免費額度好有限,試用又唔夠,成本試算落嚟超過每月幾百蚊美金,對於個人 project 根本玩唔起,阿里雲論壇好多人都有同樣投訴。
– **ApsaraDB for PostgreSQL**:想用嚟記錄分數,管理、備份方便。不過一樣係成本同試用限制,唔實際。
– **ECS(雲伺服器)**:最後試下用 ECS container 執行全部服務。不過我測試嗰台 ECS 性能比其他雲 provider 慢咗 20 倍,唔知咩事,搞到用戶體驗好差。
**最後點部署?**
因為成本同設定問題,最後我揀咗最平嘅阿里雲 ECS(每月 11 美金),所有嘢(遊戲、API、PostgreSQL)都放同一個 Docker container,自己搞 HTTPS 反向代理,成本可控又有彈性。
遊戲開發重點
我係見比賽延期先即興參加,時間好趕,code 反映晒壓力(有興趣可以去GitHub睇下)。第一次用 Go 寫 game,順便玩咗 Ebiten 框架,學咗好多關於 rendering、sprite 處理、game loop、角色行為互動。
意外發現最大挑戰係舊 Windows 機因為 OpenGL 支援唔足,搞到 Ebiten 唔 work,原來 graphics API 兼容性咁影響 cross-platform 支援。
雖然時間壓力大又有唔少阻滯,但我都幾自豪,可以咁短時間內由 backend 跨到 browser game,推動 Go 嘗試新領域。
編輯評論|網絡安全教育與開發者生態的現場觀察
這個遊戲明顯唔只係一個技術 showcase。作者用「道德黑客」遊戲化咗現實企業入侵流程,將社交工程、密碼管理等現實資安議題,變成互動體驗,對今日資訊安全教育有啟發意義。遊戲用 badge、icon、社交工程橋段,令玩家唔單止係過關,更要識分辨唔同雲服務,實際上等同資安訓練 gamification。
另一個值得深思嘅係,阿里雲作為中國最大雲平台之一,佢嘅生態對海外開發者仍然有唔少門檻:OSS 靜態文件預設唔 user-friendly,Function Compute、ApsaraDB 成本高昂,免費額度限制多,令 indie developer 或教育用途難以落地。相比 AWS、GCP、Azure,阿里雲明顯未能提供同等 developer experience,特別係試用同小型項目。這種現象其實反映咗中國雲市場同國際市場定位嘅落差——阿里雲更適合大企業或內地市場,對國際開發者友好度有待加強。
最後,遊戲用 Go + WASM 係一個好大膽嘅技術選擇。Go 傳統上屬於 backend 語言,今次作者證明咗佢都可以跨界玩前端互動,對香港甚至亞洲開發圈有啟發:唔好被語言用途框死,創新可以來自「錯配」——用 backend 技術寫 game,反而有新突破。
總結:Alirobo 不單止係一個遊戲,更係資安教育、技術突破同雲平台現實挑戰嘅縮影。對於香港本地開發者、教育界同創業者,呢個案例值得深思:點樣善用現有技術資源、突破平台限制,創造屬於自己嘅創新體驗。