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