找回密码
 立即注册
搜索
查看: 2621|回复: 14

[其他] 物理引擎与像素风游戏

[复制链接]
发表于 2022-8-8 00:44 | 显示全部楼层 |阅读模式
最近看教程,虽没完全看懂,但里面说教程不可尽信我觉得有道理,(比如unity)一般教程会说用刚体然后按键增加速度,但物理引擎有个特性,那就是2个物体绝对不可紧贴,会看到相距比如0.001而且如果有压力会不断跳动,然而特别是 像素风 ,格子数是有限的,很可能0.001和0.002看起来完全一样,结果就是看着完全一样的距离,用完全一样的操作,结果却不一样(够着/够不着),那岂不……只是普通的烂游戏吗
回复

使用道具 举报

     
发表于 2022-8-8 00:53 来自手机 | 显示全部楼层
你都变像素人了,行动位移就不能也是格子吗
回复

使用道具 举报

     
发表于 2022-8-8 01:14 | 显示全部楼层
本帖最后由 Tring 于 2022-8-8 01:16 编辑

确定性方面,物理引擎就没有不烂的,即使不是像素也是如此。
尤其是当使用一些距离在分母上的物理特性时,发散项能直接让你原地上天。
回复

使用道具 举报

     
发表于 2022-8-8 01:34 | 显示全部楼层
说到这个,有个物理引擎很吊的像素游戏Cortex Command,你可以参考下它的人物是怎么移动的
回复

使用道具 举报

     
发表于 2022-8-8 03:29 | 显示全部楼层
Tring 发表于 2022-8-8 01:14
确定性方面,物理引擎就没有不烂的,即使不是像素也是如此。
尤其是当使用一些距离在分母上的物理特性时, ...

虽然但是,这并不是确定性问题…

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2022-8-8 03:32 | 显示全部楼层
你把格子弄大一点不就好了,全场景同比缩放
这就是个小数值下精度问题,和像素风有什么关系。再说玩家操作精度怎么也不可能达到0.001和0.002

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2022-8-8 03:33 来自手机 | 显示全部楼层
正常设计的游戏都不会设计出卡0.001的判定,在知道会有0.001的误差的情况下,游戏机制上容错的范围会做在10左右,如果判定范围是10,那10.001和9.999导致的判定差异概率十分低,而且发生了也不太会被察觉到
会去专门卡精确操作的可能只有社区游戏,i wanna 的一些创作作品会有用贴墙调整自己位置的余数才能通过的地方(但他依然是基于像素做物理的游戏)
大部分正常游戏其实都不需要那么精确的物理,甚至不需要实现“做出相同的操作一定会有相同的结果”,如果不特意把物理帧和渲染帧绑定起来,而是独立运作物理帧和渲染帧(大部分游戏都是这么做的,除了trackmania这种特别需求确定性的专门做了绑定),物理就是非确定的,渲染帧的运行速度会影响物理的结果
不过如果是比较传统的非物理模拟类2d游戏,最好的做法其实还是以像素为单位自己手写物理,不仅确定性好一些,在渲染上也会更好看,不会出现sprite边界刚好在一个像素内部的情况

—— 来自 Sony XQ-BT52, Android 12上的 S1Next-鹅版 v2.5.2-play
回复

使用道具 举报

     
发表于 2022-8-8 04:21 | 显示全部楼层
GuardHei 发表于 2022-8-8 03:29
虽然但是,这并不是确定性问题…

—— 来自 S1Fun

还是有关系的,指的面对小扰动时会产生巨大的结果差异这一点。
回复

使用道具 举报

     
发表于 2022-8-8 05:23 | 显示全部楼层
Tring 发表于 2022-8-8 04:21
还是有关系的,指的面对小扰动时会产生巨大的结果差异这一点。

物理引擎的确定性指的是同样输入能不能输出。无论是小差异还是大差异,不一样就是不一样。这里面没牵扯到这个问题嘛

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2022-8-8 05:51 | 显示全部楼层
本帖最后由 Tring 于 2022-8-8 05:52 编辑
GuardHei 发表于 2022-8-8 05:23
物理引擎的确定性指的是同样输入能不能输出。无论是小差异还是大差异,不一样就是不一样。这里面没牵扯到 ...

可是对于玩家来说是没有办法避免小差异的。
所以从玩家角度来说,不可避免的小差异导致了不同的结果,
那就是结果具有不可避免的不确定性。
回复

使用道具 举报

     
发表于 2022-8-8 05:54 | 显示全部楼层
Tring 发表于 2022-8-8 05:51
可是对于玩家来说是没有办法避免小差异的。
所以从玩家角度来说,不可避免的小差异导致了不同的结果,
那 ...

你想怎么定义是你的自由嘛
但是大家说的物理引擎的确定性说的不是这个

这个话题可以就此打住,也没啥必要

—— 来自 S1Fun
回复

使用道具 举报

 楼主| 发表于 2022-8-8 12:04 | 显示全部楼层
moonmagian 发表于 2022-8-8 03:33
正常设计的游戏都不会设计出卡0.001的判定,在知道会有0.001的误差的情况下,游戏机制上容错的范围会做在10 ...

那麻烦把正常设计的代码写出来。
回复

使用道具 举报

 楼主| 发表于 2022-8-8 12:14 | 显示全部楼层
GuardHei 发表于 2022-8-8 03:32
你把格子弄大一点不就好了,全场景同比缩放
这就是个小数值下精度问题,和像素风有什么关系。再说玩家操作 ...

对的,和像素风没关系,再想想4k仍是像素,还是可以出现类似的情况,只是像素风会更容易看出来,比如攻击范围是一格,明明站在同一格,有时能打中,有时打不中,就差那0.001。你可以欺骗玩家,欺骗自己,实际也很难辨认出来,但不能改变烂这个本质……
回复

使用道具 举报

     
发表于 2022-8-8 22:52 | 显示全部楼层
那设置成Pixel Perfect岂不是会出现相同的画面不同结果的情况
这样要不考虑针对自己的游戏手写简单的物理引擎比较好吧
像N+那样
回复

使用道具 举报

     
发表于 2022-8-8 23:49 来自手机 | 显示全部楼层
你的判定只要画得比动画或者元素大就行了,
大多数人不会指责动画看上去还有一点空隙的时候有时hitbox碰上有时碰不上的问题,
不是说这里没有值得研究的,
而是你动手开始做demo就知道初学者大家的简易物理引擎都是一坨什么东西了,能糊弄过去的都不是问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-14 19:40 , Processed in 0.084019 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表