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

XNA 的 3D 和 2D 游戏引擎(商业与开源) <br />找到了不少,在这里分享一下。说不定以后我自己也要用到!<br /> <br />商业3D引擎:<br />TorqueX (我两年前用的时候,还只是一个2D引擎,目前社区版已经有For XNA 4.0 的了)<br /> <br />Visual3D(这个没有用过,不过看介绍还是不错)<br /> <br />开源3D引擎:<br />OxGameEngine Fox XNA (社区里推荐的游戏引擎,似乎很强大)<br /> <br />X-Engine<br /> <br />Reactor 阅读详情

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

开源游戏引擎体验 应该说每个做游戏的人都会有一个自己写游戏引擎的梦。趁着还没有到新公司报道,花点时间研究一下开源引擎,梳理一下自己的思路。        新的游戏引擎是基于cocos2d-x,我希望能够从这些开源引擎中学到:        1、粒子系统、粒子编辑器。cocos2d-x的粒子系统相当薄弱,不是说没有,但是想用他做出酷炫的技能特效是非常困难的一件事。很多人都有做cocos2d-x的粒子编辑器,但是在 阅读详情

相关推荐

Tolop documented Games:开源2D游戏引擎项目

本文还有配套的精品资源,点击获取 简介:Tolop documented Games是一个开源项目,专注于游戏开发和文档编写。由学习开源程序员团队(TOLOP)执行,旨在通过提供2D游戏引擎源代码,促进开发者之间的知识分享和协作。该项目通过社区驱动,鼓励各种技能水平的开发者参与贡献、协作和学习。相关文件包含了作者贡献列表、安装指南以及一系列的开发步骤和教程,为游戏开发提供了...

weixin_27645199的博客 1359

2023 年最佳游戏引擎推荐

在下文的对照表中,您能够深入了解顶级游戏引擎的情况,但您必须确保所选择的解决方案,确实有助于一站式解决多种问题。简而言之,所选择的游戏引擎应该能够助您在减少编码工作的情况下完成上述任务。这有助于大大缩短开发时间,并使团队能够专注游戏设计,从而提供独特而特殊的用户体验。

讨论软件开发加速、持续集成/持续交付(CI/CD)、C++、开发者生产力以及所有相关话题。 2919

开源小型2D游戏引擎源码解析

游戏引擎是现代电子游戏开发的基础,它提供了构建游戏世界所需的核心功能。从图形渲染、音频播放,到物理模拟、网络通信,每一个环节都至关重要。理解游戏引擎的核心功能,对于提升游戏的性能、开发效率以及最终的游戏体验有着直接的影响。在C++编程语言中,头文件主要负责声明程序中使用的函数、变量以及类等的接口。它们允许你在不同的源文件之间共享这些声明,从而实现模块化和代码重用。当你在多个源文件中需要使用相同的函数声明或类定义时,你不需要在每个源文件中重复声明这些内容。

weixin_31459297的博客 1196

Godot 游戏引擎个人评价和2024年规划(无代码)

今天是上班的最后一天,我也学不动了,暂时也不想学什么新东西了。这篇文章就简单来说明一下我对于Godot的评价和之后的规划我认为Godot还是非常具有潜力的,2D方面应该是非常的成熟了,3D就是保上限。出于个人的期望,我希望微软能赞助Godot引擎的开发或者收编Godot。这样就能真正实现C# 编写万物的可能了(除了底层的系统和嵌入式代码)。

qq_44695769的博客 1万+

Solar2D游戏引擎主存储库(来自Corona SDK)-C/C++开发

Corona(CoronaSDK)易于学习和使用由Corona Labs开发的2D游戏引擎易于学习且功能强大的Corona是跨平台框架,是快速为移动设备创建应用程序和游戏的理想选择,Corona(CoronaSDK)易于学习和使用由Corona Labs开发的2D游戏引擎易于学习且功能强大的Corona是一种跨平台框架,非常适合为移动设备,电视,台式机系统和HTML5快速创建应用程序和游戏。 这意味着您可以一次创建项目,然后将其发布到多种类型的设备,包括Apple iPhone和iPad,Android手机和平板电脑,Amazon Fire,Mac Desktop,Windows Desktop,Linux,HTML5甚至是连接的电视,例如Apple TV,Fire电视,

