日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

游戏服务器端引擎——DogSE的设计

發布時間:2024/8/26 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 游戏服务器端引擎——DogSE的设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

就DogSE的設計目標來說,它定位為千人左右的頁游服務器,在不修改任何底層模塊的情況下可以快速的寫各種游戲業務。就算是新人在熟悉2~3天后也可以開始寫一個游戲。


1、DogSE的基本結構



對于一個游戲再代碼層面可以分為3個部分

1.與所有游戲無關的代碼(DogSE的Core和Library 項目)

2.特定游戲類型的基礎代碼

3.具體游戲相關的業務代碼

對于DogSE來說,它所完成的任務就是與游戲無關的底層代碼,在第二階段,會根據不同的游戲類型,補充一些特定游戲的基礎代碼,這些基礎代碼是已例子的方式提供,真正在用引擎開發時,只需要根據具體的游戲類型,選擇對應的例子,并再這個基礎上進行快速開發。

2、DogSE一些組件的設計

2.1 網絡層設計

網絡層主要由2個對象組成Listener和ClientSession,當Listener開啟監聽后,當有socket發起連接后,會觸發SocketConnect的事件。事件里面會帶有一個ClientSession的對象用來區分每個客戶端。這里采用模板,可以對每個客戶端綁定一個指定類型的業務邏輯數據。目前這個T是消息包處理的NetSate對象。
?



2.2 消息包處理

消息包處理目前Core只提供了一個Byte讀和寫的基本類(PacketReader和 PacketWriter),后期根據不同項目的需求,可以采用不同的解析協議。DogSE默認用自定義的二進制流讀寫,后面將試著支持google的protobuf,以及一些其它的交換數據(json,xml)
?



2.3 任務隊列

任務隊列游戲運轉的核心,任務分為網絡任務(NetTask)和非網絡任務(ActionTask,ParamActionTask),網絡任務主要是客戶端發起的請求,而買手游非網絡任務可能是某些定時回調的任務,一些異步任務的回調。PacketHander主要負責網絡消息id對具體業務邏輯綁定。



2.4 時間調度

時間調度會開啟一個線程監測當前時間調度隊列里的TimeSlice對象是否達到執行要求。達到觸發要求,會向TaskManager里添加一個ActionTask對象,用來執行對應的游戲業務邏輯。
?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的游戏服务器端引擎——DogSE的设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。