前言:由于工作需要,我要找一款2D的开源游戏引擎。以下是我选取调研的四款软件。

一、Godot
二、Panda3D
三、Cocos2dx
四、CocosCreator
(注:这些软件中的3d部分功能均不在考察范围中)

调研内容:
1.使用语言
2.可执行文件可以运行的平台
3.对象的封装、继承、实例化等功能
4.多场景的切换
5.物理引擎,包含:
碰撞检测
物理模型:
实体
绳子
引力效果
6.粒子效果
7. UI组件,包含:

  • 按钮、标签、定时器、菜单、复选框、进度条、滑动条、文本框

8.利用容器设置对象在屏幕中的位置
9.光影渲染
10.动画部分,包含:

  • 对象的位置、朝向、移动
  • 对象的颜色变化
  • 数字的变化

11.音频文件的加载、播放
12.视频文件的加载、播放
13.学习资源的丰富性
14.引擎效率

一.Godot

0.基本介绍
官网:https://godotengine.org/
中文官网:http://docs.godotengine.org/zh_CN/

1.语言和代码
引擎使用的语言:官方为GDscript语言(一个专用于Godot的语言),也支持C#语言。
GDscript语言特点:类似于Python。

编辑代码的方式:
①在编辑器中直接编写并编译。
②通过外部工具进行编写

语言的使用(使用引擎内置编辑器):
C#:在引擎中编写时,就如同编辑txt,感受不好;部分功能目前不支持。
GDscript:能实时检查错误;有智能拼写功能。

生成可执行程序:
编辑器自带导出程序功能
支持平台:Android、IOS、HTML5(按网上资料,HTML几乎用不了)、Mac OSX、Windows、Linux

2.对象的编辑和设计
由于Godot自带图形化编辑器,对象和程序的设计较为容易
①对象的定义和封装
在编辑器中,可以自由创建场景节点树,任意节点都可以作为场景文件储存,即完成了对象的封装
②对象的实例化
图形化方式:右击节点,选择“实例化子场景”,即可添加(实例化)某个场景
代码方式:对于已经保存好的场景(假设名为object.tscn),在代码中输入:

  • Var inst = object.instance()
  • Add_child()

可以创建实例并添加到场景中
③对象的继承
选择“新建继承的场景”可以进行场景的继承并编辑(除了原有的节点关系,其余都可以修改)

3.场景的切换
Self.get_tree().change_scene()方法

4.物理引擎
①碰撞监测
Godot有CollisionShape2D节点,可以绘制一个碰撞区域。若不同对象的碰撞区域发生重叠,则会发出信号(Godot中有一类信号发射器功能,用于实现函数回调。使用很简单,对新手较友好)
②物理模型
实体方块:
RigidBody节点可以提供物理实体模型所需的属性,包括:重量、所受的力、摩擦系数、弹性系数、旋转角等参数
绳子:
需要用多个实体方块连接而成
③引力效果
需要通过代码实现

5.粒子效果
使用Particle节点,可设置的参数如下:
①单个粒子的属性:粒子的材料(颜色)、大小、速度、方向、加速度、旋转等
②粒子的生成:粒子数量、粒子存在时间、产生粒子的频率(爆炸性or持续性)、生成粒子的位置(一个点or一片区域)、粒子的随机性等
可生成的效果:火焰、漩涡、满天星、爆炸等

6.UI组件
Button:有
Label:有
ProgressBar:有,可添加三层图案(顶层、底层、填充层)
定时器:有。定时器控件在到达指定时间后,会发出信号
字体、字号设置:系统只有默认字体、其余字体需手动添加(放入文件夹中并在控件上设置)
(常用功能可以直接从节点中找到并添加)

7.容器
①对象位置的设置:
可以设置对象在屏幕中的绝对位置(x,y),也可以设置对象相对于父节点的位置(margin)
②容器的种类
网格状排列:GridContainer
横向排列:HBoxContainer
纵向排列:VBoxContainer
九宫格容器:NinePatchContainer,用于保证容器的四个角不随图片大小变化而变化

9光影效果
使用light2D(在指定区域叠加一层半透明图像)和LightOccluder2D(提供阴影效果,它所属的对象的形状会阻挡光线的穿过)

10动画部分
①图形化实现
Godot自带动画编辑器。选定对象后,可以在不同帧设置其位置等参数。播放时,该对象将按照这些帧进行平滑运动
②代码实现
使用interpolate_property()函数,可以让对象的属性的值(包括位置、颜色或自定义变量)在指定时间内从一个数平滑过渡到另一个数
③骨骼效果(不同动画对象的连接)在编辑器中可以选择并添加该内容

11.音频文件的加载、播放
使用AudioStreamPlayer
支持格式:ogg、oggstr、res、sample、tres、wav

12.视频文件的加载、播放
使用VideoPlayer播放视频
支持格式:ogv、res、tres、webm

13.资源的丰富性
官方api有中英两个版本(部分英文无中文翻译,但影响不大)

评价:godot的特点是“小而全”,需要的功能基本都能快速找到,节点种类丰富,也很容易上手,在入门初学时,基本不需要代码就能实现简单游戏。
但是,部分功能不够强大(或者说不够好用)。比如在代码编辑上,引擎自带的编辑器虽然有智能拼写等功能,但实际使用感受一般般,且部分报错信息难以读懂。可以使用外部编辑器(如vscode)替代

