在我制作的最新游戏中,您可以任意切片2D对象,如以下gif所示:
您可以将其连续切成数百或数千个碎片。这不会造成很大的延迟,因为它们始终处于休眠的物理状态,但是当您使它们移动时会出现问题。
我不太确定如何处理它,因此切碎不会有太多碎石。我真的不想在一段时间后删除它们;我不喜欢这样,如果您过了一会儿又将其切碎,它会随机消失。
如何清除玩家创建的过多碎石?
在我制作的最新游戏中,您可以任意切片2D对象,如以下gif所示:
您可以将其连续切成数百或数千个碎片。这不会造成很大的延迟,因为它们始终处于休眠的物理状态,但是当您使它们移动时会出现问题。
我不太确定如何处理它,因此切碎不会有太多碎石。我真的不想在一段时间后删除它们;我不喜欢这样,如果您过了一会儿又将其切碎,它会随机消失。
如何清除玩家创建的过多碎石?
Answers:
首先,该游戏机制看起来可能非常有趣,因此恭喜您考虑!这里有两个简单的解决方案,可以单独使用或一起使用来解决此特定问题:
保持真正不会阻碍玩家或对环境产生任何实际影响的微小碰撞并没有多大意义。计算额外的冲突逻辑根本不值得,因此请删除这些碎片或删除它们之间的碰撞。
如果您可以将每个障碍物切成一堆糊糊,那么无限制的切割可能会使您的难题变得非常简单。给玩家一些削减的玩法(或使其随时间慢慢充电),除了消除处理一千个碎片的麻烦之外,您可能会发现它使您的难题更具挑战性。
几百个移动物体应该不是问题。但是,可能有数百个碰撞对象。这将需要一些测试,但是我相信您遇到的瓶颈是碰撞。
顺便说一句,我们在谈论多少个对象?什么平台?手机游戏的一百个对象与网页游戏的一百个对象或桌面游戏的一百个对象不同。
测试相同的游戏,但禁用剪切对象之间的碰撞,看看是否让它滞后于相似数量的对象。如果是这种情况,则意味着大量的物体是造成麻烦的原因。否则,冲突就是问题所在。
这将决定您将如何提高性能的决定。并非以下所有想法都适用,无论如何您都需要进行测试。
我不会谈论针对远离播放器的大量对象进行优化的问题,因为与这些对象进行交互时似乎会遇到麻烦。
使它们移动时会出现问题。
如果在与对象进行交互时发生问题,则尚不清楚如何删除不可见的对象将解决该问题……但是,我认为这可能会有所帮助。
我只是说,如果远离玩家的物体出了问题,您可以先从较小的关卡开始,或者考虑将游戏划分为多个小块,然后根据玩家所处的位置进行加载和卸载。
我相信,在清理瓦砾时,首先要做的是去除超出范围的物体。例如,一块掉到一个坑里。如果没有办法让玩家能够到达那里看到它,那么就没有理由保持它。
我将回到这一点。
当您使用锯,斧头或类似工具切割木材时,会丢失材料(锯末,刨花等)。即使用激光切割,激光也会燃烧一些木材。另外,对于不是木头的东西,通常会在切口周围产生变形,碎裂等。
我的意思是削减并不完美,并且会损失一些材料。您可以在游戏中对其进行建模。那个切开红色东西的魔力有厚度。从物体上去除该厚度(如果感到内gui,请添加粒子效果)。
这意味着您将无法切割任何小于该厚度的东西,实际上,尝试将其从游戏中删除。那很好!这意味着存在的瓦砾数量是一个上限,并且在游戏中有机械上健全的方法可以清除它。
如果冲突是问题,这样做会更好。
一旦物体太小,它所具有的不同角度的细节就不再那么重要了。您可能会更改为不太准确的碰撞机制。例如,您可以使用圆形对撞机。
您甚至可以对待较小的对象而不会相互碰撞;仅考虑它们与代理对象(例如玩家的头像或AI控制的角色)之间的碰撞。
最后,很小的物体可能会变成灰尘(颗粒效应)。
如果冲突是问题,这样做会更好。
材料在压力下变形和破裂。如果最终得到的物体厚度很小,请将它们分解成较小的物体,以便它们可以利用上述解决方案。
我们可以假装它的厚度太小,当您击打它时会崩溃和破裂。
如果存在问题,则这将更好地工作。
许多游戏用来处理可能会影响性能的大量掉落的常见技巧是将掉落捆绑在一起。
您可以为彼此附近的小物体尝试类似的操作。让它们成为单个对象。但是,我并不是要把各个部分粘在一起。我的意思是创建一个对象来处理他们的物理问题。您仍然可以使用类似于粒子效果的技术来表示组成对象的各个片段。
你听说过风吗?现实世界中有风。
用风将小物体推开。
我知道它听起来很直观,因为这意味着小物体不能静止,至少不能立即静止。在做出判断之前,请先阅读以下内容。
您可以在小物体开始堆积之前或尽快使用 风将它们推开。如果您对小对象使用优化(例如将它们组合或消除它们之间的冲突),则效果更好。
此外,如果您可以用风将物品推入坑中或超出范围,则可以作为借口将物品移开。我告诉过你我要回到那个话题。即使您不这样做,它也可以作为删除离玩家太远的小物体的借口,只是假装在玩家不在的时候风将它们驱散了。
您可以在播放器不注视时删除一些对象,这是我的祝福。
除此之外,您现在有借口添加风,您可以添加风作为其他机制或游戏障碍的一部分。如果您愿意,甚至可以在叙事中加入风的精神,以保持事物的清洁。
注意:当需要清洁碎石时(虽然可以使用),不必一定要触发风,但可能会随机产生风。
一些烦人的海狸来了,偷了你的木头!
现在您有一个敌人类型!
另外,当然,它们会在您不看时清除木头。您甚至可以对其进行设计,以便再次看到一个海狸在一块曾经是一堆的木头旁边逃跑。这将为您留下难忘的瞬间,将解释为什么木头消失了,并立即解决您面临的一些性能问题。
选择的平台或工具存在限制,即使您开发游戏所需的时间和预算也有限制。你不能让现实的完美模拟,但。没有人可以。
每个开发人员都在目标平台和当时所施加的工具的限制范围内工作,最好的游戏必须权衡取舍,以使游戏变得有趣且引人入胜……即使这意味着现实主义程度较低,很多时候他们很有趣,因为他们不切实际。
让创造力摆脱这些限制。
虽然,您还可以通过选择对您的开发方便的现实部分,使游戏更加逼真。考虑到有时移除远离玩家的物体是制作有趣游戏的一部分成本。