偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

深度分析游戲開(kāi)發(fā)編程語(yǔ)言?xún)?yōu)缺點(diǎn)(2)

開(kāi)發(fā) 游戲開(kāi)發(fā) 游戲開(kāi)發(fā)
我應(yīng)該用何種語(yǔ)言來(lái)做游戲開(kāi)發(fā)?這是每個(gè)游戲編程FAQ里都有的問(wèn)題。在某些應(yīng)用程序中,總有一些計(jì)算機(jī)語(yǔ)言?xún)?yōu)于其他語(yǔ)言。在上一篇文章中,我們已經(jīng)列舉了幾種編程語(yǔ)言的介紹及其優(yōu)缺點(diǎn),這篇文章我們繼續(xù)列舉Pascal、Visual Basic、Java以及創(chuàng)作工具的介紹及其優(yōu)缺點(diǎn)。

  在上一篇文章 深度分析游戲開(kāi)發(fā)編程語(yǔ)言?xún)?yōu)缺點(diǎn)(1)中,我們已經(jīng)列舉了游戲開(kāi)發(fā)中幾種編程語(yǔ)言的介紹及其優(yōu)缺點(diǎn),這篇文章我們繼續(xù)列舉Pascal、Visual Basic、Java以及創(chuàng)作工具的介紹及其優(yōu)缺點(diǎn)。

  5、Pascal語(yǔ)言

  Pascal語(yǔ)言是由Nicolas Wirth在七十年代早期設(shè)計(jì)的,因?yàn)樗麑?duì)于FORTRAN和COBOL沒(méi)有強(qiáng)制訓(xùn)練學(xué)生的結(jié)構(gòu)化編程感到很失望,“空心粉式代碼”變成了規(guī)范,而當(dāng)時(shí)的語(yǔ)言又不反對(duì)它。Pascal被設(shè)計(jì)來(lái)強(qiáng)行使用結(jié)構(gòu)化編程。最初的Pascal被嚴(yán)格設(shè)計(jì)成教學(xué)之用,最終,大量的擁護(hù)者促使它闖入了商業(yè)編程中。當(dāng)Borland發(fā)布IBM PC上的 Turbo Pascal時(shí),Pascal輝煌一時(shí)。集成的編輯器,閃電般的編譯器加上低廉的價(jià)格使之變得不可抵抗,Pascal編程了為MS-DOS編寫(xiě)小程序的首選語(yǔ)言。

  然而時(shí)日不久,C編譯器變得更快,并具有優(yōu)秀的內(nèi)置編輯器和調(diào)試器。Pascal在1990年Windows開(kāi)始流行時(shí)走到了盡頭,Borland放棄了Pascal而把目光轉(zhuǎn)向了為Windows 編寫(xiě)程序的C++。Turbo Pascal很快被人遺忘。

  最后,在1996年,Borland發(fā)布了它的“Visual Basic殺手”— Delphi。它是一種快速的帶華麗用戶(hù)界面的 Pascal編譯器。由于不懈努力,它很快贏得了一大群愛(ài)好者。

  基本上,Pascal比C簡(jiǎn)單。雖然語(yǔ)法類(lèi)似,它缺乏很多C有的簡(jiǎn)潔操作符。這既是好事又是壞事。雖然很難寫(xiě)出難以理解的“聰明”代碼,它同時(shí)也使得一些低級(jí)操作,如位操作變得困難起來(lái)。

  優(yōu)點(diǎn):易學(xué)、平臺(tái)相關(guān)的運(yùn)行(Dephi)非常好。

  缺點(diǎn):“世界潮流”面向?qū)ο蟮腜ascal繼承者(Modula、Oberon)尚未成功。語(yǔ)言標(biāo)準(zhǔn)不被編譯器開(kāi)發(fā)者認(rèn)同。專(zhuān)利權(quán)。

  移植性:很差。語(yǔ)言的功能由于平臺(tái)的轉(zhuǎn)變而轉(zhuǎn)變,沒(méi)有移植性工具包來(lái)處理平臺(tái)相關(guān)的功能。

  使用Pascal編寫(xiě)的游戲:幾個(gè)。DirectX的Delphi組件使得游戲場(chǎng)所變大了。

  資料:查找跟Delphi有關(guān)的資料,請(qǐng)?jiān)L問(wèn):Inprise Delphi page。

  6、Visual Basic

  哈,BASIC。回到八十年代的石器時(shí)代,它是程序初學(xué)者的第一個(gè)語(yǔ)言。最初的BASIC形式,雖然易于學(xué)習(xí),卻是可怕的無(wú)組織化,它義無(wú)返顧的使用了GOTO充斥的“空心粉式代碼”。當(dāng)回憶起B(yǎng)ASIC的行號(hào)和GOSUB命令,沒(méi)有幾個(gè)人能止住眼角的淚水。

  快速前進(jìn)到九十年代早期,雖然不是蘋(píng)果公司所希望的巨人,HyperCard仍然是一個(gè)在Windows下無(wú)法比擬的吸引人的小型編程環(huán)境。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂貴。為了與HyperCard一決高下,微軟取得了一個(gè)小巧的名為T(mén)hunder編程環(huán)境的許可權(quán),并把它作為Visual Basci 1.0發(fā)布,其用戶(hù)界面在當(dāng)時(shí)非常具有新意。這門(mén)語(yǔ)言雖然還叫做Basic(不再是全部大寫(xiě)),但更加結(jié)構(gòu)化了,行號(hào)也被去除。實(shí)際上,這門(mén)語(yǔ)言與那些內(nèi)置于TRS-80、Apple II及Atari里的舊的ROM BASIC相比,更像是帶Basic風(fēng)格動(dòng)詞的Pascal。

  經(jīng)過(guò)六個(gè)版本,Visual Basic變得非常漂亮。用戶(hù)界面發(fā)生了許多變化,但依然保留著“把代碼關(guān)聯(lián)到用戶(hù)界面”的主旨。這使得它在與即時(shí)編譯結(jié)合時(shí)變成了一個(gè)快速原型的優(yōu)異環(huán)境。

  優(yōu)點(diǎn):整潔的編輯環(huán)境。易學(xué)、即時(shí)編譯導(dǎo)致簡(jiǎn)單、迅速的原型。大量可用的插件。雖然有第三方的DirectX插件,DirectX 7已準(zhǔn)備提供Visual Basic的支持。

  缺點(diǎn):程序很大,而且運(yùn)行時(shí)需要幾個(gè)巨大的運(yùn)行時(shí)動(dòng)態(tài)連接庫(kù)。雖然表單型和對(duì)話(huà)框型的程序很容易完成,要編寫(xiě)好的圖形程序卻比較難。調(diào)用Windows的API程序非常笨拙,因?yàn)閂B的數(shù)據(jù)結(jié)構(gòu)沒(méi)能很好的映射到C中。有OO功能,但卻不是完全的面向?qū)ο?。?zhuān)利權(quán)。

  移植性:非常差。因?yàn)閂isual Basic是微軟的產(chǎn)品,你自然就被局限在他們實(shí)現(xiàn)它的平臺(tái)上。也就是說(shuō),你能得到的選擇是:Windows,Windows或Widnows。當(dāng)然,有一些工具能將VB程序轉(zhuǎn)變成Java。

  使用Visual Basic編寫(xiě)的游戲:一些。有很多使用VB編寫(xiě)的共享游戲,還有一些是商業(yè)性的。

  資料:微軟的VB頁(yè)面有一些信息。

  7、Java

  Java是由Sun最初設(shè)計(jì)用于嵌入程序的可移植性“小C++”。在網(wǎng)頁(yè)上運(yùn)行小程序的想法著實(shí)吸引了不少人的目光,于是,這門(mén)語(yǔ)言迅速崛起。事實(shí)證明,Java不僅僅適于在網(wǎng)頁(yè)上內(nèi)嵌動(dòng)畫(huà) — 它是一門(mén)極好的完全的軟件編程的小語(yǔ)言。“虛擬機(jī)”機(jī)制、垃圾回收以及沒(méi)有指針等使它很容易實(shí)現(xiàn)不易崩潰且不會(huì)泄漏資源的可靠程序。

  雖然不是C++的正式續(xù)篇,Java從C++ 中借用了大量的語(yǔ)法。它丟棄了很多C++的復(fù)雜功能,從而形成一門(mén)緊湊而易學(xué)的語(yǔ)言。不像C++,Java強(qiáng)制面向?qū)ο缶幊?,要在Java里寫(xiě)非面向?qū)ο蟮某绦蚓拖褚赑ascal里寫(xiě)“空心粉式代碼”一樣困難。

  優(yōu)點(diǎn):二進(jìn)制碼可移植到其他平臺(tái)。程序可以在網(wǎng)頁(yè)中運(yùn)行。內(nèi)含的類(lèi)庫(kù)非常標(biāo)準(zhǔn)且極其健壯。自動(dòng)分配合垃圾回收避免程序中資源泄漏。網(wǎng)上數(shù)量巨大的代碼例程。

  缺點(diǎn):使用一個(gè)“虛擬機(jī)”來(lái)運(yùn)行可移植的字節(jié)碼而非本地機(jī)器碼,程序?qū)⒈日嬲幾g器慢。有很多技術(shù)(例如“即時(shí)”編譯器)很大的提高了Java的速度,不過(guò)速度永遠(yuǎn)比不過(guò)機(jī)器碼方案。早期的功能,如AWT沒(méi)經(jīng)過(guò)慎重考慮,雖然被正式廢除,但為了保持向后兼容不得不保留。越高級(jí)的技術(shù),造成處理低級(jí)的機(jī)器功能越困難,Sun為這門(mén)語(yǔ)言增加新的“受祝福”功能的速度實(shí)在太慢。

  移植性:最好的,但仍未達(dá)到它本應(yīng)達(dá)到的水平。低級(jí)代碼具有非常高的可移植性,但是,很多UI及新功能在某些平臺(tái)上不穩(wěn)定。

  使用Java編寫(xiě)的游戲:網(wǎng)頁(yè)上有大量小的Applet,但僅有一些是商業(yè)性的。有幾個(gè)商業(yè)游戲使用Java作為內(nèi)部腳本語(yǔ)言。

  資料:Sun的官方Java頁(yè)面有一些好的信息。IBM也有一個(gè)非常好的Java頁(yè)面。JavaLobby是一個(gè)關(guān)于Java新聞的最好去處。

  8、創(chuàng)作工具

  上面所提及的編程語(yǔ)言涵蓋了大多數(shù)的商業(yè)游戲。但是也有一個(gè)例外,這個(gè)大游戲由于它的缺席而變得突出。

  “神秘島”。沒(méi)錯(cuò),賣(mài)得最好的商業(yè)游戲不是使用以上任何一門(mén)語(yǔ)言編的,雖然有人說(shuō)“神秘島”99%是使用 3D建模工具制作的,其根本的編程邏輯是在HyperCard里完成的。

  多數(shù)創(chuàng)作工具有點(diǎn)像Visual Basic,只是它們工作在更高的層次上。大多數(shù)工具使用一些拖拉式的流程圖來(lái)模擬流程控制。很多內(nèi)置解釋的程序語(yǔ)言,但是這些語(yǔ)言都無(wú)法像上面所說(shuō)的單獨(dú)的語(yǔ)言那樣健壯。

  優(yōu)點(diǎn):快速原型 — 如果你的游戲符合工具制作的主旨,你或許能使你的游戲跑得比使用其他語(yǔ)言快。在很多情況下,你可以創(chuàng)造一個(gè)不需要任何代碼的簡(jiǎn)單游戲。使用插件程序,如Shockware及IconAuthor播放器,你可以在網(wǎng)頁(yè)上發(fā)布很多創(chuàng)作工具生成的程序。

  缺點(diǎn):專(zhuān)利權(quán),至于將增加什么功能,你將受到工具制造者的支配。你必須考慮這些工具是否能滿(mǎn)足你游戲的需要,因?yàn)橛泻芏嗍虑槭悄切﹦?chuàng)作工具無(wú)法完成的。某些工具會(huì)產(chǎn)生臃腫得可怕的程序。

  移植性:因?yàn)閯?chuàng)作工具是具有專(zhuān)利權(quán)的,你的移植性以他們提供的功能息息相關(guān)。有些系統(tǒng),如Director可以在幾種平臺(tái)上創(chuàng)作和運(yùn)行,有些工具則在某一平臺(tái)上創(chuàng)作,在多種平臺(tái)上運(yùn)行,還有的是僅能在單一平臺(tái)上創(chuàng)作和運(yùn)行。

  使用創(chuàng)作工具編寫(xiě)的游戲:“神秘島”和其他一些同類(lèi)型的探險(xiǎn)游戲。所有的Shockwave游戲都在網(wǎng)絡(luò)上。

  資料:Director、HyperCard、SuperCard、IconAuthor、Authorware。

  9、結(jié)論(Conclusion)

  你可能希望得到一個(gè)關(guān)于“我該使用哪種語(yǔ)言”這個(gè)問(wèn)題的更標(biāo)準(zhǔn)的結(jié)論。非常不幸,沒(méi)有一個(gè)對(duì)所有應(yīng)用程序都最佳的解決方案。C適于快而小的程序,但不支持面向?qū)ο蟮木幊?。C++完全支持面向?qū)ο?,但是非常?fù)雜。Visual Basic與Delphi易學(xué),但不可移植且有專(zhuān)利權(quán)。Java有很多簡(jiǎn)潔的功能,但是慢。創(chuàng)作工具可以以最快的速度產(chǎn)生你的程序,但是僅對(duì)某一些類(lèi)型的程序起作用。最好的方法是決定你要寫(xiě)什么樣的游戲,并選擇對(duì)你的游戲支持最好的語(yǔ)言。“試用三十天”的做法成為工業(yè)標(biāo)準(zhǔn)是件好事情。

