却写杂布计 发表于 2021-3-8 21:20

godot引擎对比gamemaker开发2D游戏,哪个更适合独立游戏开发者?

目前正在用Godot,调中文了里面还是一大堆英文,网上教程也少,正考虑弃坑godot,gamemaker的内置语言像哪门语言,难吗?

jimmy肖明 发表于 2021-3-8 21:24

godot我刚开始摸,具体特点不太清楚,gms2我们倒是正在做一个项目,可以讲点。
gms2优点:
1、页面美观
相比之下untiy的界面做的简直是灾难,非常疑惑unity作为一款应用如此之广的引擎为什么不好好制作一下界面。gms2的界面以绿和灰作为主色调,观感比unity要好不少,看上去非常现代。另外资源必须在对应位置创建,对于像我这种比较随性的人等于说是按着做了一遍文件分类,效果还行。
2、语法相对容易
没有C++那些什么引用指针之类的东西,有点像js。纯编程小白入门也能比较容易地掌握。
3、自带像素编辑器
这个我没用过几次——我一般画像素图用aseprite,比较和我的胃口。但自带的功能能用这一点就挺好。这基本意味着如果是小型团队,可以避免频繁切换窗口等恼人的操作,对内容的修改也会更加方便,看哪里不满意,在ide里面直接就能改,速度明显要快很多。
4、性能高,神必优化
据说其优化非常的神必,同屏可以渲染大量的object而几乎不掉帧。
但具体有多神秘我也不清楚,我还没做过那么大体量的内容。如果是小品级游戏的话,其实影响不大。毕竟20帧和60帧能看出区别,50帧和60帧就区别不大了。


