战棋 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 游戏框架设计思考(一)简介和游戏引擎的更多相关文章

  1. 开源战棋 SLG 游戏框架设计思考(二)规则系统要考虑的因素

    游戏对象 1. 地块方格 地形:山脉.丘陵.乔木林.灌木林.平原.河流.湖泊.海洋.雪原.沼泽.沙漠.暗礁.滩涂.岛屿等等(需完善) 设施:铁路.公路.桥梁.机场.城市.村庄.岸防炮.要塞.废墟等等( ...

  2. 基于cocos2d-x的游戏框架设计——李成

    视频:http://v.youku.com/v_show/id_XMzc5ODUyMTI4.html?f=17330006 网易科技讯 3月31日,第四届CocoaChina开发者大会暨Cocos2d ...

  3. 游戏框架设计中的。绑定binding。。。命令 command 和消息message 以及MVVM

    游戏框架设计中的.绑定binding...命令 command 和消息message

  4. 01 Taro_Mall 开源多端小程序框架设计

    项目介绍 Taro_Mall是一款多端开源在线商城应用程序,后台是基于litemall基础上进行开发,前端采用Taro框架编写,现已全部完成小程序和h5移动端,后续会对APP,淘宝,头条,百度小程序进 ...

  5. python3+selenium框架设计05-配置文件和浏览器引擎类

    python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看Python3学习笔记27-ConfigParser模块 配置文件一般存放着环境信息,比如u ...

  6. 【读书笔记《Android游戏编程之从零开始》】16.游戏开发基础(动画)

    1. Animation动画   在Android 中,系统提供了动画类 Animation ,其中又分为四种动画效果: ● AlphaAnimation:透明度渐变动画 ● ScaleAnimati ...

  7. 【读书笔记《Android游戏编程之从零开始》】15.游戏开发基础(剪切区域)

    剪切区域也称为可视区域,是由画布进行设置的:它指的是在画布上设置一块区域,当画布一旦设置了可视区域,那么除此区域外,绘制的任何内容都将看不到:可视区域可以是圆形.矩形等等. 画布提供了三种设置可视区域 ...

  8. 【读书笔记《Android游戏编程之从零开始》】14.游戏开发基础(Bitmap 位图的渲染与操作)

    Bitmap 是图形类,Android 系统支持的图片格式有 png.jpg.bmp 等. 对位图操作在游戏中是很重要的知识点,比如游戏中需要两张除了大小之外其他完全相同的图,那么如果会对位图进行缩放 ...

  9. 【读书笔记《Android游戏编程之从零开始》】13.游戏开发基础(Paint 画笔)

    1.Paint画笔 Panit(画笔)是绘图额辅助类,其类中包含文字和位图额样式.颜色等属性信息.Paint 的常用方法如下: setAntiAlias(boolean aa) 作用:设置画笔是否无锯 ...

随机推荐

  1. Daily Scrum Meeting ——ThirdDay

    一.Daily Scrum Meeting照片 二.Burndown Chart 三.项目进展 1.完成了github上的文档整理 Transcend/ActivityHelper 2.主界面侧滑框的 ...

  2. CentOS下SNMP的安装与使用

    CentOS下SNMP的安装与使用   导读 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(datab ...

  3. 动态页面 servlet

    1.常见软件架构. C/S: 客户端 服务器  安全性较好,但是升级需要升级两端   B/S: 浏览器 服务器  安全性较差, 但是升级时 只需要升级服务器端(我们今后就是开发这个架构的) 2.资源分 ...

  4. Spring基础知识

    Spring基础知识 利用spring完成松耦合 接口 public interface IOutputGenerator { public void generateOutput(); } 实现类 ...

  5. VC++ 产生GUID或UUID

    GUID 和 UUID 是一样的,表示全球唯一标识码. 下面是Windows系统中,产生GUID的一种方法(Windows API) char* GUID_Generator() { ] = {}; ...

  6. 日志解析LogParse启动参数配置

    -task task_stat1001to1010.yaml -log log4j_stat1001to1010.xml 用绝对路径

  7. Mysql 服务无法启动 1067

    检查my.ini中的

  8. AngularJS Bootstrap

    AngularJS 的首选样式表是 Bootstrap. 可以在 AngularJS 应用中加入 Twitter Bootstrap,你可以在你的 <head>元素中添加如下代码: < ...

  9. 数据的平面拟合 Plane Fitting

    数据的平面拟合 Plane Fitting 看到了一些利用Matlab的平面拟合程序 http://www.ilovematlab.cn/thread-220252-1-1.html

  10. <更新日期03-31-2016> 复利计算5.0 <已改进>

    作业要求: 1.客户说:帮我开发一个复利计算软件. 完成复利公式计算程序,并成功PUSH到github上. 客户提出: 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养 ...