Erlang遊戲開發 協議

2022-07-29 07:15:11 字數 1005 閱讀 9874

**:

協議包含通訊協議和資料格式.

通訊協議目前常用的是:http 和tcp .其有各自的特點根據遊戲的特點而進行選擇.

http比較成熟,使用極其廣泛.具有豐富的基礎軟體和工具.

對於簡單的social game可以使用http作為通訊協議.

這類遊戲對實時性要求不是很高,使用http也很容易做到效能擴充套件,可以較好的滿足需求.

如果遊戲前端使用html+js開發,那麼只能使用http了,需要較好的互動性和實時性時,只能

使用http長輪詢來實現了.如果前端使用flash開發,遊戲互動複雜,實時性要求高,那麼http

便不合適了.

tcp文字格式,比如xml,json或自定義均可作為傳輸的資料格式,文字格式最大的好處是可讀,

便於除錯,缺點是資料量比較大,冗餘資訊太多.(當然可以通過壓縮來彌補).因此在web

game中很少使用文字作為資料傳輸格式.

目前大部分遊戲是採用自定義二進位制協議,基本結構為:頭部幾個位元組表示資料體長度,隨後為

資料體.在資料體中,可以劃分出幾個位元組(如2個)表示某種訊息.我們會為每種訊息都定義資料

格式. 其大致的樣子如下: [2位元組資料長度][2位元組訊息型別,具體的訊息體].

packet 選項為2,便可支援我們上面

的協議.erlang自動會首先獲取2個位元組,作為長度,隨後繼續接收資料,直到這個包接收完成,

省去了我們自己處理解包,粘包的痛苦 :)(注意2個位元組使用無符號的big-endian編碼方式).

有了資料體,接下來需要處理2個位元組的訊息型別,erlang還提供了乙個貼心的選項:(注意這個選項只有在socket設定binary選項的時候有效).在這裡我們設定,這樣我們收到的資料體,不是一整塊,而是這樣:[byte1, byte2 | binary],byte1,byte2是erlang為我們截取出的資料體的頭2個位元組,這個列表是乙個"畸形"的列表,因為其最後乙個元素不是列表. 

最後就是要動手,首先把網路和協議搞定,遊戲之路就開始了 :)

Erlang遊戲開發 協議

erlang 百科 協議包含通訊協議和資料格式.通訊協議目前常用的是 http和tcp.其有各自的特點根據遊戲的特點而進行選擇.http比較成熟,使用極其廣泛.具有豐富的基礎軟體和工具.對於簡單的social game可以使用http作為通訊協議.這類遊戲對實時性要求不是很高,使用http也很容易做...

遊戲開發 協議設計

遊戲開發 協議設計 遊戲開發 協議 protobuf 遊戲開發 協議 protobuf原理詳解 通俗地說,協議就是通訊雙方能夠理解的一種資料格式。維基百科這麼定義網路協議 網路協議為計算機網路中進行資料交換而建立的規則 標準或約定的集合。協議設計包含三要素 語法 語法是使用者資料與控制資訊的結構與格...

Erlang開發建議

以下是在erlang專案開發中的一些記錄,即包含很多通俗易懂的原則,也包含一些似是而非的建議,比較混亂,還沒有積累到乙個可以分門別類的地步,各位就將就看吧.確保沒有任何編譯警告 erlang中string採用list實現,32位系統中,其1個字元用8個位元組的空間 4個儲存value,4個儲存指標 ...