網易游戲開發框架,Pomelo 0.3 正式發布
Pomelo 0.3版正式發布
Pomelo 0.3版為移動端性能優化做了很多工作, 新協議的數據包壓縮后的傳輸量僅為0.2版的20%, 并保留了0.2版基于socket.io的傳輸協議。socket.io對開發瀏覽器端器端的實時應用非常適合,而socket(websocket)、 protobuf、二進制等協議則對移動端、桌面客戶端的開發更具優勢。pomelo對它們的同時支持使同時支持瀏覽器、移動、桌面客戶端的高實時應用或 游戲變得非常容易。
服務器的動態擴展是另一個重要的特性, 這不僅使系統適應了彈性的工作環境,也為游戲的一些動態功能提供了更多方便, 如MMORPG游戲的動態副本等。
0.3版還提供了其它很多特性,如新的廣播接口, 新的客戶端支持等。
pomelo 是由網易開發的基于node.js開發的高性能、分布式游戲服務器框架, 也可作為高實時web應用框架。
Pomelo的應用范圍
pomelo最適合的應用領域是網頁游戲、社交游戲、移動游戲的服務端,開發者會發現pomelo可以用如此少的代碼達到強 大的擴展性和伸縮性。當然還不僅僅是游戲,很多人斷言未來的web時代是實時web應用的時代, 我們發現用pomelo開發高實時web應用也如此合適, 而且伸縮性比其它框架好。目前不推薦將pomelo用于大型的MMO rpg游戲開發,尤其是3d游戲, 還是需要象bigworld這樣的商用引擎來支撐。
Pomelo的理念
pomelo的第一個理念是讓游戲(高實時web應用)服務器的開發變得非常簡單, 而不是解決某類算法或系統上的難題。這個設計理念跟rails是很類似的;第二個理念是重視性能和可伸縮性,用戶用pomelo開發出來的游戲天生具有很 強的伸縮性,擴展也很容易。我們在性能優化上也花了很多功夫,并且會持續進行;第三個理念是讓第三方很容易擴展,框架用了很多插件式的設計, 組件component、路由規則、甚至管理控制臺都可以完全由第三方擴展。
Pomelo的框架組成
pomelo包括三部分:
- 框架, pomelo的核心, 與以往單進程的游戲框架不同, 它是高性能、分布式的游戲服務器框架,并且使用很簡單
- 庫, 包括了開發游戲的常用工具庫, 如人工智能(ai), 尋路, aoi等
- 工具包, 包括管理控制臺, 命令行工具, 壓力測試工具等
pomelo特性
- 快速、易上手的游戲開發模型和api
- 高可伸縮的多進程架構, 支持MMO的場景分區和其它各類分區策略
- 方便的服務器擴展機制,可快速擴展服務器類型和數量
- 方便的請求、響應、廣播、服務器通訊機制, 無需任何配置
- 注重性能,在性能、可伸縮性上做了大量的測試、優化
- 提供了較多擴展組件,包括游戲開發常用的庫和工具包
- 提供了完整的MMO demo代碼(客戶端html5),可以作為很好的開發參考
- 基于socket.io開發,支持socket.io支持的多種語言客戶端
為什么使用pomelo?
高并發、高實時的游戲服務器的開發是很復雜的工作。跟web應用一樣, 一個好的開源容器或開發框架可以大大減少游戲開發的復雜性,讓開發變得更加容易。
遺憾的是目前在游戲服務器開發領域一直沒有太好的開源解決方案。 pomelo將填補這個空白, 打造一款完全開源的高性能(并發)游戲服務器框架。 pomelo的優勢有以下幾點:
- 架構的可伸縮性好。 采用多進程單線程的運行架構,擴展服務器非常方便, node.js的網絡io優勢提供了高可伸縮性。
- 使用非常容易, 開發模型與web應用的開發類似,基于convention over configuration的理念, 幾乎零配置, api的設計也很精簡, 很容易上手。
- 框架的松耦合和可擴展性好, 遵循node.js微模塊的原則, framework本身只有很少的代碼,所有component、庫、工具都可以用npm module的形式擴展進來。任何第三方都可以根據自己的需要開發自定義module。
- 提供完整的開源MMO游戲demo參考(基于HTML 5)。 一個超過1萬行代碼的游戲demo,使開發者可以隨時借鑒demo的設計與開發思路。
在線演示:http://pomelo.netease.com/demo.html