c#语言在开发互动游戏教学系统中的应用
2019-09-10韩宇珈
摘 要:在互联网产业高速发展的当下,游戏行业也呈现出稳定发展的趋势。而持续擴大的市场规模和玩家愈发挑剔的眼光也在倒逼着游戏开发者不断提高自身的制作水准。而继承了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按钮的返回值,从而来控制人物的位移。当然,实际的操作会比语言描述的更加复杂。而要想具体的实现这些功能,就需要用编程语言来进行开发。
编程语言又被称为“计算机语言”,种类繁多。总的来说,主要有机器语言、汇编语言、高级语言三大类。电脑所执行的每一个动作,每一个步骤,都是严格的按照计算机语言所编写好的程序来执行[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月),黑龙江省哈尔滨市呼兰区,女,本科学士 软件工程.