七:服務端資產庫資料夾結構
public void createaccount());}
複製**
/*外掛程式的主迴圈處理函式
*/public virtual void process()
複製**
public void createaccount(string username, string password)
/**/
else
}複製**
複製**
public void login());}
複製**
public void login(string username, string password)
/**/
else
}複製**
if(password.size() > account_passwd_max_length)
複製**
else
}複製**
std::string& accountname, std::string& addr, uint16 port)
複製**
std::string& accountname,
std::string& password)
複製**
"""kbengine method.
@type isbootstrap: bool
"""# 安裝監視器
watcher.setup()
if isbootstrap:
# 建立spacemanager
kbengine.createbaselocally( "spaces", {} )
複製**
2. 世界管理器建立出所有的場景
在spaces.py中, spaces通過initalloc函式根據配置中scripts/data/d_spaces.py建立出space實體,space實體描述的是乙個抽象空間,乙個空間可以被邏輯定義為大地圖、場景、房間、宇宙等等。
def initalloc(self):
# 註冊乙個定時器,在這個定時器中我們每個週期都建立出一些space,直到建立完所有
self._spaceallocs = {}
self.addtimer(3, 1, scdefine.timer_type_create_spaces)
self._tmpdatas = list(d_spaces.datas.keys())
for utype in self._tmpdatas:
spacedata = d_spaces.datas.get(utype)
if spacedata["entitytype"] == "spaceduplicate":
self._spaceallocs[utype] = spaceallocduplicate(utype)
else:
self._spaceallocs[utype] = spacealloc(utype)
複製**
def createspaceontimer(self, tid, tno):
"""建立space
"""if len(self._tmpdatas) > 0:
spaceutype = self._tmpdatas.pop(0)
self._spaceallocs[spaceutype].init()
if len(self._tmpdatas) <= 0:
del self._tmpdatas
self.deltimer(tid)
複製**
class space(kbengine.base, gameobject):
def __init__(self):
self.createinnewspace(none)
複製**
class space(kbengine.entity, gameobject):
def __init__(self):
複製**
KBEngine關於網路部分
整個網路介面是在network inte ce.h和network inte ce.cpp開始。配置資訊參考 assets res server kbegine.xml,這裡是網路對外的所有介面。eventdispatcher類是管理事件的乙個類,裡面有註冊 取消讀寫描述符,新增處理任務,出錯包處理...
開源網遊引擎kbengine的使用
從還沒參加工作,我就對遊戲的製作很有興趣,到參加工作,和我師兄通宵蟲很投緣,我們都想製作出一款帶大型的網路遊戲,但由於我們工作平台的限制,無法如願,不過還是做出了幾個單擊遊戲的作品。其實回想起來,我們想製作的不是遊戲,而是乙個世界,更是乙個現實無法給與我們的憧憬。由於我們這方面的積累空白,我打算從開...
KBEngine原始碼剖析1 角色賬號登入和管理
我主要是為了看原始碼,實現,所以後續的部落格,我應該都主要寫自己的原始碼閱讀情況了 登入時序圖 先貼上一張新賬號登入的時序圖。流程分析 一次登陸請求,從客戶端發起,到伺服器響應,涉及到至少5個程序間的互動通訊。pendingloginmgr plinfos ptinfos pendingloginm...