网络播放器流处理 (Web Player Streaming) 对于为终端用户提供 出色的游戏体验来说至关重要。网络游戏背后的理念是用户几乎可马上查看内容,尽快开始玩游戏,而不是长时间等进度条。这点很容易实现,说明如下。
该部分将重点讲述向在线游戏门户发布游戏的内容。流对所有内容都有用,可轻松应用到许多其他情况。
在线游戏门户希望一些形式的游戏可以真正从下载完 1MB 数据后开始。如果无法做到,门户接受游戏内容的可能性会大大降低。从用户的角度看,游戏须尽快开始。否则就是在浪费他的时间,他还有可能关闭窗口。
在 128KB 的网线速率下,每秒可下载 16KB 或每分钟下载 1MB。这是在线门户的低端宽带目标。
游戏会优化设置为流,如:
要注意的关键点在于考虑网速较慢的用户的等待时间。永远不要让用户等。
如果目前的网络播放器为 10 MB,那么也不要惊慌。看起来优化的难度很大,实际上只要少许努力,通常很容易就可以让游戏具有这种结构。将以上每个步骤看作一个单独的场景。如果游戏制作完成,就已经做完了最难的部分。根据该加载理念,构建一些场景轻而易举!
如果打开控制台日志(桌面平台 (Desktop Platforms)));构建后或构建期间点击 菜单 OSX),可看到每个单独场景文件的大小。控制台会显示类似下文的内容:
按钮位于控制台 (Console) 窗口(***Player size statistics*** Level 0 'Main Menu' uses 95.0 KB compressed. Level 1 'Character Builder' uses 111.5 KB compressed. Level 2 'Level 1' uses 592.0 KB compressed. Level 3 'Level 2' uses 2.2 MB compressed. Level 4 'Level 3' uses 2.3 MB compressed. Total compressed size 5.3 MB. Total decompressed size 9.9 MB.
该游戏可以使用更多优化!如需更多信息,建议阅读降低文件大小页面
Unity 中的流基于关卡,由一个简单的工作流程来进行设置。Unity 在内部执行跟踪资源并在压缩数据文件中以最佳方式组织起来、根据在第一个场景中使用的顺序排列等所有辛苦工作。用户只需确保构建设置 (Build Settings) 中的第一个关卡使用尽可能少的资源。这自然是针对“菜单关卡 (menu level)”。为了获得较佳的网络体验,需要确保玩家要玩的第一个真正游戏关卡也很小。
为了在 Unity 中使用流,请在构建设置 (Build Settings) 中选择网络播放器流 (Web Player Streamed)。之后,第一个关卡使用的所有资源一旦加载完成,内容将自动开始。尝试将“菜单关卡 (menu level)” 的大小保持在 50-100 KB。流会继续快速加载,同时解压。构建期间/之后,查看控制台可看到大小。
可以按关卡查看流的进度,关卡激活时将进行加载。使用 GetStreamProgressForLevel 显示进度条,使用 CanStreamedLevelBeLoaded 检查是否所有数据可加载到特定关卡。
当然,流的形式是线形的,在大部分情况下与游戏的工作方式相匹配。有时,这样还不够。Unity 还提供 API,以便使用 WWW 类手动加载 .unity3d 文件。视频和音频也可以进行流式处理,几乎可立即开始播放,无需先要求下载影片。最后,就像游戏可能依赖的任何纹理或二进制数据一样,纹理可通过 WWW 类轻松下载。
Page last updated: 2013-07-01