2009-04-30 117 views

回答

10

高級語言的速度通常使他們擺脫了「嚴重」的遊戲開發,而C和C++在這種開發中佔據着至高無上的地位。然而,越來越多的遊戲將遊戲邏輯暴露給像Lua和Python這樣的腳本語言。我聽說過在VB中開發的獨立遊戲,例如Zombie Smashers系列是在VB中由James Silva開發的,他最近在C#.net中完成了遊戲Dishwasher Dead Samurai

你可能想看看微軟推出的Xbox Live Arcade框架(XNA)。你可以在VB或C#中使用它。

+1

作爲一個警告,你不能使用VB.NET來開發使用XNA的Xbox 360遊戲。只支持C#3.0。 http://creators.xna.com/en-us/xnags_islive – 2009-05-14 18:22:27

3

這不是VB.NET,這是主要問題,它是.NET Framework。

具體而言,遊戲開發通常以C/C++完成,其中每獲得一盎司的性能。 .NET框架不適用於此。

隨着中說有已開發的.NET

+0

高於事實。儘管我喜歡.NET框架,但大多數主要開發人員都表示,如果你想參與遊戲開發,就應該瞭解C++,並且你的數據結構/算法更好(暴雪)。 – bdd 2009-04-30 16:05:46

+1

沒錯,但是如果你是一個愛好遊戲的唯一程序員,你真的要與暴雪競爭嗎? – 2009-04-30 16:11:58

0

VB.NET是任何其他.NET語言沒有不同的遊戲。

VB的速度慢的感覺不再是這種情況。

這是一個用於VB.NET和XNA(遊戲開發工具包)的list of tutorials

1

它的一部分是仍然附加到vb的一般慢語言的恥辱。 (因爲.net框架的通用性,它不像以前那麼真實)

說實話,雖然它取決於你開發的是哪種類型的遊戲,如果你正在做高幀率,高一流的3D圖形,流血的遊戲,然後你堅持寫在C或C++爲了獲得必要的性能。但是如果你正在做的更像現在許多基於Flash的遊戲中看到的東西,甚至是你在老遊戲中看到的東西,那麼恕我直言,你幾乎可以用任何語言做到這一點。

8

遊戲程序員花了很長時間才能接受C++,因爲它是「慢」的。我相信很快多核時代將會導致它慢慢淡化,因爲並行運行要比儘可能快地運行單線程更重要。

請記住,現在GPU上的像素/頂點/幾何着色器在GPU上進行了大量處理。所以我們看到一些非常高級的遊戲被寫入了可能被認爲是「慢」語言的遊戲。

最後,.NET並不慢。什麼讓遊戲開發麻煩是垃圾回收器的不可預測性(GC在巨大的boss戰中引發並導致滯後 - 不太好)以及C#和本機代碼之間發生的任何編組。

幸運的是,深入瞭解.NET的工作原理,包括GC和運行時 - 這些障礙都可以克服。

如果有什麼強烈建議使用託管語言來創建遊戲原型,無論是VB.NET,C#,Python,紅寶石等......然後如果發現它太慢,您可以將端口它的一部分是C++。

。NET已經託管了C++,它使得本地代碼和託管代碼之間的互操作性變得相當無縫。這允許那些真正關鍵的部分在必要時被本地編寫。但我懷疑是這樣。首先最重要的優化將來自數據結構,算法和整體架構。

0

正如其他人所指出的,淨是不慢,但也有其抗衡它爲遊戲開發的幾件事情:

  1. 垃圾收集的非確定性
  2. 低便攜性(與C )
  3. 缺乏成熟的遊戲開發工具/庫的/框架

至於使用VB.Net特異性。親愛的主爲什麼? :-)

0

您可以使用Microsoft XNA框架的圖形和regualr WinForms應用程序包含所有代碼。只需安裝XNA Framework並從您的VB WinForms應用程序中添加一個參考。

如果你想利用所有功能XNA的優勢所提供的,你需要使用與XNA很好地集成C#。

1

至於速度零件,發動機就像XNA基於Visual3D.NET使我確信這不是不可能,從託管的遊戲引擎獲得更好的性能。更重要的是,CPU在任何演示中似乎都不是什麼瓶頸,這是C#使用的唯一部分。甚至當它的CPU有限的,它仍然只是推50-60%,由於發動機還是相當單線程的,所以有改進的餘地今天的雙核和四核CPU,以及明天的octo-和hexadeca核心不少。我認爲在多核時代優化算法的優化將比使用的語言更重要。

,並用管理語言對整個發動機的好處是,它是易於使用的遊戲邏輯/ AI相同的高級語言,而天然的發動機可能會使用更慢的腳本語言這一點。

像C#/ VB.NET這樣的託管語言的使用可能會限制基於CPU的東西,比如物理學,但是對於XNA,完全託管的物理庫JigLibX給我留下了非常深刻的印象。

這是所有C#,但我猜它也適用於VB.NET,因爲它們最終編譯爲相同的IL,除非在VB編譯器中有一些我沒有意識到的限制。