漫谈C#编程语言在游戏领域的应用
0x00 前言
随着微软越来越开放,C#也变得越来越吸引人们的眼球。而在游戏行业中,C#也开始慢慢地获得了关注。这不, 网易绝代双娇手游团队已经全面使用.Net Core支持前后端统一C#开发,跨平台部署了。
所以,我们就来总结一下C#在游戏行业中一些具体的应用吧。
0x01 游戏引擎
说道游戏领域的应用,自然应该先来说说游戏引擎:
Unity

不必多说了吧,随着“移动为王”潮流的到来,Unity3D也变得越来越流行。使用C/C++开发,提供C#作为脚本。
移动游戏开发必备神器,而且随着VR热潮的到来,使用U3D开发VR内容也十分便利。总之,你值得拥有。
Axiom
(Axiom)

Axiom是一款开源且跨平台的3D渲染引擎,提供了对Windows, Linux, Android, iPhone以及Windows Phone等各个平台的支持。
了解游戏开发的小伙伴们一定听说过OGRE渲染引擎吧?
Axiom使用C#移植了OGRE。
Torque X

由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

来自日本的开发商SiliconStudio,开发商十分靠谱。且和Unity3D相比,Xenko支持最新的版本的C#6和.Net4.6。且由于借助了Xamarin,因此在跨平台策略上不比Unity3D差。
而且,它还是免费开源的,不过由于使用了GPL3协议,因此如果是自己去修改引擎代码就必须公开。
个人觉得很有意思且值得研究的一个游戏引擎。
MonoGame
(MonoGame)

MonoGame是开源项目Mono的一个分支,是Microsoft XNA 4.X Framework开源实现。该框架的目标是使XNA可以更容易地开发跨平台游戏,并且可以进行代码的高效复用。
作为Mono的一个分支,MonoGame的跨平台能力自然无需担心,它目前支持iOS, Android, MacOS, Linux, Windows,OUYA, PS4, PSVita以及Xbox One等平台。
0x02 图像相关
XNA

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

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

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

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

同样是一个2d物理引擎,支持C#。当然它也基于Box2D,因此和Box2D有很多相同的功能。
Jitter
(Jitter)
最后介绍一个3D的物理引擎。支持使用C#。
0x04 结语
可以看到,C#在微软支持开源之前就已经在游戏领域有了很多应用。希望现在在微软开源的支持之下,C#能够在游戏领域获得更多的关注。
漫谈C#编程语言在游戏领域的应用的更多相关文章
- 编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三
编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三 编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三
- Atitit 编程语言编程方法的进化演进 sp COP ,AOP ,SOP
Atitit 编程语言编程方法的进化演进 sp COP ,AOP ,SOP 1.1. Sp oop>>COP ,AOP ,SOP1 1.2. Sp oop 结构化方法SP(Stru ...
- 转载:[转]如何学好3D游戏引擎编程
[转]如何学好3D游戏引擎编程 Albert 本帖被 gamengines 从 游戏引擎(Game Engine) 此文为转载,但是值得一看. 此篇文章献给那些为了游戏编程不怕困难的热血青年,它的 ...
- 游戏引擎网络开发者的 64 做与不做 | Part 1 | 客户端方面
摘要:纵观过去 10 年的游戏领域,单机向网络发展已成为一个非常大的趋势.然而,为游戏添加网络支持的过程中往往存在着大量挑战,这里将为大家揭示游戏引擎网络开发者的 64 个做与不做. [编者按]时下, ...
- 关于如何学好游戏3D引擎编程的一些经验[转]
此篇文章献给那些为了游戏编程不怕困难的热血青年,它的神秘要我永远不间断的去挑战自我,超越自我,这样才能攀登到游戏技术的最高峰 ——阿哲VS自己 QQ79134054多希望大家一起交流与沟通 这篇文章是 ...
- 游戏编程模式 Game Programming Patterns (Robert Nystrom 著)
第1篇 概述 第1章 架构,性能和游戏 (已看) 第2篇 再探设计模式 第2章 命令模式 (已看) 第3章 享元模式 (已看) 第4章 观察者模式 (已看) 第5章 原型模式 (已看) 第6章 单例模 ...
- 如何学好游戏3D引擎编程
注:本文是网上看到的一篇文章,感觉写的很好,因此收藏了下来 <如何学好游戏3D引擎编程>此篇文章献给那些为了游戏编程不怕困难的热血青年,它的神秘要我永远不间断的去挑战自我,超越自我,这样才 ...
- [整理]Unity3D游戏开发之Lua
原文1:[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.csdn.net/qinyuanpei.如果 ...
- (转)关于如何学好游戏3D引擎编程的一些经验
此篇文章献给那些为了游戏编程不怕困难的热血青年,它的神秘要我永远不间断的去挑战自我,超越自我,这样才能攀登到游戏技术的最高峰 ——阿哲VS自己 QQ79134054多希望大家一起交流与沟通 这篇文章是 ...
随机推荐
- 细说前端自动化打包工具--webpack
背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...
- 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...
- 一步步开发自己的博客 .NET版(10、前端对话框和消息框的实现)
关于前端对话框.消息框的优秀插件多不胜数.造轮子是为了更好的使用轮子,并不是说自己造的轮子肯定好.所以,这个博客系统基本上都是自己实现的,包括日志记录.响应式布局.评论功能等等一些本可以使用插件的.好 ...
- Python高手之路【二】python基本数据类型
一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...
- ASP.NET Core的路由[4]:来认识一下实现路由的RouterMiddleware中间件
虽然ASP.NET Core应用的路由是通过RouterMiddleware这个中间件来完成的,但是具体的路由解析功能都落在指定的Router对象上,不过我们依然有必要以代码实现的角度来介绍一下这个中 ...
- 读python源码--对象模型
学python的人都知道,python中一切皆是对象,如class生成的对象是对象,class本身也是对象,int是对象,str是对象,dict是对象....所以,我很好奇,python是怎样实现这些 ...
- css居中div的几种常用方法
在开发过程中,很多需求需要我们居中一个div,比如html文档流当中的一块div,比如弹出层内容部分这种脱离了文档流等.不同的情况有不同的居中方式,接下来就分享下一下几种常用的居中方式. 1.text ...
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...
- [转载]强制不使用“兼容性视图”的HTML代码
在IE8浏览器以后版本,都有一个"兼容性视图",让不少新技术无法使用.那么如何禁止浏览器自动选择"兼容性视图",强制IE以最高级别的可用模式显示内容呢?下面就介 ...
- 【Java每日一题】20170104
20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...