工作

几个月没有更新了,这些天一直很头疼。

因为这个月底要首测,之前一直忙着搞登录,打包,构建,升级相关的东西。

网络模块又重新写了一遍,之前是开一个单独的线程,现在换成直接select的方式。

以前幻想实现了一套数据打包的方法,类似于google的protocol buffer,使用xml描述数据结构,生成相应的头文件和元信息,用来读写网络数据包和资源表格。这套东西后来就演变成了研发中心的tdr了,一般来说换成单独的项目组后可能会有更好的维护,事实却恰好相反。老大们都懒得写代码了,都是一帮没有经验的毕业生在搞。东西搞得很不完善,提一个需求过去一两个月都没人搞,真不知道他们都在干什么。公司大了,做事真的很没效率。

资源文件打包换成了TenVFS,这个相对于tdr来说要好用一些。不过还是有些bug,如果资源文件设置密码的话,会导致自动更新无法合并资源包,研发中心这些项目,都给人一种七拼八凑的感觉。跟他们人打交道真够焦头烂额,有乐于帮助的,有很装b的,一个简单的问题来回要很久。为什么程序员喜欢重造轮子,也许就是这个原因吧,自己写的东西,有问题自己解决,找别人真的很烦。

战斗系统还是有很多bug,感觉回合制游戏的战斗系统比即时的还要麻烦,不知道是设计的有问题,还是这个东西本身就存在这个复杂度。即时游戏划分成若干个阶段,比如吟唱,攻击,命中,每一个阶段都跟server有即时的发包回包,很清晰的时序逻辑。而回合游戏却要麻烦的多,开始回合战斗,每个玩家下达指令,服务器统一做计算,回包给所有客户端表现。客户端收到包以后是一个异步的过程,所有结果都已知,但是要单个表现技能,防御,冒血等,需要有一个翻译机制,关键是回合战斗有很多玩法,比如反击,反震,三连击等,很难找一个很统一的方式来处理所有这些问题。

战斗的设计上肯定有很多不完善之处,但总体感觉,这里本身就很复杂。

自动构建,打包是用perl写的,perl就像一把锐利的小刀,无坚不摧,用起来很爽,实在是程序员强大的必备工具。

感觉要把一件事情做好,都会经历一个痛苦疲惫的阶段,似乎是解决问题必须付出的代价。