晚上好朋友们,依旧好久不见,最近几周好消息和坏消息都有。
首先是坏猫的神经问题基本痊愈,两个瞳孔已经恢复到一样大了,食欲也恢复正常。

坏消息是似乎感染了猫癣,一检查面积还蛮大的,不过猫癣本身也不是什么严重的问题甚至营养全面的情况下可以自愈,只算个有点麻烦要每天上药的小病,于是猫猫的问题算是结束了。
之后是开发进度,主角性能已经实现完毕,又做了两种敌人,之后大概会用换色和随机搭配一点盔甲模块让场面看起来不那么像克隆人战争。

本作大概会设置两个或三个难度,并且难度不会影响剧情和成就,这样我就可以在高难度下尽情堆怪了口牙。
关于敌人的部分,我希望玩家会面对有组织敌群,目前已经做完了剑盾兵和长矛兵的AI,当双方同时存在时长矛兵会跟随剑盾兵行动,并且如果长矛兵的数量够多也会有防空的分工。
剑盾兵会试图压缩玩家的行动空间,当受到数次攻击后盾牌破裂,变成行动速度更快攻击欲望更强的普通单手剑士兵。
接下来在做的是双手长剑,个人还是希望能尊重一定的史实剑术,于是双手剑毫不意外地成了一个比单手剑更敏捷攻击范围也更大的粪怪(
目前的想法是双手剑的基础攻击是向前迈步的下劈,玩家如果能在正确时机打出怒击(这个以后再讲,这里的算法我自己玩下来觉得有点不够直观,以后应该会优化)可以直接触发斩杀,但拼刀时机错误就会触发变招的横劈,并且此时玩家很大概率处于拼刀后摇里而无法躲开攻击。

还是多用手枪吧,欢迎来到17世纪,小子。
最后讲讲标题里说的模块化和解耦,原始需求是我希望能在玩家用近战或手枪击杀敌人时,给下一次使用另一种攻击附加一个增益效果,但眼下还没想好具体加什么就决定先在角色脚本里留一个空函数占位。
那么如何让玩家角色知道自己击杀呢,我第一时间想到的当然是在敌人脚本里写一个函数,死亡时通知玩家角色触发对应的增益函数。
好在我想这个事的时候正在朋友打游戏,有一个做架构相关工作的朋友跟我说你不要这么搞,你这是典型的强耦合,到时候两边关联起来之后再有改动会需要两个脚本一起改非常麻烦。
最后的实现方案是加一个全局的信号管理器,敌人侧只负责发出信号,玩家只负责接收信号,两个脚本不需要知道自己的信号发到哪里。而且这样测试起来也更简单,我可以用任意顺序去实现,当敌人脚本做好之后只要信号能发出就能视为测试通过并且去做下一件事。
顺着这个回想了一下自己以前的工作,从测试到项目经理再顺便做一些产品设计相关的事,虽然天天跟开发的同事也会聊开发思路,需求总结完决定先做哪里后做哪里,任务优先级和测试顺序这些,但没实际接触代码架构还是不知其所以然。当时最多能理解到的就是这部分接口写好了我可以测试,但也没想过为什么接口会预留在这里,还有为什么这里即使前端还没提交也可以先测试。
代码架构,很神奇吧。
总之先到这里吧,双手剑的敌人攻击动画还有一堆问题,在横板2D游戏里做长剑横斩这种透视变形有点超过自己的能力上限,不过总会做出来的。

另外,最近在玩风雨来记,感谢制作汉化的大佬,这大概会是本人今年玩到的后劲最大的作品,等打完之后再来写长评好了。
最后的最后,新作还要很久吗,先买一份旅居魔女吧,谢谢喵。