【編輯推薦】

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

2011-04-08 10:49:35

編程語(yǔ)言編程游戲開(kāi)發(fā)

2021-04-11 09:59:03

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

2009-12-04 11:02:00

PHP語(yǔ)言?xún)?yōu)缺點(diǎn)

2009-12-14 18:54:30

Ruby語(yǔ)言?xún)?yōu)缺點(diǎn)

2019-11-15 13:26:17

編程語(yǔ)言微軟C語(yǔ)言

2010-06-21 14:46:30

EIGRP路由協(xié)議

2010-06-21 14:14:33

OSPF協(xié)議

2017-03-06 14:45:27

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

2022-09-22 12:04:22

.NET開(kāi)發(fā)框架

2009-04-13 16:37:33

JSPWeb標(biāo)簽

2009-12-25 10:25:06

LMDS接入技術(shù)

2015-07-03 09:41:05

腳本編程編程語(yǔ)言比較

2009-11-30 09:19:54

Google Wave

2019-10-11 15:46:29

編程語(yǔ)言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)用

2019-05-17 14:50:11

AI語(yǔ)言程序員

2023-02-09 07:38:05

Python編程語(yǔ)言

2012-07-01 02:10:49

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

2009-08-10 15:09:15

JSP架構(gòu)JSP開(kāi)發(fā)工具
點(diǎn)贊
收藏

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