转载:Steve Streeting访谈(译)
出自Ogre3D开放资源地带
GameDev ( 遊戲開發 ) - 新聞區 gamedev.tw/gamedev/modules/news/article.php?storyi...
31st August 2006
Steve Streeting是 開源3D引擎 OGER最初的開發者和目前團隊的領導人,他人很好,願意撥出一些時間來接受深度的專訪。
你願意給我們的讀者來段關於 OGER 歷史的小小介紹嗎?你私人的嗜好是如何轉變成一套擁有多功能且支援多平台的3D引擎呢?
我從2001年開始開發 OGRE,因為我對於當時所有的3D即時引擎都感到不太滿意。我認為其他3D引擎太不具擴充性了-他們都太專注在單一螢幕模式(single scene type),單一成像 API(a single rendering API),某種遊戲類型,單一管線(one content pipeline),等諸如此類。許多的引擎他們的程式碼還非常嚇人-很少註解,沒有完善架構以致於令人難以理解的程式碼,之後也難以發展成漂亮的格式。
我相信我可以寫一套引擎,更棒、透過 plugin可以高度客制化,並且可以獨立出成像系統,且即使在成像最基礎的地方也可以提供plugin的支援(像是 BSPs, octrees, cell/portal,不管是什麼) ,但是仍然很快。我也很有自信可以把這套引擎設計和撰寫的很乾淨很漂亮,這樣一來即使這引擎後來不斷的演化架構還是很棒,而不是當新技術出來後底層還要不斷地改寫,雖然這在業界是時常發生的事。這很有趣,有些人仍然對於當新技術出來後,他們必須重寫他們的引擎感到很自負-這剛好與我相反-什麼?你居然為了你的設計擴充性不夠而感到自傲!!!這總是令我覺得奇特:) 雖然重寫這件事從市場的觀點看起來也很棒( game forum fanboys lap this sort of thing up),但是如果這成真了,不也代表原始的設計限制太多嗎,以敝人的觀點看來。
我也想寫套圖像引擎可以很方便地與其他元件整合。我並不喜歡大多的圖像引擎試著要給你一堆其他功能的套件-一種要嘛就是全要不然就是都沒有的選擇。可能的話我也想成立一個計畫,挑選最棒得成像引擎,最棒的物理引擎,最棒的聲音套件,之類的。藉著整合這些令人激賞的元素,你可以對你的計畫有更多的控制,而不是被那些你不喜歡的部份拖著走。要完成這個目標得把焦點放在完善的API文件,可以讓你很方便地整合。
當這個計畫成真得時候,有很多人同意我(當然,並不是全部,但是這是一場健康的論戰)。這一開始只是我個人的計畫,沒想到後來卻成長到你現在看到的樣子 - 遠遠超過我一開始的期望。
目前你有一組團隊來持續幫這個計畫注入活力。這個團隊的成員來自四面八方,並且各自在自己的時區內工作,這看起來不是很好監督管理。你可以教導我們如果管理這個計畫的流程嗎?
我們非常小心地挑選我們的團隊成員,程式技巧是最重要的能力,可以跟別人好好溝通,對於討論持著開放得心胸,可以與目前的團隊成員在設計和撰寫程式方面保持一致得概念並且可以獨立工作,這些都是必需的。
我們所有的團隊成員都可以不受限制地存取網站上的程式庫。我們的系統會自動把所有的變更寄給每個在郵件列表裡的人員,無論程式碼更動了些什麼,所以我們才可以保持對於程式庫目前狀態的了解(其他人則是可以看到程式碼)。在那之上,我們還有一個論壇用來討論設計方面的議題或是其他任何深度的討論,如果需要的話,還有 IRC頻道提供即時的溝通。我們最常使用論壇,因為我們成員所在得時區差異很大(從 UTC-7 到UTC+8)。因為我們都有共同的認知,所以在討論設計層面時很平和並且很有建設性-再一次,小心地選擇你的團隊,這會覺得你們溝通時的流暢程度。
如何招募新的人手呢?所有的團隊成員都必須這個社群的頂級高手-他們總是貢獻高品質修正檔(這檔案會被非常小心地審閱過後才被接受),並且展現了他們在設計方蜜的正確感覺,好的溝通技巧,會很平靜且很具建設性的去面對問題。在這些人之中,我會看到很有潛力成為我們隊員的人。核心團隊相較之下比較小 (<5),這樣才能讓事情變得比較簡單並且比較好管理,還是有非常多其他的人不斷地貢獻修正檔,不斷地在這個社群中幫助他人。我們認可這些社群中的好人,並且班發給他們 'MVP' 的獎章。透過這種方法,每個人就被鼓勵去參與(雖然這是開放源碼的計畫),但是最後遞交的程式碼審閱權還是掌握在小團隊中,這些核心團隊非常小心地檢查,確保我們所送出的程式碼品質夠好。
從一開始,你就利用你的空閒時間製作 OGRE。在白天的工作後,你從哪裡找到這些時間和動力來從事你自己的3D引擎開發?
這有很多因素-首先我猜這動力來自我的血液當中,我在閒暇之餘從事繪圖相關的程式設計已經很有了( 在還是8bit和 16bit的時代),我也一直很喜歡3D。Ogre(我想)是我第五或是第六套3D引擎,但是是最完整也最成功的一套。另一個原因則是因為社群- 人們喜歡你所作的這件事會帶給你很大動力,發表在 Showcase 論壇中的一些絕佳的作品也帶給我動力。就像是大多數成功的開源計畫,一開始的自我動力很重要 -- 我們都被想要讓他人印象深刻而刺激:)
為什麼你比較喜歡使用 LGPL釋出?你有考慮過其他的選擇嗎? 像是GPL 或是其他的商業授權?
我認為LGPL 在使用者的自由和計畫的責任方面取得一個好的平衡。 GPL 對於單一的應用程式可以運作的很好,但對於函式庫而言就太過拘束(它要求使用GPL的軟體也必須是GPL-並不是所有的人都想把他們的程式碼釋出,我尊重每個人。LGPL表示我們有一個健全的授權,但是使用者也可以使用他們自己的授權,如果他們動態連結到Ogre的話,那麼他們也有可能把他們的修正檔釋回給這個社群-一個很好、很公平的交易。
如果你只能藉著一個計畫或是Demo程式來呈現OGRE是多麼強大,你會怎麼做?
很難的問題,有許多非常好的計畫我都感到很驕傲。雖然有些計畫是公開的,但是Pacilic Storm(http://www.pacificstorm.net/ )???可能是當前最好的範例。這是一套使用Ogre的商業遊戲,這套遊戲在2005和2006的E3都有展出,並且最近才發行。
如果有人提供你金錢和時間利用OGRE來撰寫一套遊戲,怎麼樣的遊戲你會想做?
然後讓某人偷走我的點子?絕不 :) 。實際上,我也不知道-這些年來我聽過很多不同的點子,但實際上我從未想過自己成為一個遊戲開發者。我是一個工具開發者,開發一些許多人拿來做遊戲的工具 (也有許多人做了不是遊戲的計畫)。如果有人給我預算,我很可能會把它花在做更多且更好的工具來幫助人們工作時更有生產力,無論他們想拿即時3D做什麼,遊戲或是什麼的。
最後一個問題會讓我們的讀者很興奮:在最近剛要釋出的新版OGRE ,有什麼最酷的特色是我們可以期待的?
SSE/SSE2/SIMD optimizations, improved background loading, Unicode support, instancing, vertex textures, OIS integration in demos, the outcomes of our Google Summer of Code projects (lots of stuff in there), and quite a few other things. http://www.ogre3d.org/wiki/index.php/EihortNotes#Annotated_roadmap
謝謝你來參加訪談。



