开源战棋 SLG 游戏框架设计思考(一)简介和游戏引擎
战棋 SLG 游戏
SLG(Simulation Game)游戏是模拟游戏的简称。战棋类的SLG有两种:一种是 War Game 中的兵棋推演分支,常见的游戏有战争艺术3(TOAW3 — The Operational Art of War 3)、意大利之战(BII — Battle in Italy)、诺曼底之战(BIN — Battle in Normady)、前线(BF — Battlefront)、库尔松口袋(KP — Korsun Pocket)、太平洋战争(WITP — War in the Pacific)、高级战术(AT — Advanced Tactics)等;另一种是 TRPG(日本称SRPG)即带有角色扮演的策略游戏,日本的如火焰纹章,欧美有英雄无敌系列。
游戏形式是六角方格组成的棋盘,战斗单位按回合移动、战斗等。兵棋推演一般在特定回合后计算胜利点数判定胜方,而 TRGP 则基本以消灭敌人推进剧情。
战棋 SLG 游戏框架
一直以来都想做这样一个通用框架——任何人都可以通过导入自定义素材、编写规则和剧本来就可以生成一个战棋游戏。有点像RPG Maker,只不过我想要这个框架支持跨平台,规则和脚本采用更通用的 Python 或 Lua 等脚本语言;我希望它能够非常易用,即使不懂编程通过鼠标点选也可以制作游戏。
图形/游戏引擎
既然是游戏肯定要涉及图形,选择一款图形引擎或是灵活性高的游戏引擎无疑可以大大降低开发难度和工作量。
经过考察,形成了以下候选名单(描述来自wikipedia):
1. SDL
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
2. Allegro
Allegro是一个特别针对于电子游戏的开发的自由软件程序库。
该库提供基本二维图形、图像操作、音效输出、MIDI音乐、输入、计时器,以及额外的寻路矩阵计算、UNICODE、文件系统管理、有限而建基于软件的三维图形。
3. Cocos2d
Cocos2d 是一个开源的2D游戏框架. 最初的Cocos2D框架是使用Python编写的,基于pyglet开发。目前Cocos2D框架已经被移植到了多种语言和平台上。
4. Gameplay
GamePlay is an open-source, cross-platform 3D native C++ game framework.
5. libGDX
libGDX is a game-development application framework written in the Java programming language with some C and C++ components for performance dependent code. It allows for the development of desktop and mobile games by using the same code base. It is cross-platform, supporting Windows, Linux, Mac OS X, Android, iOS, and web browsers with WebGL support.
6. Ogre3D
OGRE(Object-Oriented Graphics Rendering Engine,面向对象图形渲染引擎) 又叫做OGRE 3D。OGRE是面向场景的、灵活的图像引擎。OGRE仍然在发展中,如果就功能和商业游戏引擎还有一定差距。在OGRE的论坛网站上你可以得到更多的信息,里面谈论到OGRE的一些格外的插件,如声音 ,UI ,物理检测,还有网络应用。
挨个评价一下这些引擎:
- SDL 是一个跨平台多媒体开发库,不是专门的游戏引擎,显然不利于简化开发工作。
- Allegro 是针对游戏的开发库,可惜的是没有网络库。
- Cocos2d/Cocos2d-x 应该算是国内最火的游戏引擎了。特别是中文资源很丰富。
- Gameplay 特性跟 Cocos2d-x 相似。资源不是很丰富。
- libGDX 是一个很成熟的跨平台游戏引擎。可以只编写一次即可发不到不同的平台,只是开发语言用的是 Java 有点不喜欢。
- Orgre3D是大名鼎鼎的重量级跨平台图形引擎。但缺少网络、IO等方面的库。
结语
终于把这些开源图形/游戏引擎挨个对比了一遍,最终结论:首选 Cocos2d-x 和 libGDX,而 Gameplay 作为备选,其他暂不考虑。
开源战棋 SLG 游戏框架设计思考(一)简介和游戏引擎的更多相关文章
- 开源战棋 SLG 游戏框架设计思考(二)规则系统要考虑的因素
游戏对象 1. 地块方格 地形:山脉.丘陵.乔木林.灌木林.平原.河流.湖泊.海洋.雪原.沼泽.沙漠.暗礁.滩涂.岛屿等等(需完善) 设施:铁路.公路.桥梁.机场.城市.村庄.岸防炮.要塞.废墟等等( ...
- 基于cocos2d-x的游戏框架设计——李成
视频:http://v.youku.com/v_show/id_XMzc5ODUyMTI4.html?f=17330006 网易科技讯 3月31日,第四届CocoaChina开发者大会暨Cocos2d ...
- 游戏框架设计中的。绑定binding。。。命令 command 和消息message 以及MVVM
游戏框架设计中的.绑定binding...命令 command 和消息message
- 01 Taro_Mall 开源多端小程序框架设计
项目介绍 Taro_Mall是一款多端开源在线商城应用程序,后台是基于litemall基础上进行开发,前端采用Taro框架编写,现已全部完成小程序和h5移动端,后续会对APP,淘宝,头条,百度小程序进 ...
- python3+selenium框架设计05-配置文件和浏览器引擎类
python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看Python3学习笔记27-ConfigParser模块 配置文件一般存放着环境信息,比如u ...
- 【读书笔记《Android游戏编程之从零开始》】16.游戏开发基础(动画)
1. Animation动画 在Android 中,系统提供了动画类 Animation ,其中又分为四种动画效果: ● AlphaAnimation:透明度渐变动画 ● ScaleAnimati ...
- 【读书笔记《Android游戏编程之从零开始》】15.游戏开发基础(剪切区域)
剪切区域也称为可视区域,是由画布进行设置的:它指的是在画布上设置一块区域,当画布一旦设置了可视区域,那么除此区域外,绘制的任何内容都将看不到:可视区域可以是圆形.矩形等等. 画布提供了三种设置可视区域 ...
- 【读书笔记《Android游戏编程之从零开始》】14.游戏开发基础(Bitmap 位图的渲染与操作)
Bitmap 是图形类,Android 系统支持的图片格式有 png.jpg.bmp 等. 对位图操作在游戏中是很重要的知识点,比如游戏中需要两张除了大小之外其他完全相同的图,那么如果会对位图进行缩放 ...
- 【读书笔记《Android游戏编程之从零开始》】13.游戏开发基础(Paint 画笔)
1.Paint画笔 Panit(画笔)是绘图额辅助类,其类中包含文字和位图额样式.颜色等属性信息.Paint 的常用方法如下: setAntiAlias(boolean aa) 作用:设置画笔是否无锯 ...
随机推荐
- saltstack(主机改名)
已存在salt中的机器,为了规范,需要将这批主机改名 操作流程:在master把这批机器剔除:然修改这批机器的主机名.在/etc/salt目录下.用mv把minion_id和pki的目录重命名.重启s ...
- Ubuntu远程vnc配置
1. 安装xrdp 使用快捷键"Ctrl+Alt+T"打开一个终端窗口,输入"sudo apt-get install xrdp"-->回车-->输 ...
- Func与Action
平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委托的方法的返回类型是string类型,委托名Say后 ...
- 一款全兼容的播放器 videojs
[官网]http://www.videojs.com/ videojs就提供了这样一套解决方案,他是一个兼容HTML5的视频播放工具,早期版本兼容所有浏览器,方法是:提供三个后缀名的视频,并在不支持h ...
- 2016ACM/ICPC亚洲区沈阳站-重现赛赛题
今天做的沈阳站重现赛,自己还是太水,只做出两道签到题,另外两道看懂题意了,但是也没能做出来. 1. Thickest Burger Time Limit: 2000/1000 MS (Java/Oth ...
- [Android Pro] ScrollView嵌套RecyclerView时滑动出现的卡顿
reference to : http://zhanglu0574.blog.163.com/blog/static/113651073201641853532259/ ScrollView嵌套Rec ...
- October 15th 2016 Week 42nd Saturday
Word to World. There are only two kinds of people who are really fascinating, people who know absolu ...
- 编辑 Ext 表格(二)——— 编辑表格元素
一.编辑单元格 Ext 中通过配置表格的属性 plugins 来设置表格是否可编辑, 表格的配置具体如下: var gridTable = Ext.create('Ext.grid.Panel', { ...
- ORA-27101: shared memory realm does not exist
Oracle Error Tips by Burleson Consulting Oracle docs note this about ORA-27101: ORA-27101: shared me ...
- SQL 关于apply的两种形式cross apply 和 outer apply(转)
转载链接:http://www.cnblogs.com/shuangnet/archive/2013/04/02/2995798.html apply有两种形式: cross apply 和 oute ...