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