Pomelo 是基于 Node.js 的高性能、分布式游戲服務器框架。它包括基礎的開發框架和相關的擴展組件(庫和工具包),可以幫助你省去游戲開發枯燥中的重復勞動和底層邏輯的開發。Pomelo 不但適用于游戲服務器開發, 也可用于開發高實時 Web 應用,它的分布式架構可以使 Pomelo 比普通的實時 Web 框架擴展性更好。

Pomelo 特性
- 快速、易上手的游戲開發模型和api
- 高可伸縮的多進程架構, 支持MMO的場景分區和其它各類分區策略
- 方便的服務器擴展機制,可快速擴展服務器類型和數量
- 方便的請求、響應、廣播、服務器通訊機制, 無需任何配置
- 注重性能,在性能、可伸縮性上做了大量的測試、優化
- 提供了較多擴展組件,包括游戲開發常用的庫和工具包
- 提供了完整的MMO demo代碼(客戶端html5),可以作為很好的開發參考
- 基于socket.io開發,支持socket.io支持的多種語言客戶端
Pomelo 的框架介紹
Pomelo Framework的組成架構如圖所示:
![pomelo框架]()
- Server management, pomelo 是個真正多進程、分布式的游戲服務器。因此各游戲server(進程)的管理是pomelo很重要的部分,框架通過抽象使服務器的管理非常容易。
- Network,請求、響應、廣播、RPC、session 管理等構成了整個游戲框架的脈絡,所有游戲流程都構建在這個脈絡上。
- Application, 應用的定義、component管理,上下文配置, 這些使pomelo framework的對外接口很簡單, 并且具有松耦合、可插拔架構。
Pomelo 的架構設計目標
在 web 應用中, 每個服務器是無狀態、對等的, 開發者無需通過框架或容器來管理服務器。 但游戲應用不同, 游戲可能需要包含多種不同類型的服務器,每類服務器在數量上也可能有不同的需求。這就需要框架對服務器進行抽象和解耦,支持服務器類型和數量上的擴展。
客戶端的請求、響應與 web 應用是類似的, 但框架是基于長連接的, 實現模式與 http 請求有一定差別。 廣播是游戲服務器最頻繁的操作, 需要方便的 API, 并且在性能上達到極致。
盡管框架盡量避免跨進程調用,但進程間的通訊是不可避免的, 因此需要一個方便好用的 RPC 框架來支撐。
應用的擴展性很重要, pomelo framework 支持以 component 的形式插入任何第三方組件, 也支持加入自定義的路由規則, 自定義的 filter 等。
為什么使用pomelo?
高并發、高實時的游戲服務器的開發是很復雜的工作。跟 web 應用一樣, 一個好的開源容器或開發框架可以大大減少游戲開發的復雜性,讓開發變得更加容易。遺憾的是目前在游戲服務器開發領域一直沒有太好的開源解決方案。 pomelo 將填補這個空白, 打造一款完全開源的高性能(并發)游戲服務器框架。 pomelo 的優勢有以下幾點:
- 架構的可伸縮性好。 采用多進程單線程的運行架構,擴展服務器非常方便, node.js 的網絡 io 優勢提供了高可伸縮性。
- 使用非常容易, 開發模型與web應用的開發類似,基于 convention over configuration 的理念, 幾乎零配置, api 的設計也很精簡, 很容易上手。
- 框架的松耦合和可擴展性好, 遵循 node.js 微模塊的原則, framework 本身只有很少的代碼,所有 component、庫、工具都可以用 npm module 的形式擴展進來。任何第三方都可以根據自己的需要開發自定義 module。
- 提供完整的開源 MMO 游戲 demo 參考,一個超過1萬行代碼的游戲 demo,使開發者可以隨時借鑒 demo 的設計與開發思路。
如何使用pomelo開發?
通過以下參考資料將使我們很快地熟悉 pomelo 的全貌與開發過程:
通過demo代碼的學習將使你熟悉一個完整MMO游戲的開發:
您可能還喜歡
本文鏈接:Pomelo:網易開源基于 Node.js 的游戲服務端框架
編譯來源:夢想天空 ◆ 關注前端開發技術 ◆ 分享網頁設計資源