天天看點

開源伺服器架構 基于Firefly + cocos2d-x的卡牌手遊《暗黑世界V1.0》源碼開放下載下傳

Pomelo

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://www.oschina.net/p/pomelo

Firefly

Firefly是免費、開源、穩定、快速擴充、能 “熱更新”的分布式遊戲伺服器端架構,采用Python編寫,基于Twisted架構開發。它包括了開發架構和資料庫緩存服務等各種遊戲伺服器基礎服務,節省大量遊戲開發的工作時間,真正做到讓使用者把精力放在遊戲玩法邏輯上。用它可以搭建自定義的分布式架構,隻需要修改相應的配置檔案即可。

優勢特性

采用單線程多程序架構,支援自定義的分布式架構;

友善的伺服器擴充機制,可快速擴充伺服器類型和數量;

與用戶端采用TCP長連接配接,無需考慮粘包等問題;

封裝資料緩存服務;

可實作實時熱更新資料以及遊戲邏輯,用戶端玩家無感覺;

有幾十個基礎遊戲玩法系統子產品提供組裝使用(v1.3.0提供);

架構介紹

management, firefly 是個多程序、分布式的遊戲伺服器。是以各遊戲server(程序)的管理和擴充是firefly很重要的部分,架構通過抽象使伺服器的擴充非常容易。

Network,用戶端連接配接通信、server程序間的通信等構成了整個遊戲架構的脈絡,所有遊戲流程都建構在這個脈絡上。與用戶端的通信采用的是請求/回應式的,是以受到的用戶端的請求,服務端都會給出相應的回應,服務端也能主動的推送,廣播給用戶端消息。這些請求是基于指令号的請求。(例如定義101為登陸指令)server程序之間的通信時采用的異步回調的方式,這樣就減少了的程序間通過網絡通信中的時間消耗。

Data, 資料處理是網遊的重要部分。在網遊有大量的資料需要存儲,需要更新,這使得資料庫的讀寫效率成為伺服器的最大的性能瓶頸。firefly的db處理能夠将資料庫表中的資料緩存到memcache中并能以對象的形式進行調用相應的對象方法對資料進行操作。可以在不同的程序中通過執行個體化相同的名稱的緩存執行個體,得到同步的資料。并能将緩存對象中的資料寫回資料庫中。

架構思路

一個最基本的伺服器就是一個在不停運作着的應用程式。在分布式遊戲伺服器中,我們需要的伺服器具有的功能有,監聽用戶端的連接配接,監聽其他服務程序的消息,連接配接其他的服務程序,有些需要有資料庫連接配接和緩存服務。

net connect 做用戶端連接配接,root監聽其他服務程序消息,node連接配接其他服務程序,db資料庫,cache緩存。是否需要監聽用戶端連接配接,是否監聽其他服務程序消息等這是都是可以在config.json中進行配置。包括各個伺服器的名稱以及各個伺服器之間的連接配接關系。這樣就可以自定義出自己的分布式架構。

基于Firefly + cocos2d-x的卡牌手遊《暗黑世界V1.0》源碼開放下載下傳

http://www.oschina.net/news/43361/firefly-game-download

轉載于:https://www.cnblogs.com/weierfr/p/3365655.html