系統(tǒng)特性
- 《天驕III》的服務(wù)器和客戶端程序設(shè)計(jì)運(yùn)行在 Win32 平臺(tái)上。為了保證程序的運(yùn)行效率和開(kāi)發(fā)效率,決定使用 C++ 語(yǔ)言進(jìn)行開(kāi)發(fā)。所有代碼采用 Microsoft Visual C++ 7.1 編寫(xiě),并使用 Visual Studio .NET 2003 IDE 集成的調(diào)試器和源代碼管理工具。在 C++ 標(biāo)準(zhǔn)模板庫(kù)(STL)方面,《天驕III》不使用 VC 自帶的 PJ 版本,而使用 STLport(從 SGI STL 移植而來(lái))作為替代方案,以期在效率方面有所提升。
- 《天驕III》大量采用客戶端主動(dòng)預(yù)測(cè)技術(shù),使游戲?qū)W(wǎng)絡(luò)延遲的敏感性降至最低。因此可以使用 TCP/IP 協(xié)議以便在協(xié)議層就實(shí)現(xiàn)可靠的網(wǎng)絡(luò)傳輸,使程序員將更多精力放在游戲程序中。
目標(biāo)軟件自主開(kāi)發(fā)的“大服務(wù)器架構(gòu)”將客戶端連接管理、用戶登入登出等與游戲內(nèi)容無(wú)關(guān)的操作全部交給單獨(dú)的連接服務(wù)器進(jìn)程處理,將客戶端程序與游戲世界服務(wù)器隔離。一方面提高了系統(tǒng)安全性;另一方面大大降低了游戲服務(wù)器的系統(tǒng)負(fù)擔(dān),使游戲服務(wù)器可以有更多的系統(tǒng)資源處理更復(fù)雜的游戲邏輯。這種服務(wù)器架構(gòu)還允許將一個(gè)邏輯上統(tǒng)一的游戲世界分布式地運(yùn)行在多臺(tái)計(jì)算機(jī)上,使整個(gè)游戲世界可以承載更高的同時(shí)在線人數(shù)。該架構(gòu)先后經(jīng)過(guò)了《天驕II》、《傲世 Online》、《鳳舞天驕》等多款產(chǎn)品的考驗(yàn),并且目前仍在穩(wěn)定運(yùn)行中,已經(jīng)被證明是成熟可靠的技術(shù)。《天驕III》將繼續(xù)沿用和完善這種大服務(wù)器架構(gòu)。
- 《天驕III》采用 Win32 平臺(tái)上較為成熟的“最小化轉(zhuǎn)儲(chǔ)+崩潰后調(diào)試”的方案來(lái)解決可能遇到的各種程序錯(cuò)誤問(wèn)題:使用 dbghelp 庫(kù)將程序在崩潰點(diǎn)的狀態(tài)“凍結(jié)”到文件中,然后提交到研發(fā)部門(mén)恢復(fù)崩潰現(xiàn)場(chǎng)并進(jìn)行錯(cuò)誤分析。這種方法可以在不向最終用戶發(fā)布任何調(diào)試信息(以免被人輕易地執(zhí)行反向工程)的情況下最精確地重現(xiàn)錯(cuò)誤、減少解決問(wèn)題所需的時(shí)間。目標(biāo)軟件目前已經(jīng)在多款產(chǎn)品中使用了這種技術(shù)。
圖像渲染模塊特性簡(jiǎn)介
- 場(chǎng)景
超大規(guī)模場(chǎng)景系統(tǒng),支持地形的動(dòng)態(tài)加載,實(shí)現(xiàn)整個(gè)世界的無(wú)縫拼接、室內(nèi)外場(chǎng)景的無(wú)縫連接。
場(chǎng)景組織采用空間八叉樹(shù)分割,PORTAL,CVS,BSP等先進(jìn)技術(shù),實(shí)現(xiàn)高效精確的裁剪,以及準(zhǔn)確的碰撞檢測(cè)。
全場(chǎng)景動(dòng)態(tài)光照系統(tǒng),可以根據(jù)時(shí)間在白天黑夜間平滑過(guò)渡,配合planar shadowmapping、perspective shadowmapping、omni shadowmapping、trapezoidial shadowmapping等先進(jìn)的實(shí)時(shí)陰影技術(shù),可以輕松模擬現(xiàn)實(shí)中復(fù)雜的光照環(huán)境。
- 地形
基于視差控制的LOD地形系統(tǒng),能夠采用有限的元素表現(xiàn)出極具真實(shí)感的復(fù)雜地形地貌,支持gloss mapping,normal mapping,parallax occlusion mapping等先進(jìn)渲染技術(shù),并且可以根據(jù)光照環(huán)境的改變實(shí)時(shí)動(dòng)態(tài)生成真實(shí)的地形陰影。
- 模型
靈活高效的骨骼動(dòng)畫(huà)系統(tǒng),支持動(dòng)作幀間、動(dòng)作和動(dòng)作間的無(wú)縫平滑過(guò)渡,能夠?qū)崿F(xiàn)同一角色的多動(dòng)作融合,支持軟硬件加速頂點(diǎn)變換,以及靜態(tài)模型的geometry instancing。
模型支持gloss mapping,normal mapping,parallax occlusion mapping,soft self-shadow等先進(jìn)的渲染技術(shù),配合高擴(kuò)展性的材質(zhì)系統(tǒng),可以讓美工輕松實(shí)現(xiàn)所見(jiàn)即所得的編輯。
- 粒子,草
采用geometry instancing、shader instancing等先進(jìn)技術(shù)的高效可擴(kuò)展的粒子、草體系統(tǒng),支持同屏海量的粒子、草體繪制,支持粒子和風(fēng)力等環(huán)境因素交互,支持腳本控制。
- 特效
逼真的水體渲染系統(tǒng),支持全場(chǎng)景范圍的折射、反射,支持無(wú)縫的水上水下場(chǎng)景過(guò)渡。
豐富的全屏特效系統(tǒng),支持hdr glow、亮度自適應(yīng)、景深、局部動(dòng)態(tài)模糊、熱空氣擾動(dòng)、體積光等多種特效。
- UI
功能強(qiáng)大的輕量級(jí)UI庫(kù),通過(guò)lua腳本可方便快捷的實(shí)現(xiàn)第三方界面插件擴(kuò)展。
世界編輯器介紹
支持無(wú)縫場(chǎng)景的編輯,對(duì)于場(chǎng)景中大范圍的地形,提供了多種幫助美工進(jìn)行大場(chǎng)景區(qū)域規(guī)劃的功能。提供豐富的地形網(wǎng)格編輯手段:支持高度圖導(dǎo)入和各種網(wǎng)格編輯刷子,如平滑、凹凸、抹平、挖洞和鋪路等等。

