幀同步入門
ECS入門
最近在做幀同步,搞了個開源的,第一步就卡住了,是以先得搞個ECS,分享一下(用了一個月,還發現此ECS有"記憶體洩露“問題,真是日常踩到狗屎)
理論就不在這裡多說了,因為我”不懂“
哥年初時,曾經也基于UNITY2019.3,做過一個ECS項目,真的是官方說的高效,可擴充的優點沒嘗到,卡爆,卡EDITOR,版本不相容的缺點到是先踩到了,那個項目實在太爛也沒在這裡分享
(針無兩頭利,這些年OOP憑借可擴充性,可重用性,可閱讀性,但肯定是不高效的,也經過廣大程式員實踐,賣相對象現在實實在在的站穩了C位,有點高處不勝寒,居然被一個失敗的暴雪公司,失敗的遊戲《暴雪FPS》鼓吹一下,就讓很多程式員“動搖”了??)
其實想用ECS前,真的要問自己,這到底是一個模式?一個架構?一個系統?還是一個什麼東東
現在這裡分享一個基于非官方的Entitas的簡單項目
有幾點,還是得多說一下
1.純的面向對象不存在,純的MVC也不存在,是以純的ECS也不會存在
2.ECS肯定和面向對象不同,是以肯定就必須和原來GameObject, Inspector,EditorWindow要完全切割
3.和MVC一樣,ECS要寫的好,必須先命名好(因為他是松耦合的)
4.由于原因3,是以很多VISUAL STUDIO的特性和代碼定位,用不了,代碼閱讀習慣也要改
5.由于原因4,是以要用好ECS需要“很高”的程式素養
6.由于原因5,虛幻4是牛逼,但是請不到人啊,是以你也别想很容易請到ECS的人
====================================================================
幀同步Demo整體結構
看了這麼多,如果你還是想為了用而用,可以下載下傳這個項目看看
項目裡,用到了基本component, system, systems, (其實entity真沒用到)
還最好必須掌握的C#知識點(大部分沒實作,後續開發會補上,但如果真能全掌握,就無所謂什麼ECS了,無論什麼結構,什麼架構,主城還是第三方公司寫的代碼你都能搞定,C#的用戶端還是伺服器也都能搞定)
- 多線程
- LINQ
- Service
- 繼承和多态和接口實作
- Entitas.Game标簽
項目的關鍵是,Entitas架構提供的Editor工具,建立,或新定義Component後,記得用ENTITAS提供的代碼自動生成工具,Generate一下,
(這個和tolua相同,而且和tolua一樣,如果ECS用不好,該有的死循環會有,該有的各種松耦合報錯也不少)
**突然想到。。。。TOLUA能熱梗,這個ECS的pro版本囧膜熱更???

** 最終的一些非官方”視圖“也是有莫有樣,官方的實在不敢恭維。。。。。但最終又繞來繞去,回原點???
反正ECS就是入門點有點難找,而且易學難精
項目源碼分享
暫不能分享, 架構,插件太多,目标不明确,無工期限制,整個項目真的有點懸
計劃,預估工期:2020/6 ~ 2020/10
(從下面完成時間,其實明顯看的出,模式或者工具,是最快能完成的,UI插件也是,但是UI擴充或者特效|效果等等就難完成了,方案的實作和落地才是最磨人的。。。。。。。是的,我明顯的在黑某些人或者某些不如意的工作)
1)自動建構AutoTools (友善2個用戶端聯調)
2)伺服器開發(無自動斷線,但目前比較穩定)——完成于2020/05/28
3)網絡Dll封裝(你懂得)
4)沒打算用protobuf協定(同樣,你懂的)——完成于2020/06/11
5)“效能”監控工具【SRMonitor】
6)自定義UI系統 ——完成于2020/07/1
7)重開發C# MVC模式 ——完成于2020/07/1
8)ECS模式(和MVC使用的測試Scene不同)——完成于2020/06/20
9)大地圖方案
10)動作方案
11)支援AStart和NavMesh兩種尋路
12)C#熱更方案
13)場景特效方案(雨雪等天氣系統)
。。。。
以上種種,好像,确實和多人同步無線性關聯
細節真心無法把握,心中也隻有一個模糊的影像,但不要忘了前進的方向,并保持前行
才能到達彼岸
項目下載下傳位址:
。。。