Project1

标题: 【更新物理引擎功能展示】为啥做动作游戏不用PGMMV而用RM做 [打印本页]

作者: lisliz    时间: 2020-10-2 23:04
标题: 【更新物理引擎功能展示】为啥做动作游戏不用PGMMV而用RM做
本帖最后由 lisliz 于 2020-10-5 16:12 编辑

今天酒喝多了,话就有点多。之前我在招募板块发帖动作游戏企划招队友,有人喊我用PGMMV来着。
用pgmmv直接写好的脚本做动作游戏,确实看起来会更快,但是你要想,pgmmv它再好,始终是别人写好给你的,你并不懂里面是什么原理,这样你就很难定制自己想要的东西,而且你要了解它还会有很大的接触成本。

这样就好比各位做一款好点的剧情游戏不让你用原创素材一样,是非常麻烦的,非原创素材(类比PGMMV),他并不是写给你的游戏的,而且你多半还改不了它,无形中限制了你去精雕细琢的可能性。

我截图一哈这两天空洞骑士STEAM底下的评价哈,大家看看。

你说人家游戏为啥就好玩,“好玩”这两个字分量有多重?那大家觉得用人家做好的战斗插件或者说写好的PGMMV能达到这个分量么?
这种玩法上登峰造极的作品,肯定是需要一个非常强大的策划,和一个什么好玩的东西都能实现的神仙(gong ju ren)程序。所以,看上面的红色字体,现在知道原因了吧。


好的,我们接下来就在MZ里实现一个小型物理引擎。以下折叠过于硬核,慎点!包括碰撞检测,各种数学,物理等烧脑逻辑。
MZ里物理引擎实现的过程


好,经过国庆这几天几乎没日没夜摧残身心的脚本编写和调试,终于重构了一个还算看得过去的运行在RPGMAKER MZ上的2D横板物理引擎。
说起重构,因为之前也有在RMMV上编写过2D物理引擎,所以这次已经是个人的第四代重构版本了。第二代版本发布于今年2月份,作为《喵可莉的兔玩偶》STEAM版本的彩蛋房间小游戏,但是因为被玩家吐槽手感屎,所以发布第二天就删除掉了。
第三代版本发布于今年8月22日,作为《喵可莉的兔玩偶》STEAM上的DLC内容的一个隐藏要素(小游戏)呈现给玩家,现今仍然可以游玩到。

以下折叠是第四代重构物理引擎实现的功能展示:

惯性和摩擦力
重力和跳跃
地形和碰撞
动量定理和弹性碰撞
感想

作者: 喵呜喵5    时间: 2020-10-3 00:04
那为啥要用rm做?直接用pixi自己搭一套呗
作者: Im剑侠客    时间: 2020-10-3 00:55
感觉物理碰撞用公式总是不够用的感觉。毕竟不规则多边形书写难度呈指数型增长。如果碰撞可以像素化,我觉得可以参考参考a星寻路与黑白路径图。以图片的像素颜色判断攻击范围,读取范围,成为读取图片的像素颜色,或者透明度,这又有点像鼠标的透明度感应范围。如果可以在读取图片获取必要信息,而且能够保证效率的话,我觉得不规则多边形碰撞可以一解。
作者: lisliz    时间: 2020-10-3 08:30
本帖最后由 lisliz 于 2020-10-3 08:53 编辑
喵呜喵5 发表于 2020-10-3 00:04
那为啥要用rm做?直接用pixi自己搭一套呗


很多游戏都会写一套自己的战斗系统,但很少有游戏会自己写一套OpenGL出来,对吧。

有些轮子需要自己造,因为做出好游戏必须走定制,但有些轮子可以用别人的。RM和PGMMV或者UNITY肯定多少都有能用的轮子,所以从pixijs自己搭(甚至从汇编自己写),就用不了这些不怎么需要定制轮子了。

所以这个地方就挺主观的,这个帖子不应该这样取名,搞得好像大家都用RM更好似的,对不起dbq可能给大佬造成误会了!用RM,是因为更了解它,能更快把它的轮子用好。跟我说MZ天下第一!
作者: 喵呜喵5    时间: 2020-10-3 08:51
lisliz 发表于 2020-10-3 08:30
很多游戏都会写一套自己的战斗系统,但很少有游戏会自己写一套OpenGL出来,对吧。

