大家好!我正在为我的项目Danger Parade进行性能优化,并试图应用适用于Game Maker的设计策略。另外,非常乐意听到其他开发者的经验:

  1. 游戏的核心是将角色升级为各种主题技能(这经常导致更多的射击)。
  2. 然后,根据修饰技能来增强这些主题,改变它们的行为(这经常会导致更多的视觉效果)。

对于弹击,我最初使用碰撞事件(Collision event)。然而,在晚游戏级别,以大量敌人和弹击为背景,这导致了一些重大延迟。 现在,我使用Collision函数,如instance_position或者instance_position_list来检测弹击或aoe攻击,同时每隔一些帧检查一次,而不是每一帧。 降低这些碰撞检查的频率有了极大的性能改善 那么在晚游戏级别,弹击数量的性能仍然高于我的喜好。 我曾考虑过使用自定义算法进行碰撞检测,但见过混杂的评论,表示Game Maker的引擎其本身正是够高性能的,只是使用它的方式正确起来。 因此我很感兴趣,其他开发者您是否使用Game Maker的内置函数/框架,还是自己实现了一个自定义解决方案? 还有关于任何编码模式您所follow的也有。

除此以外,一些技能有视觉效果。目前我处理这些问题是通过创建新的视觉效果对象。(例如,当您的dome能力恢复时,它会创建一些Dome对象以显示它的力量上升,或者当你获得护甲时它还会出现的盾牌效果)。这个确实增加了我每秒创建的对象数量。 我曾经尝试用绘图的方法代替创建对象,但最后我必须写一些自定义代码(而且以控制它来获取动画效果),并且我已经发现它比前者更难管理和支持,同时我也不清楚性能的性能增益有多大。 我很欢迎从其他开发者那里得到这类问题的解决方案。非常感谢您的任何反馈前。