2011-02-23 101 views
2

如果蘋果公司宣佈他們自己的遊戲控制檯,他們過去一樣,我相信他們不會支持C++/C#遊戲。所以我的問題是Objective-C是如此快速而強大的編寫高效的遊戲引擎?Objective-C遊戲開發?

+3

遊戲不需要快速高效地獲得商業成功。法姆維爾作爲球緩慢並且賺取數百萬美元。 – corsiKa 2011-02-23 17:33:23

回答

2

Apple設備上的大部分遊戲都是用C/C++編寫的,可能是Objective-C的一個很薄的外觀。所以你指出了一個非問題。

同樣的Objective-C是非常快的,因爲它只是一個C.

+0

說它快,因爲它只是C的超集,就像說電腦很簡單,因爲它只是一個開/關按鈕的超集。 – 2012-01-12 22:08:02

+2

@ NicklasA.No,簡單和快速是不同的單詞,你創建了一個錯誤的等價。在Objective-C中,如果您編寫純C代碼,那麼它完全編譯爲C.因此,您可以在所需的位置獲得純C速度。 – 2012-01-12 23:32:27

2

的超集,我相信C++會被蘋果一貫支持。真正無法編寫優化的遊戲,例如只使用Objective C的Infinity Blade。 原因是這種語言具有巨大的靈活性(在大多數情況下,這是一個很大的優勢,但不是在遊戲開發中):它實現了使用運行時消息傳遞,它使用了大量的隱式函數調用(在緩存中搜索,在方法中搜索,在超類緩存中搜索等等)。

因此,幾乎所有事情在運行時都在ObjC中解決,並且處理需要很多時間。

4

Cocos2D是一個非常有效的Objective-C圖形引擎,以及Box2D物理引擎和CocosDenshion音頻引擎,您可以製作一些非常好的遊戲。

Objective-C 一種快速,小尺寸的語言。看到它如何運行在最成功的嵌入式大衆市場平臺 - iPhone上。我不確定你給C++/C#的理由是否是比較好的選擇?如前所述,here, cached message sends比C++虛擬方法調用要快。

+0

而且,如果需要在OpenGL中使用,則可以使用[直接C](http://it.toolbox.com/blogs/macsploitation/bypassing-objectivecs-message-passing-mechanism-for-speed-24946)獲得性能。 – 2011-02-23 15:37:25

2

26年前,我使用C++而不是C來笑。現在幾乎遊戲開發者正在使用C++。

同樣,在我看來,趨勢將轉變爲objective-c!

使用C內部的objective-c來獲得更好的性能並不會放棄objective-c,但應該稱爲性能調優!