漫谈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多希望大家一起交流与沟通 这篇文章是 ...
随机推荐
- 【翻译】MongoDB指南/聚合——聚合管道
[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...
- 用scikit-learn学习DBSCAN聚类
在DBSCAN密度聚类算法中,我们对DBSCAN聚类算法的原理做了总结,本文就对如何用scikit-learn来学习DBSCAN聚类做一个总结,重点讲述参数的意义和需要调参的参数. 1. scikit ...
- MySQL碎碎念
1. 如何修改Mysql的用户密码 mysql> update mysql.user set password=password('hello') where user='root'; mysq ...
- spring注解源码分析--how does autowired works?
1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行d ...
- Java消息队列--ActiveMq 实战
1.下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Un ...
- css3线条围绕跑马+jquery打字机效果
原文地址:css3线条围绕跑马+jquery打字机效果 有图有真相,今天偶然看到了一种效果,仔细看了下,发现它是用css的clip+css3的动画实现的,简直叼.于是自己拿来了前一阵子写的打字机效果, ...
- 使用github远程仓库
经过几天对github的研究,终于把自己想完成的给解决了,发现google真的有很多解释,但是很多也会出现一些bug,对于初学者真的很多烦恼,所以整理一份,能给初识github的你有所帮助 一,首先, ...
- 免费公开课,讲解强大的文档集成组件Aspose,现在可报名
课程①:Aspose.Total公开课内容:讲解全能型文档管理工具Aspose.Total主要功能及应用领域时间:2016-11-24 14:30 (暂定)报名地址:http://training.e ...
- 跟着老男孩教育学Python开发【第三篇】:Python函数
set 无序,不重复,可嵌套. 函数 创建函数: 1.def关键字,创建函数 2.函数名 3.() 4.函数体 5.返回值 发邮件函数 def sendmail(): import smtpl ...
- MyBatis3.2从入门到精通第一章
第一章一.引言mybatis是一个持久层框架,是apache下的顶级项目.mybatis托管到goolecode下,再后来托管到github下.(百度百科有解释)二.概述mybatis让程序将主要精力 ...