- Unity 3D腳本編程:使用C#語(yǔ)言開發(fā)跨平臺(tái)游戲
- 陳嘉棟
- 1746字
- 2023-02-28 19:22:03
1.1 Unity 3D游戲引擎進(jìn)化史
正如Unity Technologies的CEO——David Helgason先生所說(shuō):“Unity是一個(gè)用來(lái)構(gòu)建游戲的工具箱,它整合了圖像、音頻、物理引擎、人機(jī)交互以及網(wǎng)絡(luò)等技術(shù)。”的確如此,Unity 3D因?yàn)樗目焖匍_發(fā),以及跨平臺(tái)能力而為人所知。那么它究竟是如何“橫空出世”的呢?
時(shí)間回溯到2002年5月21日下午1點(diǎn)47分。一個(gè)叫作Nicholas Francis的丹麥程序員在網(wǎng)上發(fā)出了一個(gè)尋找合作伙伴的帖子,帖子的內(nèi)容就是協(xié)助他,并為他的游戲引擎共同開發(fā)一套Shader系統(tǒng)(Shader即著色器,是一個(gè)能夠針對(duì)3D對(duì)象進(jìn)行操作,并被GPU所執(zhí)行的程序。通過(guò)這些程序,程序員就能夠獲得絕大部分想要的3D圖形效果)。不久之后,有一位叫作Joachim Ante的程序員響應(yīng)了這個(gè)帖子,并決定和Nicholas Francis共同開發(fā)這套Shader系統(tǒng)。而作為最初的第三位開發(fā)者,也是后來(lái)成為CEO的David Helgason先生,在聽說(shuō)了這個(gè)項(xiàng)目之后,也決定加入這個(gè)項(xiàng)目。
兩年之后,他們成立了一個(gè)叫作Over the Edge Entertainment(OTEE)的公司,David Helgason成為CEO。他們當(dāng)時(shí)決定開發(fā)一種獨(dú)立開發(fā)者也有能力使用的游戲引擎。
而日后Unity 3D游戲引擎之所以獲得成功的一大原因,就是得益于對(duì)無(wú)力承擔(dān)游戲引擎高額許可費(fèi)用的獨(dú)立開發(fā)者的支持。
又經(jīng)過(guò)兩年沒日沒夜的工作,Unity 3D游戲引擎最初的版本已經(jīng)初具雛形,如圖1-1所示為早期Unity 3D版本的截圖。但是考慮到游戲開發(fā)者在沒有看到基于Unity 3D游戲引擎開發(fā)的成功案例之前,很難說(shuō)服他們使用Unity 3D。因此,Unity 3D團(tuán)隊(duì)認(rèn)識(shí)到,必須要使用他們的新引擎開發(fā)一套完整的商業(yè)游戲。這不僅可以用來(lái)檢測(cè)和證明他們引擎的能力,同時(shí)開發(fā)出的這款商業(yè)游戲,也可以補(bǔ)貼后續(xù)開發(fā)的費(fèi)用。
就這樣,Unity 3D開發(fā)團(tuán)隊(duì)使用他們的新引擎,花費(fèi)了5個(gè)月的時(shí)間開發(fā)了一款商業(yè)游戲——《GooBall》,如圖1-2所示。

圖1-1 早期Unity 3D版本(version 0.2b)的截圖

圖1-1 早期Unity 3D版本(version 0.2b)的截圖(續(xù))

