複製鏈接
請複製以下鏈接發送給好友

firefly

(9秒社團-遊戲服務端開源引擎)

鎖定
Firefly是免費、開源、穩定、快速擴展、能 “熱更新”的分佈式遊戲服務器端框架,採用Python編寫,基於Twisted框架開發。它包括了開發框架和數據庫緩存服務等各種遊戲服務器基礎服務,節省大量遊戲開發的工作時間,真正做到讓使用者把精力放在遊戲玩法邏輯上。用它可以搭建自定義的分佈式架構,只需要修改相應的配置文件即可。
中文名
遊戲服務端開源引擎
外文名
firefly
特    點
開源、穩定、快速擴展
屬    性
遊戲服務器端框架

firefly優勢特性

[1] 
  • 採用單線程多進程架構,支持自定義的分佈式架構;
  • 方便的服務器擴展機制,可快速擴展服務器類型和數量;
  • 與客户端採用TCP長連接,無需考慮粘包等問題;
  • 封裝數據緩存服務;
  • 可實現實時熱更新數據以及遊戲邏輯,客户端玩家無感覺;
  • 有幾十個基礎遊戲玩法系統模塊提供組裝使用(v1.3.0提供)

firefly框架介紹

[1] 
圖1 圖1 [1]
management, firefly 是個多進程、分佈式的遊戲服務器。因此各遊戲server(進程)的管理和擴展是firefly很重要的部分,框架通過抽象使服務器的擴展非常容易。
Network,客户端連接通信、server進程間的通信等構成了整個遊戲框架的脈絡,所有遊戲流程都構建在這個脈絡上。與客户端的通信採用的是請求/迴應式的,所以受到的客户端的請求,服務端都會給出相應的迴應,服務端也能主動的推送,廣播給客户端消息。這些請求是基於指令號的請求。(例如定義101為登陸指令)server進程之間的通信時採用的異步回調的方式,這樣就減少了的進程間通過網絡通信中的時間消耗。
Data, 數據處理是網遊的重要部分。在網遊有大量的數據需要存儲,需要更新,這使得數據庫的讀寫效率成為服務器的最大的性能瓶頸。firefly的db處理能夠將數據庫表中的數據緩存到memcache中並能以對象的形式進行調用相應的對象方法對數據進行操作。可以在不同的進程中通過實例化相同的名稱的緩存實例,得到同步的數據。並能將緩存對象中的數據寫回數據庫中。

firefly框架思路

一個最基本的服務器就是一個在不停運行着的應用程序。在分佈式遊戲服務器中,我們需要的服務器具有的功能有,監聽客户端的連接,監聽其他服務進程的消息,連接其他的服務進程,有些需要有數據庫連接和緩存服務。如圖2。
圖2 圖2 [1]
參考資料