程序员以架构和工具链优化Unity

本文为《程序员》原创文章,未经允许不得转载,更多精彩请订阅年《程序员》

曾经有这样的说法:游戏公司没法复制自己的成功。笔者认为这种看法有些片面,至少从技术层面看它不正确。每个项目都会积累经验,有了这些经验帮助,会更容易制作出成功的产品。本文接下来将从制定Unity3D开发架构和制作配套工具链两个方面,分享我的经验。

架构要点

我觉得架构的核心既不在于应用DRY(Don’tRpatYourslf)来精简代码,也不在于套用设计模式的23板斧来解耦合。当然这些很重要,也很有意义,但这些都是通往最终目标的手段或者有用的副产品。架构终极目的在于:以最低的成本对抗风险。

由于成本的限制,没有这样一发银弹,来满足关于架构的所有需求。在没有限制的情况下,如果能够获得无限的成本,那就可以完全对抗风险,成本包括金钱、人力等等。显然无论从资本的层面,还是实际项目的实行,这种奢望都不切实际。因此我们应将重心调整为:对已知和未知风险的预防,而不是期望拥有更多的成本。

由于架构与项目密切相关,项目的复杂度直接决定了架构的复杂度。要制作一个文字对话游戏,例如《生命线》,架构可以只考虑进度控制与文本信息的读取;如果要做成回合制的游戏,例如三消或养成类,则还需考虑丰富界面的表现效果以及某些特殊逻辑下的玩法;如果做成半回合制半实时的游戏,例如卡牌类游戏,则需要考虑对用户操作状态的阶段性控制;如果要做成实时类型的游戏,例如MOBA,则需要考虑多客户端的同步机制;如果要做成泛实时类型的游戏,例如MMORPG,则还需要考虑到半实时的网络同步,并处理各种由于大量数据引发的性能瓶颈。

架构更像是一门平衡的艺术。好架构不仅要能够应对已知风险,还要处理未知的挑战。最常见的就是,某些游戏有了新颖的玩法,需要引入到现有项目中。为了接入某些渠道,或者不同国家的版本,有时也需要做些定制化的改动,如人事变动当然也会引起项目的风险。未知的风险总会出现,而好的架构应能在多数情况下,给出一个可控的增额成本。

在项目的不同阶段,架构的使命也在发生改变。创建项目初期,开发效率被放在首位。凭借快速迭代的开发方式,可做出许多Dmo,展现给不同的人并听取反馈意见,从而改进。随着项目的进行,功能和模块需要量产时,易扩展和易维护逐渐变得重要起来。一方面,系统型的功能需要快速产出,例如商城、排行榜、聊天、好友等。另一方面,美术资源也需要有完善的更新机制,简单的UI改版,要能够实时预览。进入到项目的中后期,游戏运行效率低、某些模块有Bug等问题会逐渐得到重视,这时的架构要保证版本稳定。在这个阶段,需要花费大量时间对性能瓶颈进行优化,并规整各模块代码,以减少Bug。项目上线后,推出周期性活动和玩家数据反馈又成为架构新的







































北京的白癜风哪个比较好
治白癜风哈尔滨哪家医院好



转载请注明:http://www.jiaju1314.com/jbjj/jbjj/9253.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了