在unity2d同屏显示9千人
多線程與單線程的自由切換一直是個有趣的話題。
開發人員喜歡在單線程下開發,準確有序不容易出錯。
但是他們也舍不得放棄多線程帶來的效率提升。
為了提升unity2d的性能限制。這里使用surparaller.org制作的pelagia。他可以在單線程和多線程之間自由切換。像開發其他的單線程軟件一樣使用pelagia。只要通過簡單的設置就可以在單線程和多線程間自由切換。
最近騎馬與砍殺的游戲非常流行。
讓沙盒技術又受到了關注。
沙盒技術是指在游戲中玩家可以自由發展獲得不同的游戲劇情。
最為有名的沙盒游戲還有P社的系列,其中包括維多利亞,鋼鐵雄心,歐陸風云等。
讓沙盒游戲好玩的關鍵是創建大量的游戲角色。
例如騎馬與砍殺每次都要創建上千個士兵。
創建大量游戲角色是對游戲引擎和游戲開發者的巨大挑戰。
這種挑戰來自2個方面。
下面將用3個例子來說明如何進行操作。
第一個來自unity官方的示例roguelike.你可以在下面的地址找到它的介紹和代碼.
這個示例在性能方面有3個問題.
1,協程導致游戲阻塞。
2,不支持攝像頭跟隨。
3,碰撞檢測會失敗,導致npc的重疊。
所以針對上述3個問題我制作了Big Roguelike。
你可以在下面的鏈接找到它。
Big Roguelikefe非常適合進行壓力測試。我將地圖擴大1千倍。并將npc數量設定到3000。
這樣就達到了單線程下的極限。
為什么說單線程,因為只有一個線程處于滿負荷的工作狀態。
當你完成了第一個挑戰之后,會發現再多的軟件優化也無法大幅提升性能。
這時就要考慮更為激進的優化方案。
普通的技術水平是遠遠不能滿足沙盒游戲的。
幾個人甚至十幾個人的戰斗會讓人昏昏欲睡。
為了解決一核有難多核圍觀的問題。我創建了示例Ultimate Roguelike。
你可以在下面的鏈接找到他。
Ultimate Roguelike在屏幕上可以創建9千個npc.
對unity壓力也非常的小。
cpu的負載能力可以提升到60%。
將游戲分解到不同的線程,看著似乎非常簡單。
但99%的游戲廠商都做不到。所以被二手手機靚號出售平臺玩家譏諷為單核游戲。
游戲設計者需要的是簡單的技術就可以使游戲豐富多彩。
這樣才能有余力設計更多復雜生動的劇情。
多線程優化有很多方案可以選擇。從頭學習多線程知識要花上好幾年的時間。pelagia只需要你知道基本的異步消息概念就可以寫出高質量的多線程軟件。
如果unity是創建了一個世界,邏輯層級就是這個世界不同形式的鏡像。unity是用顏色組成的世界,邏輯層是用其他數據組成的世界。通過異步消息將這些數據匯總起來就是在unity中看到的世界。pelagia根據使用數據的方式,讀寫或者邏輯依賴。將數據自動劃分為不同的邏輯層,并為每個邏輯層配備消息路由,硬盤讀寫緩存等組件。這樣就可以快速構建分層的世界。并把每個層放入不同的線程中。這與我們在實踐中拆分軟件系統所使用的方法是一樣的。pelagia僅僅是將這個復雜的過程自動化了。
總結
以上是生活随笔為你收集整理的在unity2d同屏显示9千人的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类mc地图设计
- 下一篇: JUST技术:探查城市中的异常事件