Firefly是免費、開源、穩定、快速擴展、能 「熱更新」的分佈式遊戲服務器端框架,採用Python編寫,基於Twisted框架開發。它包括了開發框架和數據庫緩存服務等各類遊戲服務器基礎服務,節省大量遊戲開發的工做時間,真正作到讓使用者把精力放在遊戲玩法邏輯上。用它能夠搭建自定義的分佈式架構,只須要修改相應的配置文件便可。 node
優點特性 數據庫
框架介紹 json
management, firefly 是個多進程、分佈式的遊戲服務器。所以各遊戲server(進程)的管理和擴展是firefly很重要的部分,框架經過抽象使服務器的擴展很是容易。 緩存
Network,客戶端鏈接通訊、server進程間的通訊等構成了整個遊戲框架的脈絡,全部遊戲流程都構建在這個脈絡上。與客戶端的通訊採用的是請求/迴應式的,因此受到的客戶端的請求,服務端都會給出相應的迴應,服務端也能主動的推送,廣播給客戶端消息。這些請求是基於指令號的請求。(例如定義101爲登錄指令)server進程之間的通訊時採用的異步回調的方式,這樣就減小了的進程間經過網絡通訊中的時間消耗。 服務器
Data, 數據處理是網遊的重要部分。在網遊有大量的數據須要存儲,須要更新,這使得數據庫的讀寫效率成爲服務器的最大的性能瓶頸。firefly的db處理可以將數據庫表中的數據緩存到memcache中並能以對象的形式進行調用相應的對象方法對數據進行操做。能夠在不一樣的進程中經過實例化相同的名稱的緩存實例,獲得同步的數據。並能將緩存對象中的數據寫回數據庫中。
框架思路 網絡
一個最基本的服務器就是一個在不停運行着的應用程序。在分佈式遊戲服務器中,咱們須要的服務器具備的功能有,監聽客戶端的鏈接,監聽其餘服務進程的消息,鏈接其餘的服務進程,有些須要有數據庫鏈接和緩存服務。以下圖 架構
net connect 作客戶端鏈接,root監聽其餘服務進程消息,node鏈接其餘服務進程,db數據庫,cache緩存。是否須要監聽客戶端鏈接,是否監聽其餘服務進程消息等這是都是能夠在config.json中進行配置。包括各個服務器的名稱以及各個服務器之間的鏈接關係。這樣就能夠自定義出本身的分佈式架構。 框架
Pygame 是一組用來開發遊戲軟件的 Python 程序模塊,基於 SDL 庫的基礎上開發。容許你在 Python 程序中建立功能豐富的遊戲和多媒體程序,Pygame 是一個高可移植性的模塊能夠支持多個操做系統。 異步