【问题标题】:How to make big game run more smoothly?如何让大型游戏运行更流畅?
【发布时间】:2012-02-16 13:52:06
【问题描述】:

我正在使用 Flash CS5 开发 ipad 游戏。当我在 Flash 或 Web 浏览器中运行它时,它运行得非常顺利,但是当我将它发布到 ipa 文件并在我自己的 ipad 上运行它时,它变得非常非常慢。由于我的游戏有很多阶段和角色,符号数量可能多达50多个。这使得flash文件超过100mb(但ipa只有11mb)所有符号都在第一帧中导出。

因此,我有一些问题想了解:

1)如果我使用预加载器并导出第 2 帧中的符号,我的游戏会运行得更流畅吗?当游戏加载足够时,是一个预加载器吗?还是每个游戏场景都需要?

2) 用 Flash 开发的大型游戏是否必须遵循其他技术才能在低配置设备上运行?

3) 为什么其他大型游戏的角色和背景比我的多很多,却能运行得如此流畅?

非常感谢您的帮助^^

【问题讨论】:

    标签: iphone ios flash flash-cs5


    【解决方案1】:

    1) 预加载器所做的就是向您的用户显示正在发生的事情,直到游戏开始。不会影响游戏性能。

    2) 是的:您必须优化每个计算和每个资产,以实现较小的内存占用和快速的性能。开始here

    3) 因为他们在 2) 上花了很多时间

    附带说明:最好有一个主游戏循环,并在单个渲染步骤之前完成游戏逻辑中的所有计算,而不是拥有大量独立的时间线。在渲染步骤中,您可以排除和/或最小化对看不见或不完全可见的对象的所有努力。

    【讨论】:

    • thx u ^^ 你能解释一下在大型游戏的每个场景中预加载器的工作是什么,因为游戏开始时所有符号都已经加载了吗?这是我遇到的最大困惑。
    • 您不会在每个场景中都放置预加载器。您只需要它一次 - 显示直到游戏完全加载。老实说:我什至不能肯定单文件预加载器可以在 iOS 上运行。到目前为止,我不能说我见过;通常只是启动画面。
    • 哦,对不起,我把你的评论弄错了:“大”游戏可能会加载视频、地图、纹理、游戏数据。它们通常是在 Cocoa 中完成的。
    • 那和Flash完全不同吗?我不能只在 Flash 场景的开头加载地图和纹理吗? ?.?
    • 不,您只是无法使用 Flash 加载可运行的 SWF。您可以加载任意数量的数据。
    【解决方案2】:

    需要注意的几点:

    • 升级到 Flash CS5.5
    • 使用 flashplayer 11.0
    • 使用 AIR3.1 SDK
    • 使用“GPU”(而非 CPU)发布
    • Object pooling!
    • 尝试使用尽可能多的位图,矢量“更重”。
    • 'cacheAsBitmap' 仅适用于沿 x / y 轴移动的对象
    • Alpha 透明胶片会占用您的 CPU
    • 我提到Object pooling了吗?
    • 将 FPS 监视器连接到您的应用,以便您跟踪帧率下降情况。

    【讨论】:

    • 非常感谢!这对我真的很有帮助:D 如果你能想到任何其他提示,请告诉我,谢谢 ^^
    【解决方案3】:

    帮自己一个忙,放弃 Flash。用 Objective C / C / C++ 编写你的游戏

    就连 Adob​​e 和 Microsoft 都在为移动设备放弃 Flash。

    顺便说一句,我不讨厌 Flash - 自 FutureSplash 以来我一直是“Flash 开发人员”,并且仍然在适当的情况下使用 Flash IDE,但在针对移动设备时不使用。

    【讨论】:

    • Adobe 放弃 Flash?当然他们放弃了对移动 Flash 播放器的支持,但他们肯定不会排除应用程序/游戏开发。也许用于 web 开发的 flash 不像以前那么流行了。但 flash(air)仍然是网络和移动游戏开发的第一选择。我认为 Flash 中的移动游戏开发在未来几年甚至会增长。
    • OP 正在谈论为 ipad/iphone 创建一个游戏作为 ipa 而不是桌面网络使用。不可否认的事实是,Adobe 和微软已经放弃了 Flash 作为移动设备的可行选择。不适用于网络(尚未),但绝对适用于手机。是的,Flash 仍然是桌面设备网页游戏的最佳选择,但对于手机游戏来说,这是一个非常糟糕的选择,除非游戏很简单(即不是 OP 所说的游戏类型)。
    • 我不是在谈论网络,我在谈论移动。他们绝对没有放弃移动设备的闪存。如果我没记错的话,他们越来越多地将闪存用于多平台使用,而移动设备是其中的重要组成部分,因此对 AIR 进行了更新。
    • 在你提到网络之前,我没有提到网络。我也在说手机。 Flash 是旧的慢速技术,永远不会与 C 变体中的本机编码竞争。这个线程是关于性能的。如果性能是一个问题,请忘记 Flash。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多