本节书摘来异步社区《游戏编程模式》一书中的第1章,第1.5节,作者: 【美】robert nystrom (尼斯卓姆) 译者: 赵卫兵 , 许新星 , 姜召阳 , 陈侃 , 屈光辉 , 郑炯彬 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。
开发中我们有几个因素需要考虑。
1.我们想获得一个良好的架构,这样在项目的生命周期中便会更容易理解代码。
2.我们希望获得快速的运行时性能。
3.我们希望快速完成今天的功能。
我认为一个有趣的地方是这些都是关于某种速度:我们的长期开发速度,游戏的执行速度,以及我们短期内的开发速度。
这些目标至少部分是相冲突的。好的架构从长远来看,改进了生产力,但维护一个良好的架构就意味着每一个变化都需要更多的努力来保持代码的干净。
最快编写的代码实现却很少是运行最快的。相反,优化需要消耗工程时间。一旦完成,也会使代码库僵化:高度优化过的代码缺乏灵活性,很难改变。
完成今日的工作并担心明天的一切总伴随着压力。但是,如果我们尽可能快的完成功能,我们的代码库就会充满了补丁、bug和不一致的混乱,会一点点地消磨掉我们未来的生产力。
这里没有简单的答案,只有权衡。从我收到的电子邮件中,看得出来,这让很多人头疼。特别是对于想做一个游戏的新手们来说,听到这样说挺恐吓人的,“没有正确答案,只是错误口味不同”。
你绝对没听到过某人在挖掘水沟上的卓越事迹。也许你有,我却没有研究过这个领域。据我所知,那里也许有热衷于水沟挖掘的爱好者,水沟挖掘准则,并且有一个自己的文化圈子。我们凭什么去评判呢?
但是,对于我而言,这令人兴奋!看看人们从事致力的领域,在这中心,你总能找到一组相互交织的约束。毕竟,如果有一个简单的答案,每个人都会这么做。在一周内便可掌握的领域最终是无聊的。你不会接触到在别人的杰出职业生涯中所挖掘出的东西。
对于我而言,这和游戏本身有很多共同点。就像国际象棋永远无法掌握,因为它是如此完美的平衡。这意味着你可以穷尽一生来探索可行的战略空间。设计不当的游戏如果用一个稳赢的战术一遍遍玩,会让你厌倦并退出。