2011-10-20 63 views
0

我見過很多遊戲編程框架,庫和引擎,但似乎有一個區別,我不能指責。看起來框架比引擎更難工作。框架/圖書館和遊戲引擎 - 有什麼區別

從我的理解(或認爲我理解)框架是使用編程庫建立的,並且可以使用框架構建遊戲引擎。我對整個交易感到困惑,說實話。

是否存在某種涉及這些問題的問題?我在Java中看到一個名爲LibGDX的遊戲引擎,它建立在LWJGL JOGL之上,可用於製作Android遊戲,因爲它也使用Google的Android框架,這怎麼可能?我也使用了C#XNA框架,它可以用來製作完整的遊戲,並且還有引擎構建在其上,爲什麼當你可以構建的時候,你需要一個引擎放在XNA框架之上從框架本身的遊戲?

此外,我不太瞭解Unity,但它似乎能夠使用三種不同的語言作爲遊戲引擎。

+0

在Gamedev網站上有一些這樣的答案:http://gamedev.stackexchange.com/questions/10770/whats-the-difference-between-a-library-and-an-engine/ – thedaian

回答

0

圖書館僅僅是用於構建最終產品的一部分。它通常負責像數學,物理,渲染等特定的事情。

框架有點大或可以只是庫的同義詞。框架可以是構建像數學,物理,渲染在一起的遊戲所必需的所有基礎。例如,XNA具有音頻,數學,圖形,輸入等基礎知識。通過框架,您可以掌握基礎知識,但通常需要編寫大量代碼才能使用框架進行遊戲。在很多情況下,你想在框架的頂部編寫一個完整的圖層(它可以是一個完整的引擎),以便製作一個遊戲。

發動機是更高層。有了許多遊戲引擎,你不必編寫一行代碼來製作遊戲(它可能不是很有創意的遊戲,但它將成爲一款遊戲)。引擎通常帶有遊戲編輯器和其他工具,這些工具不是最終遊戲的一部分,並且通常是由數據驅動的。您可以運行遊戲編輯器並製作關卡或修改獲勝邏輯,從而製作全新的遊戲。

4

要從最基本的基礎上開始理解。

一個庫被擴展到一個程序中,一個真正常見的例子是一個.dll文件(動態鏈接庫),它將功能擴展到它所包含的應用程序中。我傾向於認爲庫是相似的在許多方面類,因爲他們將現有的功能擴展到本來不具備該功能的東西(我對圖書館沒有經驗,所以請糾正我,如果我錯了)。還有更多的庫然後就這雖然如此,我會爲你維基百科:

http://en.wikipedia.org/wiki/Programming_library

框架是非常簡單的解釋,它是基本上庫的集合。當你在XNA中引用一個對象時(例如你想創建一個StringBuilder),那麼你正在使用的框架引用System.Text(編輯:它是mscorelib的一部分)來訪問類StringBuilder。因此,在這個例子中(正如Aleks所指出的那樣),它是根據MSDN的MScorelib(或.NET庫)的一部分進入StringBuilder(class)Text(namespace)System(另一個命名空間)。

遊戲引擎有點類似於框架,但它們更專注和精煉。總的來說,我認爲遊戲引擎包含資源,編輯器,內置功能等內容,您不一定會在XNA中找到這些內容。我認爲最大的吸引力之一(從我的理解)到使用遊戲引擎是包含的資源。你不需要創建自己的紋理,他們可能有一些模型,聲音,動畫。這是一套更完整的工具,用於創建視頻遊戲,而不必從頭開始創建所有這些東西。我再次將指向你維基百科更多:

http://en.wikipedia.org/wiki/Game_engine

+1

框架示例isn不準確。 StringBuilder不是XNA的一部分。 System.Text不是一個庫。 StringBuilder是一個類,是System.Text命名空間的一部分,是mscorelib(庫)的一部分,是.NET Framework的一部分。 – Aleks

+0

@Aleks MSDN不同意你關於StringBuilder不屬於XNA的一部分http://msdn.microsoft.com/en-us/library/system.text.stringbuilder(v=VS.100).aspx –

+1

@Derrick在右邊鏈接的頂部:'彙編:mscorlib(在mscorlib.dll中)' – asawyer

相關問題