2D开源游戏引擎调研报告(一)

前言:由于工作需要,我要找一款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)替代

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
必牛2D网络游戏引擎教程是一套用于开发2D网络游戏的教学系列。这个引擎使用简单,适合初学者入门,同时也提供了丰富的功能和灵活的扩展性,满足了专业开发者的需求。 首先,在必牛2D网络游戏引擎教程中,我们会学习如何安装和设置引擎,这一步骤通常包括下载或购买必牛2D网络游戏引擎软件,并按照提示进行安装和配置。 接下来,我们会了解引擎的基本概念和核心功能,例如场景管理、角色控制、碰撞检测等。通过学习这些基础知识,我们能够建立起一个简单的游戏世界并实现一些基本的游戏交互功能。 随后,我们会逐步深入学习引擎的高级功能和扩展技术,例如网络通信、多人游戏、物理引擎、图形渲染等。这些知识将使我们能够创建更加复杂和丰富的游戏体验,并且可以根据自己的需求自定义和扩展引擎的功能。 必牛2D网络游戏引擎教程中,还包括丰富的实例演示和练习项目,通过动手实践,我们可以更好地理解和掌握引擎的使用方法和技巧。 最后,在必牛2D网络游戏引擎教程的结尾,还会提供进阶参考资料和相关开发资源,供我们继续学习和探索更高级的开发技术和创作理念。 总之,必牛2D网络游戏引擎教程是一套全面而深入的学习教材,无论是初学者还是有一定开发经验的开发者,都能从中获得宝贵的知识和技能,开发出优秀的2D网络游戏作品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值