【實戰】Unity3d實戰之Unity3d網路遊戲實戰篇(6):服務端框架的搭建
Unity3d實戰之Unity3d網路遊戲實戰篇(6):服務端框架的搭建
學習書籍《Unity3d網路遊戲實戰》 羅培羽著 機械工業出版社
本文是作者在學習過程中遇到的認為值得記錄的點,因此引用的程式碼等資源基本出資羅培羽老師的書籍
以下為個人的學習簡記,與諸君共論 由於U3D的官方案例Tank Tutorial中對坦克的基本操作已經有了詳盡的描述,因此本文著重於面板系統、服務端基本網路框架和客戶端基本網路框架的搭建
如有疑問或者描述錯誤的地方,歡迎各位提出或修正,討論交流是獲取和鞏固知識的重要途徑之一!
整個服務端框架分為3層:
底層:負責Client的監聽、資料處理、協議構建、資料庫操作等。
中間層:對客觀世界事物的抽象,實現類物件的各種方法;
邏輯層:實現遊戲邏輯,根據接收到的不同協議實現不同的邏輯。
服務端框架的目錄結構如下:
底層:
ServNet:處理Server與各Client的連線以及資料接收;
DataMgr:根據需求實現對資料庫的各種操作;
Protocol:編寫協議實現Server與Client之間的有效通訊;
中間層:
Player:對玩家的抽象,擁有玩家id、角色、下線等方法的實現;
Conn:實現Server與Client之間的連線的管理,其作用與第四節描述的一致;
邏輯層:
HandleConnMsg:處理連線相關的事務,如心跳機制、使用者登陸登出等;
HandlePlayerMsg:處理玩家相關的事務,如位置同步、得分獲取等;
HandlePlayerEvent:處理玩家事件,某個時間發生時要處理的事情,如玩家登陸登出等;
PlayerData:指定需要儲存到資料庫的角色屬性,如金幣、等級、勝負數等;
PlayerTempData:指定玩家角色的臨時屬性,如是否在房間內、是否在戰鬥中、是否已準備等;