RoboVerse:結合建造與戰鬥的3D機械人網頁遊戲
我參與了由Alibaba Cloud主辦的Build a Web Game挑戰,並開發了一款名為RoboVerse的創新3D機械人主題網頁遊戲。遊戲結合了創意的建造機制和戰略性的戰鬥玩法。玩家可以透過直觀的自定義系統設計自己的獨特機械人,選擇不同的頭部、身體、手臂和腿部,每個部件都會影響機械人在戰鬥中的能力。
這是我第一次接觸vibecoding,讓副駕駛完成大部分工作。
遊戲示範
你可以到 https://roboverse.humanless.app/ 體驗遊戲。
遊戲的原始碼已上傳到 GitHub。
Alibaba Cloud服務實施
最初,遊戲設計運行在ECS(Elastic Compute Service)上,使用自動擴縮群組。後來,為了優化成本,我將架構轉移到SAE(Serverless App Engine),這樣可以根據用戶需求彈性調整資源,而不需要一直運行實例。所有架構均通過Terraform以基礎設施即代碼(IAC)的形式實施,便於在需要時輕易部署到其他帳戶。
實施過程中遇到的一些挑戰包括激活每個服務、使用Terraform進行服務部署,以及解決自定義域名與CDN(內容分發網路)的兼容性問題。此外,Cloudflare提供的免費邊緣TLS加密服務需要作為代理使用,而非直接的CNAME DNS,這導致域名驗證過程中的一些麻煩。
### SAE系統組件
1. **內容分發網路(CDN)**
* 全球靜態資產分發
* 減少紋理、模型和腳本的載入延遲
* 針對不同檔案類型的優化快取策略
* 支援HTTPS和HTTP/2
2. **Serverless App Engine(SAE)**
* 自動擴縮的Node.js應用程式
* 內建負載均衡
* 零基礎設施管理
* 按需付費模式
3. **物件儲存服務(OSS)**
* 遊戲資產儲存
* 玩家存檔數據
* CDN的源服務器
4. **ApsaraDB RDS(MySQL)**
* 玩家資料
* 排行榜數據
* 遊戲統計數據
5. **容器註冊表**
* 應用程式容器映像
* 自動部署流程
6. **安全組件**
* RAM(資源訪問管理)用於訪問控制
* VPC(虛擬私有雲)安全群組
* SSL/TLS加密
### SAE每月成本估算(100位活躍用戶)
基於美國西部1區(硅谷)的Alibaba Cloud定價:
1. **Serverless App Engine**
* vCPU使用量:每月25.20美元(0.5 vCPU × 720小時)
* 記憶體使用量:每月12.60美元(1GB × 720小時)
* 請求處理:約每月8美元
2. **ApsaraDB RDS(MySQL)**
* RDS.MySQL.s1.small:每月34.50美元
* 儲存(20GB):每月2.76美元
3. **物件儲存**
* 儲存(預估50GB):每月1.15美元
* 請求和頻寬:約每月3美元
4. **容器註冊表**
* 基本實例:免費
* 儲存:約每月1美元
5. **數據傳輸**
* 內部:免費
* 互聯網出口:約每月10美元
總估算每月成本:98.21美元
註:與基於ECS的架構相比,這約相當於節省29%的成本。實際成本可能會根據使用模式、數據傳輸和儲存需求而有所不同。無伺服器模型確保您只需為實際資源消耗付費。
### 成本優化提示
1. 為基本ECS實例使用預留實例以節省30%
2. 實施適當的快取以減少數據庫負載
3. 謹慎配置自動擴縮閾值
4. 使用OSS生命周期規則管理儲存成本
5. 監控和優化數據傳輸模式
遊戲開發亮點
* 互動式3D機械人建造和自定義
* 實時機械人戰鬥與物理引擎
* 基於雲端的存檔系統,使用Alibaba Cloud OSS
* 全球排行榜由ApsaraDB提供支持
* 從CDN預載音效資產
* 使用Serverless App Engine(SAE)實現擴縮
作者:Kevin Heidt [@kevin_heidt_d73c1752454fb](https://dev.to/kevin_heidt_d73c1752454fb)
作為編輯,我對這篇文章有以下的想法和評論:
首先,這篇文章詳細介紹了RoboVerse遊戲的開發過程和技術實現,特別是在使用Alibaba Cloud服務方面。作者對於雲端服務的選擇和優化有深入的理解,並能夠將這些技術應用到實際的遊戲開發中。
遊戲的開發涉及多個方面的技術,包括3D建模、物理引擎、雲端儲存和數據庫等。作者能夠將這些技術整合在一起,開發出一個具有互動性和實時性的遊戲,這是相當不容易的。
此外,作者還分享了關於成本優化的經驗和技巧,這對於遊戲開發者和雲端服務使用者來說是非常有價值的。通過使用Serverless App Engine和優化資源使用,作者成功地降低了遊戲的運營成本。
然而,我也注意到文章中有些部分可以進一步闡述和優化。例如,作者可以提供更多的遊戲開發過程中的挑戰和解決方案,以及如何使用Alibaba Cloud服務來實現遊戲功能。
總的來說,這篇文章對於遊戲開發者和雲端服務使用者來說是非常有啟發性的。通過學習作者的經驗和技巧,讀者可以更好地理解如何使用雲端服務來開發和運營遊戲。