遊戲開發中的資料表示
宣告:本文內容源自騰訊遊戲學院程式公開課_服務端
格式有些亂,在此放置原文連結:https://www.cnblogs.com/OctoptusLian/p/9429351.html
一、資料表示的基礎
什麼是資料表示?
資料是資訊的載體。
資料表示是一組操作,可以描述、顯示、操作資訊。
資料表示的要素
IDL - 介面描述語言
IDL是用來描述軟體元件介面的一種計算機語言。IDL通過一種中立的方式來描述介面,使得在不同平臺上執行的物件和用不同語言編寫的程式可以相互通訊交流;
Data - Operation - 資料操作支援
serialize(序列化)
deserialize(反序列化)
visualize(視覺化)
transform(轉化)
compression(壓縮):資料執行時。
Version Control - 版本控制支援
資料可以有不同版本,且版本間可按照一定規則相容
業界現狀
Google Proto Buffer (Protobuf)
Apache Thrift Binary Protocol
Tencent Data Representation (TDR)
Protobuf In Action
Protobuf具體的使用
通過IDL語言去定義一個.PROTO檔案,然後PROTOBUF會對各個平臺提供PROTO C這麼一個編譯器,然後PROTO C編譯器我們可以指定我要生成對應的C#的DR的表示還是對應的C++的DR表示。
一個學習的機會:編譯一個自己熟悉的語言,比如用PROTOBUF編一個點.c和.cpp檔案出來,它裡面怎麼運算元據的,怎麼壓縮資料的,整個步驟都是可以看到的。
二、資料表示在遊戲開發中的應用
遊戲開發 - 協議(以天刀為例)
互動內容複雜:多重巢狀結構體/二進位制資料。
協議數量巨大:4000+條協議定義;13000+結構體定義。
變更頻繁
網路流量巨大
遊戲開發 - 協議管理
遊戲開發 - 異構系統協議互動
多型別終端協議互動
server:Linux / x86 / C++
client:PC / iPhone / Android;C++ / C# / lua
遊戲開發 - 協議版本相容
遊戲開發 - 協議流量優化
流量優化:通過DR提供的資料壓縮功能進行流量優化。
遊戲開發 - 資料儲存的特點
資料結構複雜:每個玩家的儲存涉及到成千上萬個欄位;
資料結構不穩定:每次版本更新有可能會新增欄位或擴大原有欄位;
update > read > insert > delete。
遊戲開發 - 資料儲存設計
Key - Value資料儲存模型:
Key - 角色ID
Value - 二進位制角色資料
MySQL Blob
使用DR管理Blob資料
資料序列化/反序列化:
資料相容
資料壓縮
我們存檔的時候就是把玩家的資料先serialize成我們的DR描述的中間格式,然後存到DB裡面,DB裡面再讀取出來然後再恢復成我們的runtime格式
三、感受
剛開始概念會介紹的比較多,可能講概念大家比較難以理解,但是做一個東西還是首先要明白基礎概念的定義,後面在基礎概念的定義上進行展開。
相關文章
- 遊戲開發中遊戲效能的最佳化遊戲開發
- 遊戲開發中的道具管理遊戲開發
- 遊戲開發中的紅點提示遊戲開發
- 喵的Unity遊戲開發之路 - 推球:遊戲中的物理Unity遊戲開發
- 遊戲開發中的專業術語遊戲開發
- 旅居中國的日本遊戲開發者訪談:外國人在中國的遊戲開發之路遊戲開發
- 專案管理——遊戲開發中的成本管理專案管理遊戲開發
- 遊戲開發中的“門”,有多難搞?遊戲開發
- 遊戲開發中的多語言處理遊戲開發
- 遊戲立項與開發中的6種開發導向遊戲
- Unity遊戲示例來了,用Unity開源遊戲資源做遊戲,遊戲開發不再難!Unity遊戲開發
- 遊戲開發入門(一)遊戲開發概述遊戲開發
- 遊戲開發者聯盟:調查顯示70%的遊戲開發者對實時服務可持續性表示擔憂遊戲開發
- 遊戲開發中的人工智慧遊戲開發人工智慧
- Python遊戲開發工程師的起步,幾款遊戲開發案例Python遊戲開發工程師
- “遊戲中的遊戲世界”——遊戲副本的起源與發展史遊戲
- 遊戲開發<關卡設計Level Design>資料專題遊戲開發
- 2021年Q3全球遊戲開發人員為各平臺開發遊戲比例(附原資料表) 遊戲開發開發遊戲
- NFT遊戲系統開發/遊戲開發技術遊戲開發
- 獨立遊戲開發中的物理系統遊戲開發
- 【專題資料】遊戲中的天氣系統遊戲
- 陳昊芝談中國遊戲開發者與玩家的對立現象:開發者的遊戲理想國遊戲開發
- 告別996?資深遊戲PM:遊戲專案開發的高效祕訣996遊戲
- HTML5遊戲開發過程中的二三事HTML遊戲開發
- Protobuf在微信小遊戲開發中的使用技巧遊戲開發
- 遊戲開發流程遊戲開發
- 提高遊戲陪玩app開發水準,熟練掌握正規表示式遊戲APP
- 遊戲開發雜記(三) 開發及學習過程中的體會遊戲開發
- 《Project DT》:主機動作遊戲,開發中Project遊戲
- Unity中國全面支援OpenHarmony遊戲開發,多款遊戲率先完成適配Unity遊戲開發
- 【翻譯】WPF中的資料繫結表示式
- 圖解計算機中的資料表示形式圖解計算機
- GDC2018分享:遊戲AI中的知識表示概述遊戲AI
- 盤點遊戲中那些“欺騙玩家眼睛的開發技巧”遊戲
- 遊戲開發中的新手引導與事件管理系統遊戲開發事件
- 遊戲陪玩app開發中,Mysql的sql優化方法遊戲APPMySql優化
- 遊戲開發中不同時區下的時間問題遊戲開發
- 遊戲開發者談遊戲行業融資時常見的五個問題遊戲開發行業