解决Visual C++2008安装失败,error 1935

重装系统后Visual C++没了,其他都能装上但VC2008会报这个error 1935。鉴于我把网上所有的解决方法排了一遍错,我也不知道是哪一步起效,所以就都放上来了。特别注意:报error 1935的错误原因可能不尽相同,比如我的报错开头为An error occurred,结尾为HRESULT:0x80070005。80070005 拒绝访问通常是权限问题,安装Visual C++无法写入文件夹或注册表(直接跳转第7步)

weixin_44427808的博客 1万+

构建你自己的 2D 游戏引擎(一)

原文:Build Your Own 2D Game Engine and Create Great Web Games 协议:CC BY-NC-SA 4.0 一、使用 JavaScript 开发 2D 游戏引擎的简介 视频游戏是复杂的、交互式的多媒体软件系统。他们必须实时处理玩家输入,模拟半自动对象的交互,并生成高保真的图形和音频输出,同时努力吸引玩家。由于需要精通软件开发以及如何创建吸引人的玩家体验,构建视频游戏的尝试可能会很快变得势不可挡。第一个挑战可以通过一个软件库或游戏引擎来缓解,它包含一个专门

龙哥盟 2352

AI产品经理必备:Agent评测维度、指标与工程化落地指南

随着大模型从单轮问答走向复杂的Agent应用,如何科学地评测一个Agent是否真正“办成了事”,成为AI产品经理必须掌握的核心能力。与传统大模型评测关注回答质量不同,Agent评测需要综合评估任务规划、工具调用、多轮对话一致性以及失败自愈等行为。任务完成率与工具调用成功率是最关键的两个量化指标,同时还需关注延迟与Token成本等工程约束。在实际落地中,评测集的设计要覆盖业务主流程与边界场景,并通过批量回归测试与版本对比,为产品选型、算法迭代和上线决策提供数据支持。本文系统拆解了Agent评测的完整流程,帮助

weixin_29057163的博客 344

推荐:Solar2D——快速创建2D游戏与应用的利器!

推荐:Solar2D——快速创建2D游戏与应用的利器! 去发现同类优质开源项目:https://gitcode.com/ 项目简介 Solar2D,原名Corona SDK,是一个免费且开源的2D游戏引擎。它允许开发者一次性编写代码,即可在多个平台上发布应用程序,包括iOS、Android、Amazon Fire、Mac桌面、Windows桌面、Linux以及HTML5等平台。这款引擎以其易学易用...

gitblog_00092的博客 1188

芯片良率提升:从设计到制造的系统性工程实践

在半导体制造领域,良率是衡量生产效率和成本控制的核心指标,直接关系到芯片的经济效益与市场竞争力。其本质是合格芯片占总产出芯片的百分比,提升良率需要从设计源头到制造末端的全流程协同优化。从技术原理看,它涉及可制造性设计、工艺过程控制、缺陷检测与根因分析等多个复杂环节,尤其在先进制程下,随机缺陷和参数变异成为主要挑战。其技术价值不仅在于降低单颗芯片成本,更能加速产品上市、保障可靠性,并成为企业技术实力的关键体现。应用场景贯穿智能手机、数据中心、自动驾驶和人工智能等所有高端芯片领域。本文将结合【芯片制造】与【良率

weixin_42526068的博客 634

SMMU软件指南SMMU编程之流表(Stream Table)

SMMU使用一组内存中的数据结构来定位翻译数据,详见“转换过程概述”(Translation process overview)。SMMU_(*_)STRTAB_BASE 存储初始结构(流表,Stream Table)的基地址。流表项(Stream Table Entry, STE)包含二级(Stage 2)转换表的基址指针,同时也定位一级(Stage 1)配置结构,这些配置结构包含转换表的基址指针。 传入事务的 StreamID,由 SEC_SID 进行限定,决定了用于查找的流表,并定位相应的STE。

