现在的位置: 首页 > 综合 > 正文

用C#两周时间写了一个地图编辑器,兼论C#游戏开发杂谈

2013年10月30日 ⁄ 综合 ⁄ 共 1840字 ⁄ 字号 评论关闭
这篇文章发布出去之后我没想到会有这么多的网友想要了解它,应广大网友要求,我现在在重新编辑一下,整理一下脉络:

我不会长篇大论,但我会针对性的围绕几个主题进行言论:

1)C# 或 Dotnet语言系列能做游戏吗?
2)也是针对本文中的特点,C#做出来的游戏性能高吗?游戏地图编辑器用C#写怎么来实现
3)地图编辑器的未来涉想

首先讨论一:
 C#或Dotnet语言是可以做游戏开发的,微软推出来了XNA平台,现在已经是3.0版,以及托管的Directx API,那么不能做游戏
为什么微软还要推广它呢,难道它不正是为了解决托管框架进行游戏开发的方案吗? VB6还可以写游戏,更何况是强大的DotNet平台呢? 据我所知,仙剑98柔情版是VB开发的, 而大家所知的热血传奇也是Delphi开发的,讲到这儿不得不讲热血传奇早期也是由C++开发的,经过了二个团队的过渡从而导致了源码的泄露,也就是说私服是在传奇进入中国之前就有的. 作为一名C#从业程序员,为什么你对自己的平台这么没有信心,如果没有信心也就没有这篇文章!最重要的是算法与架构模式,语言不重要.   程序=算法+数据结构

其次讨论二:
 有些人(指那些莽夫)可能会说,C#是托管的,开发出来的程序性能太差了,怎么能拿来做游戏,而且是非C/C++专属!  面对这样的言论,我想说:去你妈的,就你这样的思想还能配做一名真正从意义上的程序员,的确在dotnet 框架下面会带来部分的性能损失,这是由于它的特性所决定的,因为框架帮我们封装了很多类库,我们对底层API是透明的,从而简化我们的开发时间,以及帮助我们提升开发效率,打个比方说,类库帮我们实现了好多的数据结构,字典,泛型等等; 但是这样同时也会存在一个弊端,使我们刚刚进入程序行列的战友失去程序的本质论,所以我建议新手(包括我自己)一定要知道这些原理,然后才能适合类库所带来的方便. 再次强调:不要TMD的拿C#和JAVA对比,说C#是虚拟机技术!   C#和JAVA是不一样的,JAVA是基于虚拟机的技术,而C#是基于比JAVA更加优秀的托管中间编译技术,怎么说好呢,一时也讲不透,总之你要知道,C#生成的代码虽然不是二进制,你不能说它就是性能上的失败.  大错特错,  C/C++生成二进制代码时是兼容的考虑到不同PC平台的性能问题,它是在发布的时候就已经确定的,而C#生成的中间代码是在第一次执行时才会编译,也就是说它在目标机器上会根据目标机器的特性来进行最大性能的提升,也就是为什么托管代码在第一次执行会慢的原因! 但是最后我想要说:如果我是做主游戏服务,还是要用C/C++ 因为它是比C#更加适合的语言, 如果你是做WEB或是一些辅助工具,那么你可以使用VB,DELPHI,C#等, 也可以用MFC, 但是我说过,这些辅助工具是辅助性的,速度越快越好,结合性越强越好,那么C#是这其中的王者,强大的网络平台支撑,强大的同一类库支持,做游戏不是要写网站吗,用户资料维护系统,充值系统,排行系统,活动系统,以及游戏其它编辑器吗,我认为非C#莫属!   这中间要考虑C#与C/C++的数据文件共享问题.
用C#写地图编辑器其实也是很简单的,应用GDI+即可,微软已经帮我们做好了很多操作,就像我们自己封装DX一样

再次讨论三:
由于本人第一次编写这类工具,所以各方面都有不足,望大家指正!
地图编辑器可以说是游戏前期比较重要的组成问题,然后是要结合物品编辑器,NPC编辑器及剧本编辑器等,生成一系列的数据文件,通常地图编辑器生成.map文件,二进制的,你也可以自己定义,然后结合到C/C++中使用~~

以上言论若见笑,就当鄙人一顿骂街~

图片出来被载断了,请查看图片源路径然后贴进去看这样可以看到最全的图

默认界面:
新建对话框:
默认建好后的地图,贴片与场景等可动态管理产生斜45度地图:

网格的计算与绘画:
放两个场景与删除对话框:
一个场景的应用,有正常的遮挡,绿格子代表禁行标志:
不规则的物体也能有很好的遮挡效果:

支持多个地图同时编辑,主要是考虑性能,本身GDI写这类东西渲染的时候很不合适,更重要的是它只是辅助C++ DX来开发,生成的数据都是静态的
:

在写这个编辑器学到了很多知识,由于种种原因,源代码不能公布,如果学习要请联系我索取:QQ:99748954
email:wenzhoufeng@hotmail.com

进下来就要完成不同种语言的数据共享,想过用XML,也挺好的,但是还是用二进制文件好了,继续实现C#的数据文件与C++下的共享认识

抱歉!评论已关闭.