漫谈C#编程语言在游戏领域的应用

  • Post author:
  • Post category:其他




前言:



随着微软越来越开放,C#也变得越来越吸引人们的眼球。而在游戏行业中,C#也开始慢慢地获得了关注。这不, 网易绝代双娇手游团队已经全面使用.Net Core支持前后端统一C#开发,跨平台部署了。





所以,我们就来总结一下C#在游戏行业中一些具体的应用吧。



1、游戏引擎:



说道游戏领域的应用,自然应该先来说说游戏引擎:


Unity (Unity – Game Engine)




不必多说了吧,随着“移动为王”潮流的到来,Unity3D也变得越来越流行。使用C/C++开发,提供C#作为脚本。



移动游戏开发必备神器,而且随着VR热潮的到来,使用U3D开发VR内容也十分便利。总之,你值得拥有。


Axiom (Axiom)




Axiom是一款开源且跨平台的3D渲染引擎,提供了对Windows, Linux, Android, iPhone以及Windows Phone等各个平台的支持。



了解游戏开发的小伙伴们一定听说过OGRE渲染引擎吧?



Axiom使用C#移植了OGRE。


Torque X(Torque X | Products)




由GarageGames开发的一款基于XNA的2D/3D游戏引擎(但是不支持XNA Game Studio 4.0)。



使用C#开发,目标平台主要是PC以及XBox。



但是很多功能都没有开发完毕,目前已经被废弃。


truevision3d



(3D Engine and Game Development SDK by Truevision3D)





底层使用C/C++开发,不过提供对VB6, VB.Net, C#, Delphi,APL和BlitzMax的支持。



相信各位能够迅速上手。


Xenko(Home | Xenko)




来自日本的开发商SiliconStudio,开发商十分靠谱。且和Unity3D相比,Xenko支持最新的版本的C#6和.Net4.6。且由于借助了Xamarin,因此在跨平台策略上不比Unity3D差。



而且,它还是免费开源的,不过由于使用了GPL3协议,因此如果是自己去修改




游戏账号转让平台




引擎代码就必须公开。



个人觉得很有意思且值得研究的一个游戏引擎。



2、图像相关:


XNA :




不必多说了吧。微软自家的东西。XNA中的X表示能够在WindowsXbox和合作伙伴之间达到跨平台的强大的软件工具。N表示“下一代(Next- generation)”,A表示“架构(Architecture)”。基于DirectX的游戏开发环境。使用c#对directx进行了封装。可以 在xbox360和pc间实现跨平台。


OpenTK



(The Open Toolkit Library):



封装了OpenGL, OpenCL以及OpenAL的C#库。





SDL(Simple DirectMedia Layer)可以管理视频,音频,输入设备,CD-ROM,线程,共享对象装载,联网和定时器。对于3D图形,它可以处理OpenGL或Direct3D。开发库内部使用C语言编写,




SDL库的C#版本。


SlimDX



(SlimDX Homepage):





SlimDX是一个免费开源的框架,基于DirectX,开发者可以使用 C#, VB.NET, 或者IronPython进行开发。



3、物理相关:


Box2Dx(Box2Dx)







我相信Box2D各位应该十分了解,Box2D本身是一个用于模拟2D刚体物体的C++引擎。而且它集成了大量的物理力学和运动学的计算,并将物理 模拟过程封装到类对象中,将对物体的操作,以简单友好的接口提供给开发者。我们只需要调用引擎中相应的对象或函数,就可以模拟现实生活中的加速、减速、抛 物线运动、万有引力、碰撞反弹等等各种真实的物理运动。



而Box2Dx是Box2D的C#版本。


Box2D.XNA



(Box2D.XNA – Home):





和上面的类似,当然对Xbox 360做了特别的优化。


Farseer



(Farseer Physics Engine):





同样是一个2d物理引擎,支持C#。当然它也基于Box2D,因此和Box2D有很多相同的功能。


Jitter



(Jitter):



最后介绍一个3D的物理引擎。支持使用C#。



结语:



可以看到,C#在微软支持开源之前就已经在游戏领域有了很多应用。希望现在在微软开源的支持之下,C#能够在游戏领域获得更多的关注。