LockstepPlatform教程00 總綱

FishMan LockstepPlatform Tutorial

0.說在前面

朋友們,我又回來了,繼上一次的 shader教程 後,這次推出的是遊戲開發框架教程,目標受衆是中高級程序員(有夢想的初級程序也行),當然了,這次會伴隨着教學視頻,畢竟視頻+聲音 學習效果會比文字好很多 😃

本教程會同時伴隨一個框架的誕生LockstepPlatform,該框架核心技術點是 幀同步 & ECS,目標是提供雙端的幀同步解決方案
本框架的初衷:

  1. 是給獨立開發者使用,他們擁有多個小遊戲,但是每個小遊戲如果要聯網,需要單獨的服務器,如果採用非幀同步方案,如狀態同步,會導致額外的網絡邏輯代碼,需要更長的開發週期,成本過高,綜合多種原因導致很多小遊戲都是單機。我想改變這種現狀。
  2. 曾經的我剛入門的時候爲了學習技術,各種找教程,找資料,但是多數是初級教程,如:如何使用 XxGUI,如何使用XX插件,如何開發一個跑酷,連連看等簡單的遊戲, 而且一些簡陋的ARPG 教程收費動輒幾千,而內容卻很初級。這讓我痛苦。所以我想給幾年前的我做一個比較“幹”的開發教程,希望能幫到以前的“我”

本教程內容涵蓋:

1.庫編寫

2.框架的演進

LockstepPlatform 從v0.1.0->v0.8.0 代碼的框架的迭代過程

3.優化技巧

1. 數據格式的設計
2. 內存管理
3. 資源管理
4. 多線程
5. shader優化

4.普通遊戲框架設計

本框架會同時涵蓋多個demo,即使這些demo很簡單,但還是會在這些demo中遵循相應的編程範式, 初,中級程序可以參考裏面的編程技巧

1.項目目標

1. 基於ECS快照回滾幀同步技術,提供一個遊戲雙端解決方案。
2. 服務端:實現一個遊戲平臺,同時支持多個小遊戲的運營,類似qq遊戲平臺
3. 客戶端:實現一個小引擎(除Audio,以及渲染器模塊以及Editor,其他的都會基於確定性計算(整型)重寫)
目標用戶
  • 獨立遊戲開發者
  • 中小型公司
  • 喜歡學技術的朋友
  • 想使用部分模塊的朋友
當前版本(v0.3.0)
1. Excel 數據& 代碼生成庫 (done)
2. 基於消息回調的網絡消息庫(done v0.6.0~v0.7.0 會增強爲c# 基於await 異步回調 以及actor 模型)
3. 客戶端編程範式正式改爲面向接口編程
4. 服務器支持分佈式(目前不成熟 僅用於測試雙端遊戲流程,v0.6.0~v0.7.0 會增強)
版本(v0.2.0)
1. ECS 目前採用Entitas (後續版本會改爲基於c#指針&struct的版本。以及兼容Unity ECS 開發模式)
2. (確定性)碰撞檢測庫 3D
3. 序列化庫(done)
版本(v0.1.0)
1. 基於整形的數學庫 (done)
2. (確定性)碰撞檢測庫 2D
後續版本
v0.4.0(開發中)
1. 基於c# 指針和struct實現的 內存緊湊版 行爲樹 (done)
2. (確定性)NavMesh 庫 (done) (TODO指針版本)
3. ECL(a domain-specific language(DSL) for Entity component design)(解釋器正在開發中)
4. AssetBundleLoader (TODO)
5. ECS代碼生成器 (done) ECS 代碼生成器 目前支持Entitas, 後續版本會同時支持生成Unity ECS代碼,以及兼容Unsafe ECS代碼  (新增)
v0.5.0(TODO)
1. BehaviorTree 添加 Eidtor 支持
2. ECL 
    - 兼容Unity ECS 
    - 開始支持基於c# 指針&struct 的版本
    - 支持導出爲Excel 方便配製
3. 2D 物理庫
4. NavMesh 指針化&struct 化
5. AssetBundleLoader Editor

2.項目環境搭建

環境搭建

3.References

4.2D Demo(FC Tank)

** Basic lockstep and rollback file**

** Replay record file**


傳送門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章