高度編輯

挖洞編輯
提供豐富的地形紋理編輯手段,來(lái)實(shí)現(xiàn)無(wú)縫場(chǎng)景的多層紋理編輯。 支持紋理混合alpha圖的導(dǎo)入和各種紋理層編輯刷子,并提供了多種規(guī)劃手段,來(lái)輔助大范圍場(chǎng)景紋理的編輯。另外,程序能夠自動(dòng)根據(jù)地形的坡度來(lái)識(shí)別不同的紋理映射軸并且自動(dòng)計(jì)算紋理坐標(biāo)。因此美工可以在photoshop中方便的進(jìn)行初期規(guī)劃,然后利用地編對(duì)規(guī)劃數(shù)據(jù)進(jìn)行處理,加工,方便的生成和編輯不同場(chǎng)景中不同地形的紋理。自動(dòng)生成場(chǎng)景中的地圖紋理。

紋理編輯
方便的大批量植被集的編輯,支持導(dǎo)入植被種植圖和植被種植刷子,美工在photoshop中制作出代表植被集形狀,大小,顏色的種植圖,然后在場(chǎng)景中種植。

種植植被
方便的實(shí)體編輯功能,像素級(jí)的實(shí)體揀選,能夠在場(chǎng)景中快速高效的種植和編輯各種實(shí)體,如模型,特效,攝像機(jī)等等。

