既然需求已經確定了,總算是可以正式立項了。
不過這上來第一步並不是開發部出馬,而是不久前才剛剛成立的ne的部分。
「我們需要一個新的引擎。」
就像《極品飛車》需要專用引擎那樣,《戰地風雲》自然也需要一個自己的引擎。
「專供《戰地風雲》的引擎?」
「沒錯,我不需要一個什麼遊戲都能做的全能引擎,卡馬克,我們需要的是極致的性能。」
通用這方面,有quake引擎這個還在不斷疊代的版本目前就已經夠用了。
為了實現自己理想中的那部作品,用這些現有的引擎是根本不夠的。
「這太酷了!那就叫……戰地引擎?」
卡馬克幾乎是想都沒想就應了下來。
他本就是一位極端到魔怔的引擎主義者和技術主義者。
林立新的想法恰好打在他的g點上。 把剛才頭腦風暴會議上討論的那些優化策略進行到極致。
他們搞不好真的可以搞出全世界首款真正意義上的大戰場遊戲!
「嗯……叫frostbite吧。」
「啊?凍傷?為啥?」
「因為很cooool!」
「……f**k!你說得對!林,你說的對!」
……
寒霜引擎的開發工作正式開始了。
林立新這邊反倒是閒了下來。
眼下正是聖誕季,距離海灣戰爭真正開始還有一段時間。
在這之前,他有足夠的時間可以規劃接下來的事。
『沙漠盾牌行動』還在持續推進著。 戰爭的氛圍似乎已經逐漸濃烈了起來。
到了這會兒,所有人的心中都已經有了一個大概的猜測。
戰爭恐怕是真的要來了。
也許明天?也許下個月?
誰也不知道真正的日期,但可以肯定的是,戰爭一定會到。
『轟隆隆隆……』
電視機上傳出履帶碾過金屬板的厚重聲響。
一台m1艾布拉姆斯主戰坦克從洛克希德c-5銀河運輸機的機尾緩緩駛下。
站在一旁的幾位士兵,在這兩台鋼鐵巨獸之下,顯得像個小蝦米一樣渺小。
「現在是當地時間上午九點三十七分,cnn現場記者為您報導,您正在收看的是美國歷史上,或者可以說是人類歷史上最大規模海外軍事部署的一角。」
記者頭戴降噪監聽耳機,在狂風之中敬業地報導著,
「這架全長接近75米的運輸機,能夠把美國陸軍最偉大的重型裝備直接跨越大洋運送到地球另一端。」 鏡頭推進,給到了那台還在轟鳴著燃氣輪機尖嘯聲的m1艾布拉姆斯。
『咔噠咔噠咔噠……』
幾十噸重的鋼鐵巨獸緩緩駛出機艙,軋在寬敞的跑道上。
林立新饒有興致地看著電視上的內容。
這可都是第一手資料啊!
晚點必須找cnn要原片來。
自己是洛克希德的股東,又不是克萊斯勒的股東,想要拿到外形數據壓根不現實。
就算是洛克希德,也不可能把寶貴的關鍵數據交給他。
別說是大股東了,就是董事長也不可能。
想要儘可能還原,那就只能靠這些照片素材來建模了。
鏡頭拉遠。
寬敞的機場之外,是一片金黃的沙漠,一眼望不到頭。 「呼——哎?你怎麼還看起新聞了?cnn?」
山姆推門而入,還沒來得及把一口氣喘勻實,便注意到了電視機上的畫面。
「不是跟你說了嗎?我要做一款『海灣戰爭』題材的射擊遊戲,我起碼得知道那邊到底是啥情況吧?」
「《戰地》啊。」
山姆瞭然地點點頭,他已經看過林立新寫的策劃案了,
「看起來像是一部網吧特供的作品,這麼大規模的聯機對戰,必須得用adsl吧?」
他這幾天一直在nexus那邊忙活網絡的事,對這方面還算是比較敏感。
林立新非說是什麼『叫山姆的就得去連接全世界才對啊!』之類的摸不著頭腦的話。
不過他也樂得如此。
畢竟網絡越火爆,才越能證明gamenova如今的蒸蒸日上嘛。
林整日跑來跑去地搞開發和協商合作,有的時候這些雜務還就得他來干。
「恐怕是的。」 林立新點點頭。
網絡的問題完全獨立於渲染之外,是另一個層面的棘手。
按照目前的規劃,16對16,如果按照《雷神之錘》的設計來做,那絕對會是一場災難。
32個人的大規模數據交換,帶寬大概要多少?
簡單計算一下,假設伺服器每秒同步20次,也就是20tick。
這個數值已經是能保證遊戲體驗的情況下壓縮的極限了。
tick數越高,遊戲計算越嚴格。
這也是很多職業比賽會用比平時休閒局高得多的tick數的主要原因。
在20tick的情況下,每個玩家光是狀態同步就要消耗幾十字節。
每秒20次,那就是上千字節每秒了。
這個數字還要再乘以局內人數,也就是32。
這就已經來到幾十kb的帶寬了。 老式寬帶到了這一步就徹底歇逼了,只有adsl模式才有可能滿足這個要求。
但……
幾十kb/s,是一個人的量。
雖然它裡面已經包含了32個玩家所有人的數據,但這裡面存在著一個小小的問題。
伺服器要給32個人每個人都發送一份同樣的數據包!
這特麼……可就是接近1mb/s的帶寬要求了!
要知道哪怕是在機房旁邊直接拉出來的8mbps寬帶,帶寬極限也就才900kb/s而已。
目前主流的商業化adsl帶寬在這個數字上還要再砍半再對摺。
能有100kb,就已經算是高速寬帶了。
最可怕的是這帶寬需求裡面還只有狀態同步,不包含各種子彈、載具、特效那些額外的東西。
光是這麼簡單計算下來,就足以讓人感到絕望了。
就現在這種小水管,真的有可能支撐得了16v16嗎? 山姆顯然也很清楚這一點。
「網吧內部區域網聯機應該沒問題,想做網際網路的話就難咯。」
「難說哦。」
林立新嘴角揚起,
「如果是上周的話,這個問題的確存在,但現在不同了。」
寒霜引擎現在正在開足馬力開發中。
不同於其他引擎,它最大的優勢,就是視野的管理。
或者說是……『興趣』的管理。
放眼後世,大戰場遊戲其實已經不新鮮了。
別說是32人同台競技,《pubg》甚至都已經做到了百人同局。
《dnf》、《夢幻西遊》這些也早就做到了成噸的人同屏。
除了新時代變大變粗了的帶寬之外,還要得益於一個重要的思想。 也就是興趣管理了。
「山姆,戰場上的士兵並不需要真正『看到』整個戰場,這又不是rts遊戲。」
「呃……怎麼說?」
「戰場越大,帶寬消耗……反而是越小的,如果ne那邊真的能做到超規格的巨型地圖,帶寬就不是什麼問題了。」
林立新解釋道,
「《雷神之錘》是典型的競技場型作品,幾名選手在有限空間內比拼技巧,但《戰地》不是。」
所謂興趣管理,其實就是現代多人遊戲網絡同步技術的核心思想。
簡單來說,就是只給玩家發必要的內容。
他隨手摸出一張草稿紙來,在左下角畫了個點兒。
「你看,山姆。如果咱們控制的角色在這兒,而敵人呢……」
林立新說著,在右上角又畫了個叉,
「敵人在地圖的另一端,現在這個位置爆發了激烈的交火,你說……咱們真的有必要知道那裡到底發生啥了嗎?」 答案是顯而易見的。
並不需要。
最多也就是知道戰鬥的結果就夠了。
誰死了誰活了,這才是對這位玩家有意義的信息。
至於戰鬥的全程?
玩家a爆發出了驚人的戰鬥力,完美的走位躲開了諸多子彈,用刺雷直接板載衝鋒跟玩家b的裝甲車換了?
拜託,我又渲染不到,你跟我說這個幹啥?
我知道玩家a和b都死了不就夠了?
「啊……是過濾?只在進入興趣範圍後才主動拉取數據同步?」
「對,不過這只是一個簡單的模型,實際怎麼設計這個aoi興趣領域還得看後續算法設計。」
林立新將白金筆別回胸口。
模型有lod,其實網絡世界也是存在lod的。 興趣越低的單位,tick數也可以隨之降低。
而《戰地》,就是最完美的興趣管理實驗田。
如果這項技術能吃透,那以後他們就可以嘗試著去做一些更誇張的作品了。
「等等,這樣的話主機的性能開銷會增加吧?伺服器需要計算的東西太多了。」
「是這樣,所以我們才需要專用伺服器(dedicated server)的存在。」
「一台專用的工作站用來運行伺服器?」
「是的。」
這事兒其實gamenova並不是第一次幹了。
早期的電子遊戲,想要聯機其實很簡單。
房主用自己的客戶端開個伺服器,其他人通過某種方式連接就可以了。
好處是開發簡單,不用額外維護其他東西,成本低,沒有任何額外開銷,開箱即用。
但問題也很明顯,房主有神器! 房主天生0延遲,哪怕是槍法差一點,也能把其他人打得嗷嗷叫。
同時房主退出也會直接導致遊戲結束。
除此之外,房主還需要在運行遊戲的同時,模擬一整個完整的服務端,只有高配電腦才能玩得起。
在《screeps》時期,gamenova便就此找到了一個解決方案。
我們自己租機房,你們只需要連接進來就夠了。