有些轮子需要自己造, ...

但pixi从概念上接近你说的OpenGL啊
mz或者pgmmv都是在这上面针对特定游戏类型包了一层

你不想用mz的默认游戏类型已经等于放弃它大部分已经包好的代码了……
作者: lisliz    时间: 2020-10-3 09:07
本帖最后由 lisliz 于 2020-10-3 09:24 编辑
喵呜喵5 发表于 2020-10-3 08:51
但pixi从概念上接近你说的OpenGL啊
mz或者pgmmv都是在这上面针对特定游戏类型包了一层


我还是很想保留事件的功能和RM自带地图编辑器的作用的。物理引擎都尽量在Game_Map和Game_CharacterBase上扩展,尽量不破坏它原本的功能。

然后就是放弃一部分包好的代码,哎,真的我觉得必须放弃掉,不这样做不好游戏的。空洞骑士那么多好玩的技能,如果战斗引擎不是你自己写的你咋实现蹭墙跳,空中前冲,向后闪避这种好玩有趣的技能。哎,真的不是吃饱了没事干自己写一个出来显摆,你说不是自己写的战斗引擎。自己却有一万个好玩的技能和关卡设计想要发挥,一万个啊,各种各样的都有啊,不是自己写的战斗引擎你说咋实现,没法整啊。

我举个例子哈,我以前玩游戏玩过这种地形,就是这种土堆,上面能站人,也能从下面跳上去,还能从左边和右边进来。





这合理吗?这薄荷里!!!这个土堆根本不是普通的碰撞体,他只有上面有判定,底下是没有的,像这种恶心奇葩的需求以后关卡设计还有很多很多。简直了,如果用别人写好的插件我都不知道怎么实现。
作者: 喵呜喵5    时间: 2020-10-3 09:16
lisliz 发表于 2020-10-3 09:07
我还是很想保留事件的功能和RM自带地图编辑器的作用的。物理引擎都尽量在Game_Map和Game_CharacterBase上 ...

我的意思是,game_map 和 game_characterbase 也放弃
作者: 89444640    时间: 2020-10-3 09:36
本帖最后由 89444640 于 2020-10-3 09:40 编辑
lisliz 发表于 2020-10-3 09:07
我还是很想保留事件的功能和RM自带地图编辑器的作用的。物理引擎都尽量在Game_Map和Game_CharacterBase上 ...


MZ那个地图素材总数量限制很烦,遮挡不分级更烦。
这种土堆应该能拉下跳下去的,从下面跳上去这个功能,反正xp那个act我是没辙了,只能平台左右留口,不能从下面跳上去,合金弹头也没拉下按跳跃式下跳一层的功能XD,但是人家关卡设计不一样不需要下跳。
然后我记得,如果是曲线运动需要算切线,什么sin之类的,动作游戏看上去是美工玩的,实际上全是程序在玩。
光画图像没问题,什么贴壁三角跳,蹭墙下滑所有互动我都能画出来,但是,rm程序里面,尤其是XP里面,很多时候,没法照gif模拟的那么好好运行,
比如贴壁,跳跃中左侧或者右侧顶到墙,继续按着方向键不放转化为贴壁,用小刀扎着墙慢慢下滑,然后再按跳跃会往反方向跳一段距离如果有墙重复,没墙下落,纯剧情没事,允许玩家操作打死我也写不出来。
写出一个靠谱的能兼容rpg模式的act引擎真是挺难的,尤其是自己看得懂的。

作者: lisliz    时间: 2020-10-5 16:13
顶一下,更新了这两天爆肝出来的rmmz搭载的2D物理引擎展示
作者: phunmung5173    时间: 2020-10-5 18:03
大神! 但是想问如果想要从物理开始做起... 为什么不要用Unity
逻辑学好的话甚至不用编程

虽然觉得把物理引擎导入RMMZ有点本末倒置 但是这世界就需要这种人:)
作者: 任小雪    时间: 2021-5-17 23:52
大佬要是美少女就完美了
作者: 应答    时间: 2021-5-31 21:21
我也觉得物理引擎放到RM上是本末倒置,RM设计的初衷是给我们做出像勇者斗恶龙、口袋妖怪那样的RPG游戏的。
不过情怀嘛,能理解,虽然不理解为什么会对js系有情怀……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1