AI-安全-功耗 1190

Lumen-2D 开源游戏引擎指南

Lumen-2D 是一个专为2D游戏开发设计的轻量级开源游戏引擎,由Domenicobrz创建。它基于C++构建,并利用现代图形库如OpenGL或Vulkan确保高效渲染,同时支持热更新和Lua脚本,使得游戏逻辑与核心引擎分离,易于调试和动态调整。Lumen-2D旨在简化游戏开发过程,让开发者聚焦于创意与设计而非底层技术,特别适合独立游戏开发者和缺乏图形编程经验的小团队。它拥有高度可定制的组件系统

gitblog_00575的博客 1114

MCAL中Dsadc的配置

DSADC模块作为一个专用的模块,主要应用在编码器软解码,功能强大而复杂,这里介绍了Dsadc的mcal配置和详细描述,让你全面学习和理解这个模块功能和应用。

dhyw12399999的博客 788

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

二.Panda3D 0.基本介绍: Panda3D是由迪士尼参与开发的开源3D游戏引擎 只有函数库,通过在python/c++文件中调用函数库进行开发 官网:https://www.panda3d.org/ 教程资源: ①安装引擎时会附带28个demo,展示了引擎的使用方式和特点,并附有非常详细的注释 ②https://arsthaumaturgis.github.io/Panda3DTutori...

alittebug的博客 892

【Unity的HDRP渲染管线下实现好用的GUI模糊和外描边流光效果_Blur_OutLine_案例分享(内附源码)】

因为没有用到纹理,但介于是UI层,没有MainTeX的时候,会提示报错,所以这里加上了MainTex,最后不在片段着色渲染出来既可。这样UI层级显示正常了,但旋转后的模糊效果,跟背景拼接不上,有很大的偏移。猜测是屏幕UV采样错误导致,只要找到屏幕UV数值,更正过来就可以了,RenderTexture设置一下Size既可,其他的先不管。没有贴图,用Shader实现外描边流光效果。将主相机拖入Render Camera。新建一个RenderTexture。

暴走约伯的博客 1149

自定义View系列教程04--Draw源码分析及其实践

