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