Firefly是免費、開源、穩定、快速擴展、能 “熱更新”的分散式遊戲伺服器端框架,採用Python編寫,基於Twisted框架開發。它包括了開發框架和資料庫快取服務等各種遊戲伺服器基礎服務,節省大量遊戲開發的工作時間,真正做到讓使用者把精力放在遊戲玩法邏輯上。用它可以搭建自定義的分散式架構,只需要修改相應的配置檔案即可。
基本介紹
- 中文名:遊戲服務端開源引擎
- 外文名:firefly
- 特點:開源、穩定、快速擴展
- 屬性:遊戲伺服器端框架
優勢特性
- 採用單執行緒多進程架構,支持自定義的分散式架構;
- 方便的伺服器擴展機制,可快速擴展伺服器類型和數量;
- 與客戶端採用TCP長連線,無需考慮粘包等問題;
- 封裝數據快取服務;
- 可實現實時熱更新數據以及遊戲邏輯,客戶端玩家無感覺;
- 有幾十個基礎遊戲玩法系統模組提供組裝使用(v1.3.0提供)
框架介紹
Network,客戶端連線通信、server進程間的通信等構成了整個遊戲框架的脈絡,所有遊戲流程都構建在這個脈絡上。與客戶端的通信採用的是請求/回應式的,所以受到的客戶端的請求,服務端都會給出相應的回應,服務端也能主動的推送,廣播給客戶端訊息。這些請求是基於指令號的請求。(例如定義101為登入指令)server進程之間的通信時採用的異步回調的方式,這樣就減少了的進程間通過網路通信中的時間消耗。
Data, 數據處理是網遊的重要部分。在網遊有大量的數據需要存儲,需要更新,這使得資料庫的讀寫效率成為伺服器的最大的性能瓶頸。firefly的db處理能夠將資料庫表中的數據快取到memcache中並能以對象的形式進行調用相應的對象方法對數據進行操作。可以在不同的進程中通過實例化相同的名稱的快取實例,得到同步的數據。並能將快取對象中的數據寫回資料庫中。
框架思路
一個最基本的伺服器就是一個在不停運行著的應用程式。在分散式遊戲伺服器中,我們需要的伺服器具有的功能有,監聽客戶端的連線,監聽其他服務進程的訊息,連線其他的服務進程,有些需要有資料庫連線和快取服務。如下圖