通过之前的详细分析,我们知道:在measure中测量了View的大小,在layout阶段确定了View的位置。 完成这两步之后就进入到了我们相对熟悉的draw阶段,在该阶段真正地开始对视图进行绘制。按照之前的惯例,我们来瞅瞅View中draw( )的源码 public void draw(Canvas canvas) { final int privateFlags = mPriv

谷哥的小弟 2万+

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

三.Cocos2d-x 0.基本介绍 Cocos2d-x 是一套成熟的开源跨平台游戏开发框架。引擎提供了图形渲染、GUI、音频、网络、物理、用户输入等丰富的功能, 被广泛应用于游戏开发及交互式应用的构建。 官网:https://www.cocos.com/ 1.语言和代码 核心代码为c++,支持使用c++、Lua、JavaScript语言 2.项目的生成 ①新建项目: 打开引擎安装包目录中的too...

alittebug的博客 999

Claude Code 100个真实案例 - 用AI搭建GIS地理信息系统(地图标注+热力图)

本案例展示如何使用 Claude Code 从零搭建一个完整的 GIS 地理信息系统。我们将使用 Python + Flask 作为后端,Leaflet.js 作为前端地图引擎,实现地图标注、热力图展示、区域绘制、坐标搜索等功能。全程通过与 Claude Code 对话完成,让你感受 AI 在地理信息领域的强大开发能力。

yueyeguzhuo的专栏 113

GearX :2D游戏引擎开发实践

高考后的暑假,我在B站上看了GAMES 104课程,从那时起我就心里有了一个Idea,就是自己写一个游戏引擎,但那时自己的编程能力还不熟练,所以一直没开始。然后我开始学习相关的技术,提升自己的能力。而在一个月前,我开始了引擎的编写。目前引擎已经基本完成(应该),并且已经可以运行,因为时间原因(才弄了一个月),这个游戏引擎的功能还很简单,以后有时间引擎会进行升级。GearX 是一个2D游戏引擎,使用C++编写,Cmake构建,基于SDL3 开发。

qq_62562855的博客 2321

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【亲测免费】 探索LITIENGINE:开源Java 2D游戏引擎的新星

探索LITIENGINE:开源Java 2D游戏引擎的新星 在游戏开发的广阔天地中,选择一个合适的游戏引擎是成功的关键一步。今天,我们将深入了解一个新兴的开源Java 2D游戏引擎——LITIENGINE,它以其全面的功能和友好的社区支持,正逐渐成为开发者的新宠。 项目介绍 LITIENGINE是一个免费且开源的Java 2D游戏引擎,它提供了一套全面的Java库和一个专用的地图编辑器,用于创建基...

gitblog_00530的博客 908

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

原创2D/3D游戏引擎源代码开源

早期的作品代码结构较差,对大家造成的误导敬请谅解。我会不断的更新个人作品,请大家始终参考最新的源码。在此感谢热心网友给我提的宝贵意见。

游蓝海 的专栏 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

2d开源游戏引擎_前5名:构建出色的CLI,开源2D游戏引擎等

2d开源游戏引擎 在本周的前5名中,我们重点介绍了用于构建出色的命令行UI,开源2D游戏引擎,机械键盘等的工具。 一周前五篇文章 5. 面向程序员和游戏玩家的机械键盘 Input Club的机械键盘不仅用于生产出色的产品。 他们也证明开源可以解决任何问题。 4. Raspberry Pi Zero W修复了网络遗漏 Raspberry Pi发烧友Anderson Silva在...

cumo3681的博客 1308

Torque2D 开源游戏引擎快速入门指南

--- ## 项目目录结构及介绍 Torque2D 是一个基于成熟Torque技术构建的完全免费且开源的2D游戏引擎。其目录结构精心设计,以支持模块化开发和易于管理。以下是核心目录的概览: - **`engine`**: 包含引擎的核心C++源代码,是整个引擎的心脏。 - `compilers`: 提供不同平台的编译设置文件,如Visual Studio或Xcode工程文件。 ...

gitblog_00782的博客 993

各大知名游戏引擎分析报告

游戏引擎之争就像编程语言之争一样,在游戏开发圈永远是一个火爆的话题,目前市面上主流的一些游戏引擎,我们来给他们做一些比较,了解他们的历史,特点, 为了严谨,备注一下写这个文章的时间编写时间是2021年4月20日。目前国内主流在用的游戏引擎有, Unity, Cocos, Laya, UE4, 白鹭, 接下来我们一起来分析这些引擎的特点。 这里有个游戏开发交流学习小组点击可以直接加入,一起学习交流吧 1: 国民3D引擎Unity Unity, 使用C#或Lua语言开发。国民3D引擎,这个称号说明了Uni

voidinit的专栏 4092

solarus:开源的2D游戏引擎,实现你的塞尔达梦

solarus 是一款开源的2D游戏引擎,它使用 C++ 编写,支持通过 Lua 脚本运行游戏。这款引擎最初用于开发类似《塞尔达传说》的粉丝游戏(fangames),现在已经发展成为一个功能丰富且高度可定制的游戏开发平台。solarus 遵循 GPL v3 许可协议,用户可以自由使用和修改源代码。 ## 项目技术分析 solarus 采用了成熟的编程语言 C++ 来构建核心功能,这保证了引擎的

gitblog_00355的博客 993

开发2d游戏要用什么引擎_下一个游戏要使用什么2D游戏引擎

开发2d游戏要用什么引擎A few weeks ago, I posted about my experience attempting to make a prototype in a bunch of different 2D game engines/frameworks to learn what makes them tick. 几周前,我发表了自己的经验,试图在一系列不同的2D游戏引擎...

cumi6497的博客 6200
下一篇: 2D开源游戏引擎调研报告(二)
此曲只应人间有
博客等级 码龄7年 3粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值