摘 要:在互聯(lián)網(wǎng)產(chǎn)業(yè)高速發(fā)展的當(dāng)下,游戲行業(yè)也呈現(xiàn)出穩(wěn)定發(fā)展的趨勢。而持續(xù)擴(kuò)大的市場規(guī)模和玩家愈發(fā)挑剔的眼光也在倒逼著游戲開發(fā)者不斷提高自身的制作水準(zhǔn)。而繼承了C語言和C++語言的基礎(chǔ)功能,并做出了相應(yīng)優(yōu)化的C#語言,無疑更加滿足了程序開發(fā)者們對編程語言安全、穩(wěn)定、簡單的需求。游戲工作者可以以C#語言為基礎(chǔ),利用Unity3D游戲引擎來對游戲進(jìn)行開發(fā)。
關(guān)鍵詞:游戲;C#;編程語言
隨著網(wǎng)絡(luò)強(qiáng)國建設(shè)的不斷推進(jìn),互聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展呈現(xiàn)出日新月異之勢。而如今,信息化高度建設(shè)的成果也已經(jīng)惠及千家萬戶,影響到了我們生活中的方方面面。隨著網(wǎng)絡(luò)的不斷提速,4G的全面普及和5G已經(jīng)呈現(xiàn)出的崛起之勢,互聯(lián)網(wǎng)行業(yè)的發(fā)展無疑已經(jīng)走上了一條“快車道”。
改革開放四十年來,隨著社會生產(chǎn)力的不斷提升,人民群眾對美好生活的精神文化需求也日益增長。近年來,隨著互聯(lián)網(wǎng)和移動智能終端的不斷普及應(yīng)用,網(wǎng)絡(luò)游戲已經(jīng)成為群眾“觸網(wǎng)”的重要方式,豐富了人民的業(yè)余文化生活,成為我國數(shù)字內(nèi)容產(chǎn)業(yè)的有機(jī)組成部分。
近幾年,隨著業(yè)界各方的共同努力,我國的網(wǎng)絡(luò)游戲產(chǎn)業(yè)持續(xù)呈現(xiàn)出穩(wěn)定發(fā)展的態(tài)勢。據(jù)中國音數(shù)協(xié)游戲工委聯(lián)合專業(yè)機(jī)構(gòu)開展的年度產(chǎn)業(yè)調(diào)查數(shù)據(jù)顯示,2018年國內(nèi)游戲市場銷售收入達(dá)2144.4億元,同比增長5.3%。其中,國產(chǎn)網(wǎng)絡(luò)游戲銷售收入達(dá)1643.9億元,同比增長17.6%。國內(nèi)游戲企業(yè)對原創(chuàng)作品投入不斷加大,其中也孕育出一批文化色彩濃重、內(nèi)容健康向上的原創(chuàng)精品。與此同時,國產(chǎn)游戲“走出去”繼續(xù)保持穩(wěn)定增長,2018年海外市場銷售收入達(dá)95.9億美元,同比增長15.8%。越來越多的游戲產(chǎn)品和游戲企業(yè)走出國門,發(fā)展空間得到進(jìn)一步拓展。[1]
一、C#具體應(yīng)用與優(yōu)勢
從《劍靈》到《守望先鋒》,從《英雄聯(lián)盟》到《絕地求生》,每一款游戲界的“IP大作”都有著其獨特的吸引力:或是細(xì)致精湛,足以讓人以假亂真的游戲場景與人物模型;或是華麗絢爛的游戲技能與打斗動畫。那么在酣暢淋漓的進(jìn)行對戰(zhàn)之余,我們是否思考過這些場景人物、技能打斗又是怎樣制作與實現(xiàn)的呢?舉個簡單的例子,在我們FPS(第一人稱射擊)游戲中人物位移功能的實現(xiàn),對于玩家來說只是簡單的動動手指滑動屏幕,或者說直接敲擊鍵盤上的方向位移按鍵即可。但要想實現(xiàn)這些,對于我們的程序開發(fā)者來說就沒那么簡單了。首先,我們要找到配有相應(yīng)動畫的人物模型,然后通過腳本來將兩者進(jìn)行關(guān)聯(lián),最后使用編程語言獲取到人物的動畫、獲取到鍵盤按鍵或者屏幕UI按鈕的返回值,從而來控制人物的位移。當(dāng)然,實際的操作會比語言描述的更加復(fù)雜。而要想具體的實現(xiàn)這些功能,就需要用編程語言來進(jìn)行開發(fā)。
編程語言又被稱為“計算機(jī)語言”,種類繁多。總的來說,主要有機(jī)器語言、匯編語言、高級語言三大類。電腦所執(zhí)行的每一個動作,每一個步驟,都是嚴(yán)格的按照計算機(jī)語言所編寫好的程序來執(zhí)行[2]。我們可以將程序看作是計算機(jī)要執(zhí)行的指令的集合,而程序則要使用我們所掌握的語言來編寫。所以我們?nèi)绻胍刂朴嬎銠C(jī)完成一件事情,就要先通過計算機(jī)語言向計算機(jī)發(fā)出命令。目前廣為使用的編程語言主要分為兩種形式:一是匯編語言,二是高級語言。而c#語言便是一種我們在開發(fā)游戲時經(jīng)常會用到的語言。與傳統(tǒng)的C和C++語言相比,由兩者衍生出來的C#語言是一種更加安全、穩(wěn)定、簡單、優(yōu)雅的面向?qū)ο蟮木幊陶Z言。除了繼承了C和C++語言強(qiáng)大的基礎(chǔ)功能以外,C#語言還針對他們以往的復(fù)雜特性做出了相對應(yīng)的優(yōu)化(例如沒有宏以及不允許多重繼承等)。除此之外,C#語言還綜合了VB語言簡單的可視化操作和C++語言的高運行效率,并以其強(qiáng)大的可操作能力、優(yōu)雅簡潔的語法風(fēng)格、創(chuàng)新性的語言特點和高效便捷的支持面向組件編程[3]。
二、C#語言在游戲開發(fā)中的具體應(yīng)用
對于使用C#程序語言進(jìn)行開發(fā)的開發(fā)者來說,游戲開發(fā)引擎Unity3D一定并不陌生。Unity3D是由Unity Technologies開發(fā)的一個讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具,是一個全面整合的專業(yè)游戲引擎。Unity類似于Director,Blender game engine,Virtools 或 Torque Game Builder等利用交互的圖型化開發(fā)環(huán)境為首要方式的軟件。目前只支持c#語言進(jìn)行程序編譯[4]。
游戲是基于C#語言利用Unity3D游戲引擎進(jìn)行制作的。通過Unity3D中可視化的操作組建進(jìn)行操作,將這些零碎的組件通過C#語言進(jìn)行連接,使用C#腳本綁定在要操作的組件之上,通過腳本中特定的函數(shù)來獲取組件上的參數(shù)進(jìn)行調(diào)用,從而實現(xiàn)功能。每一個組件也都是由一個個腳本定義而成的。在Unity3D中創(chuàng)建出的C#腳本默認(rèn)繼承于MonoBeheaviour類。在這個類之下系統(tǒng)自動創(chuàng)建出兩個函數(shù)Start()函數(shù),以及Update()函數(shù)。在這里Start()函數(shù)用于需要初始化的語句,例如:初始化參數(shù)的值等等,而Update()函數(shù)則用于需要循環(huán)的語句。Unity3D是開發(fā)三維游戲的軟件,是能夠建筑可視化、實時三維動畫類的軟件。Update()的循環(huán)是每一幀都會調(diào)用的。所以在C#中很少使用遞歸調(diào)用。例如:想要在游戲場景中自動生成敵人,只要在Update中實例化語句即可。
三、結(jié)語
相對于傳統(tǒng)的編程語言來說,C#語言具有更加安全、穩(wěn)定、簡單的優(yōu)點。游戲工作者可以以C#語言為基礎(chǔ),利Unity3d游戲引擎來對游戲進(jìn)行開發(fā)。而C#強(qiáng)大的類庫也可以輔助程序開發(fā)者更好的完成對游戲功能的實現(xiàn)。所以我們可以說C#語言是目前大多數(shù)的游戲產(chǎn)業(yè)公司對游戲進(jìn)行開發(fā)時首選的編程語言。在如今場景畫面愈發(fā)精湛,游戲引擎不斷強(qiáng)大,玩家們越來越青睞于大制作的背景下,相較于只適合編寫小游戲程序的C++語言和Java語言來說,更適合大型游戲開發(fā)的C#語言無疑擁有更好的發(fā)展趨勢。同時,C#語言的類庫也在不斷擴(kuò)增,這也讓越來越多的程序開發(fā)者可以選擇C#語言來對游戲進(jìn)行開發(fā)。而我們也有理由相信,C#語言也將助推游戲產(chǎn)業(yè)的更好發(fā)展。
參考文獻(xiàn)
[1]徐晨曦.網(wǎng)易·丁磊 “新消費”關(guān)注新的消費觀與消費行為[D].《中國戰(zhàn)略新興產(chǎn)業(yè)》編輯部,2018.
作者介簡:
韓宇珈:(1996年11月),黑龍江省哈爾濱市呼蘭區(qū),女,本科學(xué)士 軟件工程.