《游戏之旅-我的编程感悟》读书笔记

时间:2022-12-28 12:11:43

第10章.调试

【开发期】

  • 使用Assert(断言)令程序崩溃以提前发现错误;对断言分级,并可选择关掉部分非常影响效率的部分;
  • 将释放的指针置为空,空指针更容易把错误表现出来;
  • 加入录像模块(记录输入数据到文件中),出错时便于重现;
  • 使用分级log日志,并跟踪代码运行流程,便于定位。

【已发行】

  • 打开可以打开的Assert;
  • 使用第三方调试器。

第13章.开发方法

【失败经验】

  • 过多的工作压在同一人身上;
  • 过分的弹性工作制(弹性不代表无计划);
  • 没玩没了的变化,没完没了的返工;
  • 没有及时的测试,如果Bug太多,不如推倒重来做更好的设计;
  • 项目主导严重偏向某个职位(市场策划程序美术应多沟通,共同努力)。

【成功经验】

  • 引擎和实现分离(客户端应分出一人独立负责图像底层;服务端应一人独立负责网络和序列化,而不去管任何的游戏逻辑);
  • 结对编程-有经验水准差不多的两人(一台电脑,周期性打乱配对互换位置,提高效率提升能力,每天6小时即可);
  • 随时方便的测试,不要吝啬为实现写测试代码;应自动化,可录像回放。
  • 尽早发现结构上的问题并及早重构;若发现太晚,及时冻结新功能加入,裁剪内容,保证现有东西不出错;
  • 必须使用SVN/Git进行版本控制,并分为Realse/Dev两个分支;
  • 使用脚本语言实现客户端UI,服务端剧情/任务等容易变动的部分。

【项目总结】

  • 游戏是策划美术程序(细分为引擎、工具、实现)等合作开发的,存在依赖性,同时开展这些工作有时欲速则不达;
  • 策划先写案子,然后美术依此完成场景、人物甚至界面,程序再开始;若策划/美术需改动,记录整理后放入下一版本;
    或者 程序制作和具体设定无关的东西,美术填资源,策划按程序可实现功能做案子;不尽如意,迭代下一版本;
  • 许多工具开发初期都可先省略,如地图编辑器可先用PS图层暂代,维护期再做亦可;
  • 策划案完成后,先不考虑娱乐性,而应从平衡性考虑,把可删除的都删掉,以此基点,实现后再考虑扩展;
  • 简洁的界面和简单的控制是受欢迎的,能尽快上手,是促使玩家尽快投入游戏的关键;应反复考虑:
    • 鼠标点空地要做什么操作,点敌人会有何反应,点不可达区域怎样,点在物品、NPC上怎样;
    • 左键和右键点的区别,普通攻击如何发出,魔法怎样发出;
    • 游戏对玩家的操作会不会和玩家所想的有差异;
  • 要增强玩家与游戏交互的临场感;避免人物走路打滑,角色与场景分离,攻击敌人反馈不真实;
    • 比如攻击到强壮的敌人、攻击被格挡时,使玩家角色受到震荡后退,并不能进行下一次攻击。