--- title: 可水平擴展之遊戲伺服器框架 tags: Diagram description: 以Golang開發附載平衡之模組化遊戲伺服器框架 --- # 可水平擴展之遊戲伺服器框架概念 --- 此篇文章為遊戲後端框架設計之解說 --- ### 整體後端系統架構 ![](https://i.imgur.com/R8X3Vb8.png) - 使用相關技術: - MySQL - CDN - Load Balance - MongoDB - MySQL - Redis Cluster - InfluxDB+Grafana - Golang - WebSocket/Tcp - 使用相關概念: - 服務容器化 - 訂閱者模式 - 模組化程式設計 - 可水平擴展之服務: - Game Service - GRPC Service - GameLogic Service ![](https://i.imgur.com/LzYXMhZ.png) --- ### 對戰類型遊戲設計 - Game Logic為各遊戲模組(可水平擴展) - Match Logic為配桌模組(可水平擴展) - Bot Logic為機器人陪打模組(可水平擴展) - 玩家登入後進行遊戲配桌,並至指定的Game底下開始執行遊戲,若開啟機器人陪打 則機器人模組也會從配桌模組中加入至遊戲模組進行遊戲 ![](https://i.imgur.com/tNyStZ9.png) --- --- ## 流程類型遊戲設計 - Game Logic為遊戲核心(單一執行) - CMD Logic為指令模組,將指令傳遞至Game Logic進行控制 - Game Logic將流程發布至Redis/NSQ等消息隊列的Server, Game Service則訂閱指定的Topic來處理時程上傳遞過來的Event 玩家進行遊戲只需在Game Service接收Event並遊玩 ![](https://i.imgur.com/xAz1wWc.png)