缺点:
1、不支持2D光照
作为一个2d引擎竟然不支持2d光照,这一点相当离谱。我们打算制作一款45°俯视角的游戏,因为想做一点光照效果提高画面的表现力,结果竟然发现这个引擎的光照系统只有3d光照,并且3d最多同时也只能支持8个光源(看官方文档的描述,猜测如果同时启用9个光源也只会渲染8个——或者报错)
讲道理,unity一个主打3d的引擎都支持原生2d光照了(还是特意优化过的提高性能的光照)。godot的官方示例里也有自带的实时光照系统。gms一个主打2d的引擎竟然不支持2d的光照,只能让用户通过写shader和添加层的办法曲线救国,这就非常离谱。灯光也是美术的重要表现方式,这差不多是自断一臂了。
2、语法陈旧
声明函数需要在Scripts分类下创建一个gml文件,这一点虽然怪异,但还不算不能忍受。离谱的是函数的传参方式——函数内竟然不能用变量名访问传进来的参数!
举个例子,如果是c++或者c#,一个函数的示例大概是这样:
int function(int a ,int b ,int c){
    return a + b + c;
}
简单,清晰,直白。给传参的变量改个名字读起来非常方便,配合ide可以清楚的知道变量的类型。而如果是gms2,那么一个函数内部就成了这样:
return argument+argument+argument是的,传进来的是一个名叫argument的数组,数组里面有所有的元素就是传入的参数。如果你想访问其中的某一个变量,就只能用访问数组下标的方式进行。没有类型提示,什么也没有,写出来的代码可读性非常差,接手别人的代码时,不靠注释完全不知道每一个元素的作用都是啥。
这种莫名其妙的使用下标访问的设计还有不少,非常疑惑yoyo games设计的时候为什么要这么搞……明明有很多现成的成熟语言方案可以选择,非要用最别扭的一种。
噢对了还有一个,它原生不支持多线程,已有的异步事件局限性也很大。前段时间程序打算做一个面向低配电脑的多线程加载,我们俩人翻遍了文档也没找到能用的api。最后魔法上网找了半天,得出结论是只能用c++、c#、java这种支持多线程的语言封装成.dll再导入,权衡商量一下,最后决定还是把这个功能砍掉——毕竟从投入和收益来讲完全划不来。
3、鸡肋的DnD
这已经不能用难用来形容了……某种意义上来讲,可以说是“糟糕”。
当然也可能是因为我下意识拿他和ue4进行比较,毕竟ue4的蓝图是真的强,用过的都知道。相比之下gms的类似功能就真的非常鸡肋了。页面美观度这种先不提(倒也没丑到人神共愤的地步,虽然确实有些简陋),但api的功能明显是要少不少的。
相比之下来看一下ue4的蓝图,c++能用的功能,蓝图里也基本都能用,再加上各种蓝图间的特性,讲道理把蓝图用明白了也差不多算是学一门相对简单的语言了。如果你觉得蓝图自带的功能不足?那可以通过自建C++类的方式自己写一个——虽然也有点门槛,但做完之后效率会高不少,毕竟连线比写代码可快多了。
(说起类我才想起来gms也不支持类……有些时候难受极了……)
其他的一些小毛病,我就不提了(比如限制房间大小——换到其他引擎理解的话,就是scene、level这种的——坐标只能是范围内的正值。如果摄像机移动到了房间外面,要么是黑屏要么是残影,总之就是渲染会出毛病……让我想起来以前玩《虐杀原形2》的时候开修改器去地图外结果画面变得乱七八糟)……你如果用过自然能领会到这款引擎一些地方的设计有多让人抓狂。当然与之相对的是,一旦你习惯了这个引擎,并且你想做的游戏类型正好在这款引擎的能力范围内,那做起来会极为舒服与高效率。
但一旦你想做一点这个引擎做不到的东西……那就真的不如其他引擎了……
以上,希望有用。
(噢对了最后说一句,gms2的文档也是英文的……以前有一个个人维护的中文的机翻文档,不过前段时间已经麻了,猜测可能是服务器停机啥的?所以如果只是单纯为了逃避英文的话……其实没啥区别……

心随674 发表于 2021-3-8 21:26

2021年2月:
都一样,每个类型的游戏或作者最大可能会流向自己适合的引擎/框架/语言。你要是适合 Godot,等你用了GMS,还是会回GD,你要是适合GMS,用多久你也会想换的。而且不用多几种方案,就不知道每个方案的优劣。你不用GMS,就不知道 GMS/Godot 好在哪里,所以你还是得用一下的,
你要是做横版游戏,或者普通JRPG、ARPG,并且需要快速 Prototype,显然GMS好用,当然,如果你想比GMS还快,那么有 Construct 或者 GDevelop 可选。
你要是需要快速完成一个视觉小说,你一定会选择Ren'Py.
以上这些引擎的特点是,不能做的事情,完全不能做(闭源)或完全做不好(最后是你在造轮子)。但是,能做的事情能做得很好很快,比大而全的游戏引擎还要快得多得多。


你要是需要 高速Prototype,但又需要中等或复杂的游戏逻辑,比如策略、模拟、沙盒游戏等等,那么你应该会用 Godot,Godot 在能力强的引擎里开发最快,开发最快的引擎里能力最强。
至少你不该用 GMS、Construct 、GDevelop 这些,因为这就像用 RPG Maker 去做这些游戏一样,能做,但跟游戏引擎本身提供的功能已经没什么关系了,换句话说白花钱了。(但 GDevelop 是开源免费的。)
另外,你要做重游戏逻辑的游戏,那你就不可能用GMS,因为没有面向对象。另外,要取得更好的2D画面效果,或者固定视角的3D和2D混合,还是得Godot.
当然,反过来讲,如果你要用 Godot 去做一个横版、RPG、ARPG、视觉小说游戏,你始终是需要花掉不少跟“真正的做游戏”无关的时间的,这段时间你都在做游戏的系统,而不是内容。老手可以把这个时间缩短到几天,而对于新手,那就是劝退了,新手多半是艺术家型的人,想做游戏内容,而不是系统。这就是大而全的游戏引擎,以及游戏框架的坏处。


当然,对于以上这些需求,老手会在自己熟悉的框架、引擎中自建一个更定制化的框架。不限于 LibGDX, FNA, OpenGL, Vulkan,每个语言都有能用的框架。这样能想用什么语言就用什么语言,并且把开发速度提升到极速。这样的话,上述那些好处也就只对新手有用了。这也就是那些形形色色的游戏框架发挥作用的最大时刻。开发者本人开发的对游戏类型定制化的框架,用起来完全不亚于 GMS 这类偏科引擎。当然,这都是对老手而言了。
或者你要做个艺术导向强的游戏,并且你程序能力弱,人手少,那么你不太可能画大量时间去实现UI、界面、对话系统、分镜摄像机等等的轮子,你最后还是会回到更完备的引擎,而不是GMS,也不是Godot,而是Unity或Unreal. 有些插件花了整个开发团队数年时间去开发,在框架或新生游戏引擎里重新实现,对于独立开发者是*不可能*的。如果真的去造轮子,那定义上不是单纯的独立游戏开发者了,其开发插件大概是有收入的,或者就是富二代。


如果你发现游戏不可能一人完成,或者你没有赞助这样的资金来源,没办法开发个七八年,那么你会去招人,怎么招人效率、性价比最高?最终还是得招 Unity / Unreal 熟练人员.


你要是需要Html5原生游戏,aka高质量页游,你就可能用 BabylonJS 或者 Phaser框架。


你要是 Flash 退役下来的,可能会用Haxe语言的引擎、框架,比如 HaxeFlixel, Heaps, Armory, OpenFL框架 。


你要是需要主机发布,还是 Unity / Unreal 最不麻烦。移植主机是个极其麻烦的事情。


手游为主,跟PC区别不大,但你多了一个一线选择——你有可能会考虑Cocos Creator,先别慌,Creator 出到3了。
框架还有另一种用法:你要是享受敲代码、造轮子的感觉,或者想提升自己的就业能力,也可以用框架做游戏。
当然,这里定义上就有问题了。
一个想提升自己在游戏行业就业能力的人,不是一般的独立游戏开发者,而是兼职的……采纳他们的建议不太管用。
还有另一种人——对于不同类型的新作,永远从框架开始,从零开发的人。他们甚至为了游戏去开发框架。这样的人,实际上都是技术导向,而不是艺术导向的。比起玩游戏,他们更享受的做游戏。而他们在成为独立开发者之前,往往是技术岗位的,一般没有设计或艺术背景。至于他们做的游戏好不好玩,那得看天赋了……
3D游戏的选择就极多了,一般有 Unity / Unreal / Cry ... 这里可以特别提名 Godot 4.0. 但实际上用什么的都有。

幸福341 发表于 2021-3-8 21:34

首先说我的结论吧。
1、对于你的情况,我认为Godot更适合
2、GameMaker的内置语言和Godot的GDScript难度基本相同
我的GameMaker教程在知乎和Indienova网站上都有发布,而现在在用Godot开发独立游戏,因此对两者都有一定的了解。下面就基于我的认识来解释上面的回答。
重点是第一个问题,Godot和GameMaker哪个更适合独立游戏开发者?
先说几个显而易见的方面:
1、Godot完全免费
2、Godot所支持的语言更多,自带的GDScript和C#。(插一句我不建议想要认真做游戏的人使用那种拖拽的图形编程界面)
3、Godot使用场景(类似Unity的Prefab)来搭建游戏更加符合OOP的思想
但其实这些都不是我选择Godot的关键原因。对我来说Godot最吸引人的地方在于它是开源的。我们在开发过程中,遇到引擎自身存在bug的情况并不少见。对于一个闭源产品来说,你能做的就只是去官网论坛上去反映你所碰到的问题,然后祈祷它能够及时在下一个版本修复。而对于一个开源引擎,你完全可以自己去查找问题的根源,甚至自己修复它。
上面是我对于Godot的一些个人评价。另一方面,我在回答的时候加上了“对于你的情况”这个修饰。因为从问题描述来看,你已经在开始用Godot了,那么我建议你继续用Godot。而如果你说你现在在用GameMaker,那么我会建议你继续用GameMaker。因为对于独立游戏来说,引擎不太会是那个影响我们最终作品的因素。我们要做的是熟悉一款引擎,了解它的优点和局限性,然后在这个基础上创作。就像画画一样,不管是用铅笔、水彩还是绘图板,都可以画的好看。
了解它的局限性这点对于独立游戏来说尤为重要。因为你会发现在独立游戏的开发过程中,会面临各种限制。比如没有钱找不到人、自己不会画画等等。但能够在当前的限制下尽量发挥自己的创意,才是独立游戏的精神呀!
第二个问题就没有太多可说的了。GameMaker的GML和Godot的GDScript两个都是面向自家引擎的脚本语言。要说差别可能就是GDScript的代码范围使用的是类似Python的缩进来确定,而GML使用的是更加类似传统编程语言(C、Java)里的大括号。我个人对于两种风格没有太多什么偏向。
最后补充一下就是,如果只是因为英文的问题,还是好好学英语吧,毕竟关于游戏开发的资料,大部分都是只有英文的。下面我给你一个难度的排序:
学习引擎的难度 < 学习英语的难度 < 制作独立游戏的难度
所以就算不是为了学引擎,为了你制作独立游戏的梦想,也请努力学英语吧!

123456848 发表于 2021-3-8 21:36

从GameMaker转Godot的用户前来回答:作为过来人,当然是认为godot更适合啦!
首先题目问的是:“独立游戏开发者”,独立开发的特点是什么?当前是资金没有大公司那么雄厚啊!
让我们来看看GameMaker的价格:
GameMaker每个平台分开买,花1份钱只能导出1个平台
天哪!最贵的要513元,最便宜的也要248元,独立游戏开发者哪有那么多钱?
再让我们来看看godot的价格:
Godot完全免费,还能全平台导出
天哪!不要钱,就是它了,很适合独立游戏开发者的资金花费。
光是从价格上对比,明显是godot更适合。
再来回答一下描述里的问题:GameMaker使用的语言叫GML,是类似于delphi的语言(因为GM最早的版本就是用delphi开发的)难度和godot的GDScript差不多,都是脚本语言。

冀苍鸾 发表于 2021-3-8 21:44

小白入门以后只想开发2d,用gamemaker
小白入门以后要进入游戏世界开发的大门,推荐godot
小白入门以后要成为独立专业的游戏开发者,godot/unity
有程序基础的做些jam或小作品和原型 可以godot/love2d/...
有程序基础以后要成为专业的游戏开发者 unity/unreal
有程序基础立志成为游戏行业大拿的 OpenGL/Vulkan,最重要的是图形学/线性代数
你:先学好英文再想其他


2021年更新,gm别考虑了.被卖了.
神器GameMaker引擎被中国公司收购,只花了1000万美金 | GameLook | 中国领先的游戏产业媒体2d优先考虑godot或cocos creator(2.x.x),看你发布平台需求. 3d就再多个unity,(godot4/cocos creator3.x)

计划你大爷计j 发表于 2021-3-8 21:50

Unity和Unreal最适合。godot和gamemaker,看起来轻量,实则后来要干一些事情事倍功半,只是看起来很美。

井底燕雀傥 发表于 2021-3-8 21:51

前排提醒:godot引擎有人做了更完整的汉化版本,控件、属性 基本都汉化了。

天一教育培训寐 发表于 2021-3-8 21:52

游戏开发不光涉及内容的编辑,创建。还涉及资源加密,打包,平台的优化。而这些需要相当专业的知识。
即使使用商业引擎,仍然需要不算简单的学习过程。
所以根据目的来选
学习或兴趣使然,推荐godot:这个引擎相对理解最容易,不过需要英文基础好些。它发布在github上的完整的开源游戏实例非常多引擎创建者开篇便说,面向的是设计,美术,无基础人员,所以它没有框架,没有内部知识曲线。
想发布商业游戏那就是用ue4或unity吧手机端/非真实系/轻度 游戏 推荐unityunity主要针对中低端平台拥有成熟的优化和市场经验组件模式,需要一些知识成本,资料较多
真实系,重度,高端游戏使用ue4ue4主要针对主机,PC的高端设备的多年市场经框架固定,需要一定知识成本,基础资料还可以


敢想敢做敢拼 发表于 2021-3-8 21:53

「目前正在用Godot,调中文了里面还是一大堆英文,网上教程也少,正考虑弃坑godot」
截至2020-7-13-20:36-PM,中文godot圈的活跃度包括社区,教程,模版,扩展,免费工程,比gms高了不止一个量级。
试用了下gms的beta版,2.3也拯救不了这个老旧的引擎,建议直接godot。
页: [1] 2
查看完整版本: godot引擎对比gamemaker开发2D游戏,哪个更适合独立游戏开发者?