成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度分析游戲開發(fā)編程語言優(yōu)缺點(diǎn)(1)

開發(fā) 游戲開發(fā) 游戲開發(fā)
我應(yīng)該用何種語言來做游戲開發(fā)?這是每個(gè)游戲編程FAQ里都有的問題。這個(gè)問題每星期都會(huì)在游戲開發(fā)論壇上被問上好幾次。這是個(gè)很好的問題,但是,沒人能給出簡單的答案。在某些應(yīng)用程序中,總有一些計(jì)算機(jī)語言優(yōu)于其他語言。下面是幾種用于編寫游戲的主要編程語言的介紹及其優(yōu)缺點(diǎn)。希望這篇文章能幫助你做出決定。

  我應(yīng)該用何種語言來做游戲開發(fā)?這是每個(gè)游戲編程FAQ里都有的問題。下面列舉了幾種用于游戲開發(fā)的主要編程語言的介紹及其優(yōu)缺點(diǎn)。希望這篇文章能幫助你做出決定。

  1、C語言

  如果說FORTRAN和COBOL是第一代高級(jí)編譯語言,那么C語言就是它們的孫子輩。C語言是Dennis Ritchie在七十年代創(chuàng)建的,它功能更強(qiáng)大且與ALGOL保持更連續(xù)的繼承性,而ALGOL則是COBOL和FORTRAN的結(jié)構(gòu)化繼承者。C語言被設(shè)計(jì)成一個(gè)比它的前輩更精巧、更簡單的版本,它適于編寫系統(tǒng)級(jí)的程序,比如操作系統(tǒng)。在此之前,操作系統(tǒng)是使用匯編語言編寫的,而且不可移植。C語言是第一個(gè)使得系統(tǒng)級(jí)代碼移植成為可能的編程語言。

  C語言支持結(jié)構(gòu)化編程,也就是說C的程序被編寫成一些分離的函數(shù)呼叫(調(diào)用)的集合,這些呼叫是自上而下運(yùn)行,而不像一個(gè)單獨(dú)的集成塊的代碼使用GOTO語句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的“空心粉式代碼”代碼要簡單得多。事實(shí)上,C仍然具有GOTO語句,不過它的功能被限制了,僅當(dāng)結(jié)構(gòu)化方案非常復(fù)雜時(shí)才建議使用。

  正由于它的系統(tǒng)編程根源,將C和匯編語言進(jìn)行結(jié)合是相當(dāng)容易的。函數(shù)調(diào)用接口非常簡單,而且匯編語言指令還能內(nèi)嵌到C代碼中,所以,不需要連接獨(dú)立的匯編模塊。

  優(yōu)點(diǎn):有益于編寫小而快的程序。很容易與匯編語言結(jié)合。具有很高的標(biāo)準(zhǔn)化,因此其他平臺(tái)上的各版本非常相似。

  缺點(diǎn):不容易支持面向?qū)ο蠹夹g(shù)。語法有時(shí)會(huì)非常難以理解,并造成濫用。

  移植性:C語言的核心以及ANSI函數(shù)調(diào)用都具有移植性,但僅限于流程控制、內(nèi)存管理和簡單的文件處理。其他的東西都跟平臺(tái)有關(guān)。比如說,為Windows和Mac開發(fā)可移植的程序,用戶界面部分就需要用到與系統(tǒng)相關(guān)的函數(shù)調(diào)用。這一般意味著你必須寫兩次用戶界面代碼,不過還好有一些庫可以減輕工作量。

  用C語言編寫的游戲:非常非常多。

  資料:C語言的經(jīng)典著作是《The C Programming Language》,它經(jīng)過多次修改,已經(jīng)擴(kuò)展到最初的三倍大,但它仍然是介紹C的優(yōu)秀書本。一本極好的教程是《The Waite Group's C Primer Plus》。

  2、C++

  C++語言是具有面向?qū)ο筇匦缘腃語言的繼承者。面向?qū)ο缶幊蹋蚍QOOP是結(jié)構(gòu)化編程的下一步。OO程序由對(duì)象組成,其中的對(duì)象是數(shù)據(jù)和函數(shù)離散集合。有許多可用的對(duì)象庫存在,這使得編程簡單得只需要將一些程序“建筑材料”堆在一起(至少理論上是這樣)。比如說,有很多的GUI和數(shù)據(jù)庫的庫實(shí)現(xiàn)為對(duì)象的集合。

  C++總是辯論的主題,尤其是在游戲開發(fā)論壇里。有幾項(xiàng)C++的功能,比如虛擬函數(shù),為函數(shù)呼叫的決策制定增加了一個(gè)額外層次,批評(píng)家很快指出C++程序?qū)⒆兊帽认嗤δ艿腃程序來得大和慢。C++的擁護(hù)者則認(rèn)為,用C寫出與虛擬函數(shù)等價(jià)的代碼同樣會(huì)增加開支。這將是一個(gè)還在進(jìn)行,而且不可能很快得出結(jié)論的爭論。

  我認(rèn)為,C++的額外開支只是使用更好的語言的小付出。同樣的爭論發(fā)生在六十年代高級(jí)程序語言如COBOL和FORTRAN開始取代匯編成為語言所選的時(shí)候。批評(píng)家正確的指出使用高級(jí)語言編寫的程序天生就比手寫的匯編語言來得慢,而且必然如此。而高級(jí)語言支持者認(rèn)為這么點(diǎn)小小的性能損失是值得的,因?yàn)镃OBOL和FORTRAN程序更容易編寫和維護(hù)。

  優(yōu)點(diǎn):組織大型程序時(shí)比C語言好得多。很好的支持面向?qū)ο髾C(jī)制。通用數(shù)據(jù)結(jié)構(gòu),如鏈表和可增長的陣列組成的庫減輕了由于處理低層細(xì)節(jié)的負(fù)擔(dān)。

  缺點(diǎn):非常大而復(fù)雜。與C語言一樣存在語法濫用問題。比C慢。大多數(shù)編譯器沒有把整個(gè)語言正確的實(shí)現(xiàn)。

  移植性:比C語言好多了,但依然不是很樂觀。因?yàn)樗哂信cC語言相同的缺點(diǎn),大多數(shù)可移植性用戶界面庫都使用C++對(duì)象實(shí)現(xiàn)。

  使用C++編寫的游戲:非常非常多。大多數(shù)的商業(yè)游戲是使用C或C++編寫的。

  資料:最新版的《The C++ Programming Language》非常好。作為教程,有兩個(gè)陣營,一個(gè)假定你知道C,另外一個(gè)假定你不知道。到目前為止,最好的C++教程是《Who's Afraid of C++》,如果你已經(jīng)熟知C,那么試一下《Teach Yourself C++》。

  3、我該學(xué)習(xí)C++或是該從C開始(Should I learn C++, or should I start with C )

  我不喜歡這種說法,但它是繼“我該使用哪門語言”之后最經(jīng)常被問及的問題。很不幸,不存在標(biāo)準(zhǔn)答案。你可以自學(xué)C并使用它來寫程序,從而節(jié)省一大堆的時(shí)間,不過使用這種方法有兩個(gè)弊端:

  你將錯(cuò)過那些面向?qū)ο蟮闹R(shí),因?yàn)樗赡茉谀愕挠螒蛑惺沟脭?shù)據(jù)建模更有效率的東西。

  最大的商業(yè)游戲,包括第一人稱射擊游戲很多并沒有使用C++。但是,這些程序的作者即使使用老的C的格式,他們通常堅(jiān)持使用面向?qū)ο缶幊碳夹g(shù)。如果你只想學(xué)C,至少要自學(xué)OO(面向?qū)ο?編程技術(shù)。OO是仿真(游戲)的完美方法,如果你不學(xué)習(xí)OO,你將不得不“辛苦”的工作。

  4、匯編語言(Assembly)

  顯然,匯編是第一個(gè)計(jì)算機(jī)語言。匯編語言實(shí)際上是你計(jì)算機(jī)處理器實(shí)際運(yùn)行的指令的命令形式表示法。這意味著你將與處理器的底層打交道,比如寄存器和堆棧。如果你要找的是類英語且有相關(guān)的自我說明的語言,這不是你想要的。

  確切的說,任何你能在其他語言里做到的事情,匯編都能做,只是不那么簡單 — 這是當(dāng)然,就像說你既可以開車到某個(gè)地方,也可以走路去,只是難易之分。話雖不錯(cuò),但是新技術(shù)讓東西變得更易于使用。

  總的來說,匯編語言不會(huì)在游戲中單獨(dú)應(yīng)用。游戲使用匯編主要是使用它那些能提高性能的零零碎碎的部分。比如說,毀滅戰(zhàn)士整體使用C來編寫,有幾段繪圖程序使用匯編。這些程序每秒鐘要調(diào)用數(shù)千次,因此,盡可能的簡潔將有助于提高游戲的性能。而從C里調(diào)用匯編寫的函數(shù)是相當(dāng)簡單的,因此同時(shí)使用兩種語言不成問題。

  特別注意:語言的名字叫“匯編”。把匯編語言翻譯成真實(shí)的機(jī)器碼的工具叫“匯編程序”。把這門語言叫做“匯編程序”這種用詞不當(dāng)相當(dāng)普遍,因此,請從這門語言的正確稱呼作為起點(diǎn)出發(fā)。

  優(yōu)點(diǎn):最小、最快的語言。匯編高手能編寫出比任何其他語言能實(shí)現(xiàn)的快得多的程序。你將是利用處理器最新功能的第一人,因?yàn)槟隳苤苯邮褂盟鼈儭?/p>

  缺點(diǎn):難學(xué)、語法晦澀、堅(jiān)持效率,造成大量額外代碼 — 不適于心臟虛弱者。

  移植性:接近零。因?yàn)檫@門語言是為一種單獨(dú)的處理器設(shè)計(jì)的,根本沒移植性可言。如果使用了某個(gè)特殊處理器的擴(kuò)展功能,你的代碼甚至無法移植到其他同類型的處理器上(比如,AMD的3DNow指令是無法移植到其它奔騰系列的處理器上的)。

  使用匯編編寫的游戲:我不知道有什么商業(yè)游戲是完全用匯編開發(fā)的。不過有些游戲使用匯編完成多數(shù)對(duì)時(shí)間要求苛刻的部分。

  資料:如果你正在找一門匯編語言的文檔,你主要要找芯片的文檔。網(wǎng)絡(luò)上如Intel、AMD、Motorola等有一些關(guān)于它們的處理器的資料。對(duì)于書籍而言,《Assembly Language: Step-By-Step》是很值得學(xué)習(xí)的。

  (本文未完,繼續(xù)閱讀,點(diǎn)擊續(xù)篇 深度分析游戲開發(fā)編程語言優(yōu)缺點(diǎn)(2)

【編輯推薦】

  1. 網(wǎng)絡(luò)游戲開發(fā)入門指導(dǎo)
  2. 游戲開發(fā)行業(yè)薪酬職位深入剖析
  3. 游戲開發(fā)程序員該如何成長
  4. 2011年需要關(guān)注的9大編程語言
  5. 到底怎樣才算是學(xué)會(huì)一種編程語言?
責(zé)任編輯:韓亞珊 來源: 網(wǎng)絡(luò)游戲研發(fā)網(wǎng)
相關(guān)推薦

2011-04-08 11:15:20

編程語言編程游戲開發(fā)

2009-12-04 11:02:00

PHP語言優(yōu)缺點(diǎn)

2021-04-11 09:59:03

編程語言數(shù)據(jù)分析Python

2009-12-14 18:54:30

Ruby語言優(yōu)缺點(diǎn)

2019-11-15 13:26:17

編程語言微軟C語言

2010-06-21 14:46:30

EIGRP路由協(xié)議

2010-06-21 14:14:33

OSPF協(xié)議

2017-03-06 14:45:27

超線程技術(shù)處理器技術(shù)服務(wù)器

2022-09-22 12:04:22

.NET開發(fā)框架

2009-04-13 16:37:33

JSPWeb標(biāo)簽

2009-12-25 10:25:06

LMDS接入技術(shù)

2015-07-03 09:41:05

腳本編程編程語言比較

2009-11-30 09:19:54

Google Wave

2019-10-11 15:46:29

編程語言JavaJavaScript

2010-05-31 14:42:14

SVN與CVS優(yōu)缺點(diǎn)

2013-09-13 12:58:07

原生應(yīng)用Web應(yīng)用混合應(yīng)用

2009-08-10 15:09:15

JSP架構(gòu)JSP開發(fā)工具

2012-07-01 02:10:49

JSP架構(gòu)開發(fā)工具

2019-05-17 14:50:11

AI語言程序員

2023-02-09 07:38:05

Python編程語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久视频免费观看 | 久久国产婷婷国产香蕉 | 日韩成人免费视频 | 日韩精品久久久久久 | 国产在线精品一区二区三区 | 国产免费又色又爽又黄在线观看 | 国产www成人| 日韩手机在线看片 | 国产一区二区三区 | 亚洲精品久久久久久一区二区 | 欧美日韩视频在线第一区 | 午夜免费视频 | 久久久精品| 中文字幕精品一区二区三区在线 | 亚洲欧洲中文 | av在线免费看网址 | 精品一区二区三区免费毛片 | 中文字幕亚洲区一区二 | 久久久久久精 | 一区二区三区视频在线免费观看 | 久久精品国产一区二区 | 天堂综合 | 精品久久香蕉国产线看观看亚洲 | 欧美区日韩区 | 一区二区三区av | 91色网站| 日本成人毛片 | 亚洲 欧美 综合 | 黄网站涩免费蜜桃网站 | 日韩电影在线一区 | 亚洲一区二区在线视频 | 精品在线一区 | 国产精品成人一区二区三区 | 天天综合干 | 91麻豆产精品久久久久久夏晴子 | 米奇成人网 | 精品久久久久久亚洲精品 | 嫩草一区二区三区 | 欧美一级在线视频 | 操操日| 91视视频在线观看入口直接观看 |