圖1-2 GooBall截圖
《GooBall》由Ambrosia Software公司于2005年3月發(fā)行。而Unity 3D團(tuán)隊(duì)也借開發(fā)這款商業(yè)游戲的機(jī)會(huì),在Unity 3D正式版本發(fā)布前修改了一些Bug,調(diào)整了若干接口,等等。
這樣,Unity 3D的第一個(gè)版本(1.0.0)由3個(gè)關(guān)鍵人物:David Helgason、Joachim Ante及Nicholas Francis在丹麥開發(fā)出來(lái),并且在2005年6月6日發(fā)布。
而使用Unity 3D的第一個(gè)版本開發(fā)出來(lái)的項(xiàng)目,也僅僅支持在Mac OSX平臺(tái)上運(yùn)行。直到1.1版本,Unity 3D才支持導(dǎo)出能夠運(yùn)行在微軟的Windows操作系統(tǒng)及瀏覽器平臺(tái)上的項(xiàng)目(此時(shí)Unity 3D游戲引擎本身還不能在Windows操作系統(tǒng)上運(yùn)行)。而此時(shí)的Unity 3D游戲引擎僅僅是游戲工業(yè)中的一個(gè)新生兒,它的用戶也僅僅是以游戲開發(fā)愛好者和獨(dú)立開發(fā)者為主。與此同時(shí),一些游戲引擎開發(fā)公司由于銷量不好,最終放棄了它們的游戲引擎。很多Unity 3D的潛在用戶此時(shí)也擔(dān)心Unity 3D會(huì)重蹈那些公司的覆轍。而OTEE公司用了兩年多的時(shí)間,才證明了自己有能力對(duì)Unity 3D游戲引擎提供足夠的支持和更新。
在Unity 3D的第一個(gè)版本發(fā)布的同時(shí),Unity 3D 2.0版本也幾乎馬不停蹄地開始了開發(fā)。在經(jīng)過(guò)兩年左右的開發(fā)之后,Unity 3D 2.0版本帶著“Unity 3D向前邁的最大一步”的名號(hào),在2007年的Unity開發(fā)者大會(huì)上發(fā)布了。
這個(gè)版本的重點(diǎn)在于增強(qiáng)了Unity 3D開發(fā)出的項(xiàng)目對(duì)微軟Windows操作系統(tǒng)的支持,以及提高Web Player跨平臺(tái)的能力。為了實(shí)現(xiàn)這些,Unity 3D的開發(fā)團(tuán)隊(duì)為Unity 3D游戲引擎添加了對(duì)微軟Direct X的支持,而Direct X也為那些使用Unity 3D游戲引擎開發(fā)出的作品在Windows操作系統(tǒng)上帶來(lái)了大約 30%的性能提升。這個(gè)版本的Unity 3D游戲引擎的新功能還包括:Web數(shù)據(jù)流的處理、實(shí)時(shí)陰影、網(wǎng)絡(luò)通信、地形引擎、Unity素材商店以及一套新的GUI系統(tǒng)。
在這期間,隨著智能手機(jī)的流行,特別是蘋果手機(jī)和App Store在全球的風(fēng)靡,Unity團(tuán)隊(duì)甚至還專為iPhone開發(fā)過(guò)一款專門的引擎——Unity iPhone。
在2008年到2009年這一段時(shí)間里,Unity開發(fā)團(tuán)隊(duì)又認(rèn)識(shí)到了讓Unity 3D游戲引擎本身的編輯器同樣能夠在Windows操作系統(tǒng)上運(yùn)行的必要性。而為了實(shí)現(xiàn)這一點(diǎn),他們不得不重寫了當(dāng)時(shí)的Unity 3D編輯器的代碼,使其變成與具體平臺(tái)無(wú)關(guān)的部分。而Unity團(tuán)隊(duì)也在2009年的游戲開發(fā)者大會(huì)上發(fā)布了能夠運(yùn)行在Windows操作系統(tǒng)上的Unity 3D游戲引擎,也就是Unity 3D 2.5版本。
Unity 3D 3.0版本于2010年9月27日發(fā)布。這次升級(jí)帶來(lái)了很多誘人的新功能,包括各大平臺(tái)統(tǒng)一的編輯器、Beast烘焙系統(tǒng)(lightmapping)、延遲渲染(deferred rendering)、Umbra遮擋剔除(occlusion culling)、FMOD音頻引擎等。而隨著Unity 3D 3.0版本的發(fā)布,Unity已經(jīng)擁有了超過(guò)20萬(wàn)人次的注冊(cè)開發(fā)者,成為了手機(jī)平臺(tái)應(yīng)用最廣泛的游戲引擎之一。
2012年2月14日,Unity團(tuán)隊(duì)又發(fā)布了Unity 3D 3.5版本。該版本最大的亮點(diǎn)是提供了對(duì)Flash部署的支持。
2012年 11月 13日,Unity 3D 4.0版本對(duì)開發(fā)者開放了下載。在該版本中,又引入了Mecanim動(dòng)畫系統(tǒng)、Shuriken粒子系統(tǒng)等新功能。
- Designing Machine Learning Systems with Python
- Mastering Entity Framework Core 2.0
- 解構(gòu)產(chǎn)品經(jīng)理:互聯(lián)網(wǎng)產(chǎn)品策劃入門寶典
- Java程序員面試算法寶典
- 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言)
- Learning FuelPHP for Effective PHP Development
- AIRIOT物聯(lián)網(wǎng)平臺(tái)開發(fā)框架應(yīng)用與實(shí)戰(zhàn)
- C++程序設(shè)計(jì)教程
- Learning Jakarta Struts 1.2: a concise and practical tutorial
- C語(yǔ)言程序設(shè)計(jì)實(shí)踐
- Mastering Drupal 8
- Qt編程快速入門
- Java Web開發(fā)任務(wù)教程
- Web 2.0策略指南
- TensorFlow+Keras深度學(xué)習(xí)算法原理與編程實(shí)戰(zhàn)