實(shí)體編輯
方便的調(diào)整場(chǎng)景信息。場(chǎng)景里面如各種光照信息,霧化信息,天空盒,以及各種全屏后期特效能夠方便的進(jìn)行設(shè)置修改并且能夠進(jìn)行實(shí)時(shí)的刷新。

白天場(chǎng)景

夜晚場(chǎng)景

環(huán)境設(shè)置
特效編輯器簡(jiǎn)介
方便靈活的粒子系統(tǒng)編輯,提供多種粒子生成器,并且能夠?qū)ζ溥M(jìn)行靈活控制。對(duì)于粒子的各種屬性如大小,速度,旋轉(zhuǎn),顏色,紋理都能靈活進(jìn)行控制,另外還支持支持粒子的多種渲染方式,如點(diǎn)精靈,條帶,各種類(lèi)型的公告板等等。

粒子生成器(1)

粒子生成器(2)

粒子特效編輯(1)

粒子特效編輯(2)
支持樹(shù)形的特效節(jié)點(diǎn),方便的特效組合,在組合時(shí)可以復(fù)用以往的特效,提高了編輯的效率。除了粒子特效外,還可以組合模型動(dòng)畫(huà)特效、紋理動(dòng)畫(huà)和動(dòng)畫(huà)紋理特效等等。在各種子特效組合時(shí)可以附加各種不同的規(guī)則,如平移,繞一軸公轉(zhuǎn),自轉(zhuǎn),延時(shí)播放等等。

粒子規(guī)則編輯

節(jié)點(diǎn)之間的作用時(shí)間

粒子特效
服務(wù)器技術(shù)特性簡(jiǎn)介
- 服務(wù)器各個(gè)模塊均按照“Consumer-Producer”模型設(shè)計(jì),僅在公共接口定義上耦合,并約定了“Consumer-Driven”的驅(qū)動(dòng)方式。按照這種模型設(shè)計(jì)出來(lái)的服務(wù)器程序具有清晰的代碼結(jié)構(gòu),并且模塊間耦合度較低,便于日后維護(hù)和擴(kuò)展。
- 《天驕III》服務(wù)器端腳本系統(tǒng)采用 Lua 腳本語(yǔ)言。除了 Lua 在性能方面的出色表現(xiàn)之外,還因?yàn)樗哂泻軓?qiáng)的可擴(kuò)展性,使我們很容易地就將它集成到項(xiàng)目中來(lái),形成我們自己的腳本系統(tǒng)。使用
Lua 最大的好處在于將腳本虛擬機(jī)環(huán)境與二進(jìn)制代碼環(huán)境完全隔離開(kāi)來(lái),從而使腳本錯(cuò)誤不會(huì)波及到整個(gè)服務(wù)器進(jìn)程。另一方面,Lua 的“協(xié)同線程”特性可以使程序員更容易地控制腳本代碼的執(zhí)行過(guò)程,在不給腳本代碼增加任何復(fù)雜度的前提下,將一些耗時(shí)操作(如數(shù)據(jù)庫(kù)操作、遠(yuǎn)程查詢操作等)異步化,以保證整個(gè)游戲世界不會(huì)因等待這些操作返回而掛起。
- 《天驕III》服務(wù)器程序在設(shè)計(jì)時(shí)就考慮到了當(dāng)前和將來(lái)服務(wù)器硬件的多核、多 CPU 特性。以場(chǎng)景邏輯為單位,將不同場(chǎng)景(包括同一個(gè)場(chǎng)景的不同實(shí)例,也就是副本)間的游戲邏輯分發(fā)到不同的工作線程去執(zhí)行,以便最大限度地利用服務(wù)器硬件的 CPU 資源。這種場(chǎng)景間完全獨(dú)立的劃分方式再配合大服務(wù)器架構(gòu),又使得整個(gè)游戲世界實(shí)現(xiàn)動(dòng)態(tài)負(fù)載平衡成為一件很容易的事。
posted on 2009-01-02 03:51
小王 閱讀(469)
評(píng)論(0) 編輯 收藏 引用