此系列文章逐個內容講解ET8.1的新特性。 ET8.1 發佈,帶來以下新特性: 1. 多線程多進程架構,架構更加靈活強大,多線程設計詳細內容請看多線程設計課程 2. 抽象出纖程(Fiber)的概念,類似erlang的進程,非常輕鬆的創建多個纖程,利用多核,仍然是單線程開發的體驗 3. 纖程調度: 主 ...
此系列文章逐個內容講解ET8.1的新特性。 ET8.1 發佈,帶來以下新特性: 1. 多線程多進程架構,架構更加靈活強大,多線程設計詳細內容請看多線程設計課程 2. 抽象出纖程(Fiber)的概念,類似erlang的進程,非常輕鬆的創建多個纖程,利用多核,仍然是單線程開發的體驗 3. 纖程調度: 主線程,線程池,每個纖程一個線程,3種調度方式 4. Fiber間通信的Actor消息機制 5. Entity方面,domain改成IScene,只要實現IScene介面,Entity就是domain,這樣定義domain更加自由 6. 預測回滾的幀同步實現 想詳細瞭解可以看幀同步課程 7. protobuf換成了memorypack,實現無gc的網路 8. 純C#版的kcp庫,性能非常強,由sj提交 9. 熱更dll改成用ide編譯,更加方便,也可以Unity編輯器上按F6進行代碼編譯運行 10. sj利用source generater實現了代碼自動模板功能,目前可以自動生成System類,開發者只需要定義Awake Update靜態方法即可,特別方便 11. sj開發了分析器,實現了EntitySystemOf,根據entity介面一鍵生成對應的system方法 12. 客戶端利用fiber實現網路獨立線程(demo已實現),甚至可以把邏輯跟表現使用獨立的纖程,更好的利用多核 13. 幀同步demo直接利用纖程創建房間,更加方便 14. 純c#版尋路dotrecast,至此ET已經完全C#化,沒有任何cpp代碼了 15. kcp跟軟路由底層同時支持tcp跟websocket,當udp聯不通的情況下,可以切換成tcp Websocket,並且支持運行時動態切換,玩家不掉線! 16. 集成了sj的非托管容器庫,性能爆炸
選用ET開發游戲的18個理由 1. 多進程多線程Actor架構,客戶端跟服務端都可以輕鬆創建纖程(fiber)利用多核,比如客戶端網路一個纖程,尋路一個纖程,幀同步邏輯層一個纖程,表現層一個纖程 2. async await協程同步代碼編寫,避免回調地獄 3. 0GC消耗,超強的MemoryPack序列化, 超強的網路層性能 4. kcp支持,網路響應非常迅速,並且閃斷wifi 4g都不會導致掉線,做競技游戲必備 5. kcp底層可以使用tcp udp Websocket協議,當udp聯不通的情況下,可以切換成tcp Websocket,並且支持運行時動態切換,玩家不掉線! 6. 軟路由防攻擊設計,買些垃圾主機就可以防住黑客攻擊,比買高防省錢多了,並且用戶不會掉線 7. 雙端C#開發,前後端共用代碼,C#本身性能極強,僅次於CPP,不需要學一些亂起八糟的語言,很多獨立游戲開發者,一個人就能用ET開發mmorpg游戲 8. 強大的編譯分析器,編譯器就能幫助大家寫出正確的ET風格的代碼 9. 客戶端hybridclr熱更新支持 10. 客戶端服務端均支持運行時熱重載,客戶端服務端不需要關閉進程就能修改代碼,大大提升了開發效率以及運營效率 11. 完善的demo,源碼帶有狀態同步跟預測回滾的幀同步demo 12. 完善的機器人開發機制,機器人直接共用客戶端邏輯代碼,減少95%機器人開發工作量,接入ai機器人非常輕鬆。大規模機器人壓測,輕而易舉 13. 強大的ai開發機制,比行為樹更加容易 14. 強大的單元測試開發機制,每個單元測試都是整個游戲環境,不用搞mock隔離,開發起來非常輕鬆 15. 優美的程式結構,數據跟方法完全分離 16. all in one的開發體驗,開發時只需要啟動unity,發佈的時候又可以單獨發佈服務端,並且可以跨windows跟linux平臺 17. 客戶端服務端數據開發期完全可視化,開啟ENABLE_VIEW巨集即可在Unity Hierarchy面板中看到客戶端跟服務端的所有的Entity對象以及欄位的內容 18. WebGL以及微信小游戲支持,有ET8的webgl版本,開發體驗跟ET8完全一致,無縫對接ET8的伺服器 ET開源地址地址:egametang/ET: Unity3D Client And C# Server Framework (github.com) qq群:474643097