egret pomelo 實時遊戲雜記(2)

2022-08-11 11:54:11 字數 2494 閱讀 8478

[egret+pomelo]學習筆記(1)

[egret+pomelo]學習筆記(2)

[egret+pomelo]學習筆記(3)

pomelo服務端介紹(game-server/config/server.json):

,

],"area": [

],"gate": }}

可以看出,服務端是由以下幾個部分構成:

* 2 個 `connector` 伺服器,主要用於接受和傳送訊息。

* 1 個 `gate` 伺服器,主要用於負載均衡,將來自客戶端的連線分散到兩個 `connector` 伺服器上。

* 1 個 `area` 伺服器,主要用於驅動遊戲場景,和遊戲邏輯

由服務端的關係圖可以看出,訪問pomelo,首先應該訪問gate服務端,讓服務端為其分配合適的connector以處理當前使用者的請求。

1.鏈結gate服務端,將玩家名稱傳遞給gate服務端以作為註冊

config.global.pomelo.request("gate.gatehandler.queryentry", , this.ongatemsg);

private ongatemsg(gate_data)
3.使用connector.entryhandler.entry在connector中註冊,註冊成功後,使用area.playerhandler.enterscene訪問遊戲場景資訊

private onconnectsucceed() , this

.onentrymsg);

}private onentrymsg(entry_data) , (respose) =>);

} else

}

4.遊戲中會將地下散落的物品、玩家的位置以json格式返回 給客戶端(返回的資料示例)

,

"2": ,

"3": ,

"4": ,

"5": ,

"6": ,

"7": ,

"8": ,

"9": ,

"10": ,

"11": ,

"12": ,

"13": ,

"14": ,

"15": ,

"16": ,

"17": ,

"18": ,

"19": ,

"20": ,

"21": ,

"22": ,

"23": ,

"24": ,

"25": ,

"26": ,

"27": ,

"28": ,

"29": ,

"30": ,

"31": ,

"32": ,

"33": ,

"34": ,

"35": ,

"36": ,

"37": ,

"38": ,

"39": ,

"40": ,

"54":

},"width": 2200,

"height": 1201},

"playerid": 214}

}

view code

5.客戶端根據返回的json,顯示裝備和玩家位置,並監聽服務端中的移動以及狀態更改事件,來做出相應的操作。

下面來看一下,pomelo服務端中是怎麼處理前端的請求的。

在treasures的專案文件docs/tutorial.md 中給出的示例如下圖

在(1)中,客戶端通過pomelo.request方法,將gate.gatehandler.queryentry 以及引數 uid 傳遞給gate服務端,下一步,我們進入服務端看一下(2)路徑中的gatehandler檔案

該方法為當前使用者獲取乙個connector服務端,將使用者uid引數與獲取到的connector服務端繫結,並將分配後的connector服務端的獲取狀態code,鏈結host,埠port,返回給客戶端進行處理,客戶端在通過gate服務端接收到返回的引數後,就可以將gate服務端斷開,然後鏈結分配給自己的connector服務端進行鏈結,通過 connector.entryhandler.entry,connector服務端會在使用者第一次鏈結的時候初始化session資訊,這樣每次的服務端請求的時候,都不用再次 傳遞多餘的資料。

entry方法成功後會向使用者返回乙個狀態code 和玩家唯一標識playerid,客戶端記住玩家唯一標識,以區分同場景中多個玩家時,哪乙個玩家為自己的玩家。

這樣一條使用者請求和服務端返回的流程就走完了。

實時遊戲對戰引擎Photon

個人開發者在iphone平台多數時候只能做單機遊戲,因為沒有伺服器的原因,會出現很多的限制。除了官方的gamecenter有遊戲挑戰的功能之外,還有乙個由exit games推出的實時遊戲對戰引擎photon。當然是收費的。openfeint在國內也就是九城了,已經獲得國內獨家 或許以後我們也可以用...

遊戲實時渲染中HDR入門介紹

遊戲實時渲染中hdr入門介紹 雖然hdr這個概念絕大多數做遊戲的人都知道了,不過可能有的人會像我一樣一直對這個概念一知半解,這裡做下學習筆記,省的以後又忘了 1.到底什麼是hdr?2.hdr對於遊戲起什麼作用,和不用hdr比的話。既然說到最後還是0 1,那麼hdr還有什麼作用呢?其中有一種原因是超過...

如何做好遊戲內實時語音體驗

早在2015年,艾媒諮詢即有移動遊戲社交相關資料統計 近40 的玩家因為社交因素選擇一款遊戲 15.6 的玩家因為一款遊戲社交性差而選擇離開。因此,如何提高遊戲的社交屬性已成為各大遊戲廠商遊戲策劃的重要組成部分。從小隊戰鬥 團隊副本,到遊戲排名 pvp團隊競技 公會 家族等遊戲玩法,無一不是為了增強...