游戏开发--开源软件11--Firefly(python 服务端分布式框架)||pygame
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
Firefly是免費(fèi)、開源、穩(wěn)定、快速擴(kuò)展、能 “熱更新”的分布式游戲服務(wù)器端框架,采用Python編寫,基于Twisted框架開發(fā)。它包括了開發(fā)框架和數(shù)據(jù)庫緩存服務(wù)等各種游戲服務(wù)器基礎(chǔ)服務(wù),節(jié)省大量游戲開發(fā)的工作時(shí)間,真正做到讓使用者把精力放在游戲玩法邏輯上。用它可以搭建自定義的分布式架構(gòu),只需要修改相應(yīng)的配置文件即可。
優(yōu)勢特性
- 采用單線程多進(jìn)程架構(gòu),支持自定義的分布式架構(gòu);
- 方便的服務(wù)器擴(kuò)展機(jī)制,可快速擴(kuò)展服務(wù)器類型和數(shù)量;
- 與客戶端采用TCP長連接,無需考慮粘包等問題;
- 封裝數(shù)據(jù)緩存服務(wù);
- 可實(shí)現(xiàn)實(shí)時(shí)熱更新數(shù)據(jù)以及游戲邏輯,客戶端玩家無感覺;
- 有幾十個(gè)基礎(chǔ)游戲玩法系統(tǒng)模塊提供組裝使用(v1.3.0提供);
框架介紹
management, firefly 是個(gè)多進(jìn)程、分布式的游戲服務(wù)器。因此各游戲server(進(jìn)程)的管理和擴(kuò)展是firefly很重要的部分,框架通過抽象使服務(wù)器的擴(kuò)展非常容易。
Network,客戶端連接通信、server進(jìn)程間的通信等構(gòu)成了整個(gè)游戲框架的脈絡(luò),所有游戲流程都構(gòu)建在這個(gè)脈絡(luò)上。與客戶端的通信采用的是請求/回應(yīng)式的,所以受到的客戶端的請求,服務(wù)端都會(huì)給出相應(yīng)的回應(yīng),服務(wù)端也能主動(dòng)的推送,廣播給客戶端消息。這些請求是基于指令號的請求。(例如定義101為登陸指令)server進(jìn)程之間的通信時(shí)采用的異步回調(diào)的方式,這樣就減少了的進(jìn)程間通過網(wǎng)絡(luò)通信中的時(shí)間消耗。
Data, 數(shù)據(jù)處理是網(wǎng)游的重要部分。在網(wǎng)游有大量的數(shù)據(jù)需要存儲(chǔ),需要更新,這使得數(shù)據(jù)庫的讀寫效率成為服務(wù)器的最大的性能瓶頸。firefly的db處理能夠?qū)?shù)據(jù)庫表中的數(shù)據(jù)緩存到memcache中并能以對象的形式進(jìn)行調(diào)用相應(yīng)的對象方法對數(shù)據(jù)進(jìn)行操作。可以在不同的進(jìn)程中通過實(shí)例化相同的名稱的緩存實(shí)例,得到同步的數(shù)據(jù)。并能將緩存對象中的數(shù)據(jù)寫回?cái)?shù)據(jù)庫中。
框架思路
一個(gè)最基本的服務(wù)器就是一個(gè)在不停運(yùn)行著的應(yīng)用程序。在分布式游戲服務(wù)器中,我們需要的服務(wù)器具有的功能有,監(jiān)聽客戶端的連接,監(jiān)聽其他服務(wù)進(jìn)程的消息,連接其他的服務(wù)進(jìn)程,有些需要有數(shù)據(jù)庫連接和緩存服務(wù)。如下圖
net connect 做客戶端連接,root監(jiān)聽其他服務(wù)進(jìn)程消息,node連接其他服務(wù)進(jìn)程,db數(shù)據(jù)庫,cache緩存。是否需要監(jiān)聽客戶端連接,是否監(jiān)聽其他服務(wù)進(jìn)程消息等這是都是可以在config.json中進(jìn)行配置。包括各個(gè)服務(wù)器的名稱以及各個(gè)服務(wù)器之間的連接關(guān)系。這樣就可以自定義出自己的分布式架構(gòu)。
Pygame 是一組用來開發(fā)游戲軟件的 Python 程序模塊,基于 SDL 庫的基礎(chǔ)上開發(fā)。允許你在 Python 程序中創(chuàng)建功能豐富的游戲和多媒體程序,Pygame 是一個(gè)高可移植性的模塊可以支持多個(gè)操作系統(tǒng)。
轉(zhuǎn)載于:https://my.oschina.net/u/1389155/blog/174208
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的游戏开发--开源软件11--Firefly(python 服务端分布式框架)||pygame的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STC12C5A60S2笔记8(串口)
- 下一篇: python 没有了matlab的fsc