我目前正在开发一个相当大的、大量 UI 的 Flash 游戏。我们的团队已经为此工作了大约 9 个月。我们之前都没有任何使用 Flash 的经验,因此我们在此期间不断改进我们的工作流程。但是,我们仍然觉得我们现在做的不是最优的,尤其是程序员和艺术家之间的接口,所以我想知道其他团队是如何工作的。
理想的工作流程应满足以下要求:
1.重用的UI元素只定义一次
这意味着,如果我们想要更改字体或按钮样式,我们不想遍历所有菜单并手动更改它们。我们希望它们在一个中心位置定义,并且只从那里引用。如果资产不仅在编辑时而且在运行时共享,即它们只下载一次,则可获得奖励积分。
2. 一切按需加载
目前,我们有两个不同的加载步骤:首先,我们加载菜单库。完成后,玩家已经可以与所有菜单进行交互。然后,我们开始加载实际的游戏数据。但是,初始加载时间仍然太长,导致我们失去了许多潜在玩家。我们真正想做的是只加载主菜单所需的最低限度的内容,然后仅在玩家尝试实际打开相应菜单时加载其他所有内容。Zuma Blitz在这方面做得非常好。
3. 艺术家可以在没有程序员帮助的情况下进行细微的修改
如果要在不改变实际功能的情况下重新设计菜单,那么艺术家应该可以在 Flash CS6 中自行完成。这需要在艺术和代码之间建立清晰的界面,并且艺术家应该可以在将更改发送给编码人员之前对其进行测试和调试。
-
我们当前的工作流程如下所示:艺术家将屏幕构建为 Flash CS6 中的 MovieClip,然后将其导出为 SWF。在代码方面,从屏幕 SWF 加载 MovieClip,并将它们用作我们基于 PureMVC 的系统中的 View 类。中介者通过它们的实例名称访问视图中的文本字段等元素。
这很容易出错,因为没有中心位置来定义接口(即实例名称)。编码员和艺术家之间需要大量的通信开销。此外,它还会在代码和影片剪辑的内部结构之间创建依赖关系。当艺术家想要对其应用某些效果时,他们无法将文本字段附加到不同的子影片剪辑。
我们正在试验一个基于事件的界面,该界面需要艺术家向影片剪辑添加几行代码。这比以前更不容易出错和相互依赖,但它仍然不能完全满足(3),除非我们编写额外的测试和调试工具。这一定是一个普遍的问题,我很难想象没有更简单的方法。
对于 (2),我们还开始构建一个自制的解决方案,但同样,这是一项常见的任务,必须有一些我们可以使用的东西。
那么,经验丰富的 Flash 开发人员如何管理如此大的项目呢?