2D开源游戏引擎调研报告(一)相关推荐

  1. 2d开源游戏引擎linux,Corona实验室开源Corona,免费和跨平台2D游戏引擎

    Corona实验室昨天宣布,它正在制作免费和跨平台的2D游戏引擎Corona,根据GPLv3许可证和商业许可证作为开源提供.构建和发布的许可证保持不变,并且更改仅适用于引擎的源代码. Corona是一 ...

  2. Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎

    编辑本段简介 Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, And ...

  3. HTML5 开源游戏引擎 LayaAir

    LayaAir是HTML5开源引擎 提供Canvas和Webgl同时渲染,如果Webgl不可用,则可自动切换到Canvas模式.引擎为高性能游戏设计,支持AS,TS,JS三种语言开发,一套代码三端齐发 ...

  4. iPhone的2D/3D游戏引擎

    近日在学习iPhone游戏开发,对于2D和3D游戏引擎的使用大费了一番周折.这方面的内容国内网站还很少,只能通过google来查找国外的一些网站资料.还好,总算找到了适合自己和团队学习的引擎. 先对可 ...

  5. FW:十大开源游戏引擎深入比较_拔剑-浆糊的传说_新浪博客

    http://book.2cto.com/201301/15170.html 在国内外,业界盛传有十大开源游戏引擎,分别是OGRE.Irrlicht.Panda3D.Crystal Space.jME ...

  6. 《Genesis-3D开源游戏引擎-FQA常见问题解答》2014年01月10号版本

    1.Genesis-3D开源游戏引擎主要面向哪些用户人群?有限制吗? 1.我们的引擎没有限制,只要您想了解和使用我们的引擎,就可以加入Genesis-3D的大家庭. 2.我们的主要用户群是各个相关的企 ...

  7. 开源OLAP引擎测评报告

    开源OLAP引擎测评报告 原创: 易观CTO 郭炜 Analysys易观 导读 现在大数据组件非常多,众说不一,在每个企业不同的使用场景里究竟应该使用哪个引擎呢?这是易观Spark实战营出品的开源Ol ...

  8. 两大开源游戏引擎Cocos2d-x及OGEngine对比分析

    在近期的全球移动开发者大会上,触控发布了Cocos 3D引擎:而在差不多同时间,以安卓为主的OGEngine也发布了新版本,并宣布将支持跨平台. Cocos2d-x和OGEngine都是当前比较受开发 ...

  9. 五大开源游戏引擎介绍

    本文总结分享了五个开源游戏引擎.对游戏编程初哥来说,选择一个好的游戏引擎是一个很头疼的事.本文介绍的五个游戏引擎不仅被证明是可靠的,而且全部开放源码. AD:   对游戏编程初哥来说,选择一个好的游戏 ...

  10. html5 2d,3d游戏引擎

    html5 2d,3d游戏引擎 http://biz.turbulenz.com/developers posted on 2014-10-12 21:58 雨亭 阅读(...) 评论(...) 编辑 ...

最新文章

  1. 推荐一个非常好用的Chrome扩展应用,用于美化Json字符串
  2. dp,px,pt,sp 的区别 以及dp 和 px 互转
  3. 32位oracle和64位的区别,区分你的oracle是64位还是32位
  4. 575. Distribute Candies 平均分糖果,但要求种类最多
  5. (科普帖)电梯突然断电下坠时、一定要这么做
  6. 在JVM之下–类加载器
  7. 现代php 阅读笔记,PHP 手册阅读笔记 - 语言参考篇
  8. Java方法的可变参数
  9. Beta冲刺——day6
  10. 数论19——高斯消元
  11. FastDFS原理及维护
  12. 平面设计就业方向是什么?
  13. [转]外贸出口流程图
  14. U盘启动盘cmd制作
  15. [下载] Windows 10 Version 1809 微软官方原版镜像
  16. 星光不负赶路人 农行客户点赞GBASE
  17. 一些iOS实用Demo
  18. 完美实现Ubuntu系统迁移到另一台电脑/服务器
  19. MQTT服务的Qos
  20. 打开时空隧道,重演云栖72小时云世界

热门文章

  1. CCAA 信息安全管理体系 考试大纲及重点题目记忆
  2. 一个基于 EasyUI 的前台架构(4)主体页面框架收工
  3. 【Python】调用WPS V9 API,实现Word转PDF
  4. mysql 关系图 工具_ER图绘制软件-DbSchema数据库关系图设计器下载v8.1.7-领航下载站...
  5. 湖南高职高考计算机,20XX湖南高职对口高考常德市大联考计算机专业试卷(4月)[整理](8页)-原创力文档...
  6. 苹果手机更改照片大小kb,苹果手机怎么把图片缩小 怎么用手机把图片缩小
  7. java爬虫教程:模拟用户表单登录
  8. Trapcode Particular 4 for Mac(AE三维粒子插件)附序列号破解版
  9. synergy一套键鼠控制两台电脑
  10. 项目开发 —— 一页纸项目管理(OPPM)