星际争霸之路的艰难时刻 - 荣誉准则

主要观点:作者在写魔兽早期发展,最近一篇博客促使其开始疯狂撰写关于星际争霸开发及编写更可靠游戏代码的三部分二十多页文章,后文将陆续发布。介绍了星际争霸开发过程中的诸多问题,如频繁崩溃、开发时间紧张、团队结构变化、代码架构缺陷(如大量使用双链表导致频繁崩溃等)、保存游戏相关问题及路径寻找困难等。
关键信息:

  • 星际争霸开发历经两年半,发布前有一年的紧张期,游戏充满漏洞,频繁崩溃,发布后仍需持续补丁。
  • 最初计划 1996 年圣诞节发布,后因各种原因多次延期。
  • 开发团队规模扩大,加入新程序员,但领导能力不足,导致新成员缺乏指导。
  • 代码架构方面,从 C 语言切换到 C++,大量使用类继承和复杂的类定义,存在诸多问题。
  • 双链表在星际争霸中广泛用于跟踪具有共享行为的单位,但存在手动维护、容易出错等问题。
  • 保存游戏时,星际争霸单位包含大量指针,处理起来比魔兽更复杂。
  • 从顶视图到等距视图的转换给路径寻找带来困难,多亏 Brian Fitzgerald 解决。
    重要细节:
  • 星际争霸最初设想为一年开发周期的游戏,后因各种情况多次调整。
  • 开发过程中,Diablo 项目需求增加,导致星际争霸开发人员被抽调。
  • 作者回到星际争霸开发时,发现很多引擎组件被丢弃重写。
  • 文中详细描述了 CUnit 类的复杂定义及相关问题。
  • 开发团队为赶进度长时间工作,甚至出现 40 - 48 小时连续编程的情况。
  • 作者主要负责修复 bug,曾实现语音聊天功能但因技术问题放弃。
  • 作者强烈主张使用 Storm.DLL 中的双链表,但未被采纳,导致后续数月的困扰。
阅读 10
0 条评论