这些数字之间的关系牵一发动全身,调一个参数可能整盘经济就崩了。
前世在游戏公司干了十几年数值策划,他比任何人都清楚这个道理。
数值是游戏的核心骨架,玩法是皮肉,美术是衣服,骨架歪了,穿什么衣服都没用。
战力数值一旦完全崩盘,这个游戏就废了。
他每天坐在小屋子里,面前一沓草稿纸,一支笔,一个计算器,从早算到晚。
八月份,开发进入正轨。
王磊搭好了服务端的基础架构,跑通了第一个完整的请求链路。
浏览器发一个建造粮仓的请求,服务器接到之后在数据库里创建一条建筑记录,设一个倒计时,时间到了自动更新状态,然后返回一个页面告诉你粮仓建好了。
就这么一个最简单的流程,从动手到跑通,花了整整十天。
不是王磊能力不行,是要处理的东西太多。
请求怎么验证身份,数据库表之间的关联怎么设计,倒计时的定时任务怎么跑,并发的时候数据会不会冲突。
每一个环节都得想清楚再写,不能图快,基础架构一旦埋了坑,后面推倒重来的代价是现在的十倍。
王磊很清楚这一点。
他写代码有个习惯,写完一个模块一定要反复测,自己跑一遍,再让林啸跑一遍,确认没问题了才往下走。
有时候一段代码他反复改了三四版,功能一样,但代码结构更合理了,注释也补全了。
你这样太慢了吧?林啸有一次问他。
快有什么用?写一堆bug后面花三倍时间修?
林啸不说话了。
他来这个团队之前写的是外挂代码,逆向工程讲究的是快和准,找到内存地址一把改了就行,不需要考虑什么代码规范和维护性。
转到游戏服务端之后,王磊教他的第一件事就是,你写的代码不是给自己看的,是给半年后的自己和别人看的。
林啸适应得比预想中快。
他底层功夫确实好,指针、内存、网络协议这些东西是刻在脑子里的,换一门语言只是换一层皮。
Java的语法他三天就上手了,一周之后开始独立写模块,两周之后王磊已经敢把一些不太核心的功能交给他单独做了。
第一个交给他的模块是资源系统。
四种资源——粮食、木材、铁矿、铜钱,每种资源的产出跟资源田等级挂钩,每秒产出多少、上限是多少、被掠夺的时候扣多少,全是数值计算。
这种活对他来说不难,跟以前拆封包算偏移量差不多,换了个场景而已。
难的部分在数据库。
你这个SQL写的什么东西?王磊看了他的代码,皱眉,每次计算资源都查一遍数据库?一个服务器五千人,每个人四种资源,每秒都在产出,你这样写数据库直接给你跑死。
那怎么办?
缓存。资源数据加载到内存里,定时批量写回数据库,不要每次都查。读写分离,这是基本功。
林啸改了两天,改完之后性能提升了十几倍。
他开始理解为什么王磊要他转后端,不是因为找不到别人,是因为他对底层的理解能帮他写出更高效的代码。
做外挂的时候天天跟内存打交道,现在做游戏服务端还是跟内存打交道,只不过以前是偷别人的数据,现在是管自己的数据。
殊途同归。
赵鑫的前端推进得很快,因为他主打一个执行,不犟。
陈锐说界面先用表格布局,他就用表格,说资源栏放在顶部,他就放顶部,说颜色先别管,功能跑通了再调,他就全用默认的灰白色。
两周时间,主界面、建造界面、兵营界面、武将列表界面、地图界面,五个核心页面的框架全出来了。
丑得一言难尽。
灰色的表格边框,黑色的宋体字,建筑图标是从网上找的免费素材,大小不一,风格不统一,有的是卡通的,有的是写实的,放在一起像拼贴画。
地图更惨。九州大地的轮廓是赵鑫照着一张三国地图用HTML的div标签拼出来的,格子状的,每个格子代表一块地,点进去能看到归属和坐标。
这地图……周然看了一眼,欲言又止。
先这样,能用就行。陈锐说。
能用是能用,但你确定有人愿意看着这个东西玩?
现在不是看的阶段,是跑通的阶段。等功能全部跑通了,数值平衡了,玩法验证了,再找人做美术。好看的壳子一个月就能套上去,但好玩的核心得花半年打磨,先后顺序不能反。
周然不说话了。
他是搞内容的,对视觉有天然的敏感,看着这些粗糙的页面心里不舒服。

