没有人鼓掌,也没有人表态。
不是因为被说服了,是因为听不太懂,免费怎么赚钱?花钱买加速有人愿意买吗?抽卡这个东西真的有人上瘾?
这些问题他们想不明白。
但没有人提出反对。
从做外挂到现在,陈锐说的每一件事最后都是对的。
他说v2.0要卖三十块,大家觉得贵,卖爆了,他说v3.0要卖五十块,大家觉得疯了,更爆了。
他说竞品会死一大片只有自己能活,竞品真的死了。
这个人的判断,跟着走就对了。
王磊说,你说怎么做就怎么做。
会开完了,活就开始了。
王磊当天晚上就开始搭服务端的基础框架。
Java,tomcat,mySqL。三件套。
他在白板上画了一张架构图——前端请求通过http发到tomcat服务器,tomcat调用业务逻辑层处理数据,数据存在mySqL里,处理完返回htmL页面给浏览器。
简单,直接,没有花里胡哨的东西。
数据库先建五张核心表。王磊跟林啸说,玩家表、城池表、武将表、兵力表、战报表,字段我尽快设计好,你再开始写数据访问层。
我Java不太熟……
你c写得好,Java语法比c简单,看两天文档就能上手,先写数据库的增删改查,最基础的,不难。
林啸没再说什么,打开电脑,开始翻Java教程。
赵鑫那边也没闲着。他开始画页面原型,用最简单的htmL表格布局——03年的网页开发没有什么cSS框架,没有bootstrap,没有Vue,就是table套table,写起来土得掉渣,但管用。
一个游戏主界面的草图出来了:上面是资源栏,显示粮食木材铁矿铜钱的数量。
中间是城池的俯视图,格子状的,每个格子可以放一个建筑,左边是功能菜单,右边是消息栏。
丑吗?
有点丑。
但问题不大,这个时代网游还没存在审美,传奇不丑吗?
周然那边在疯狂输出。
他的文档速度快得吓人,一天能写七八千字,魏蜀吴三个势力的核心武将名单、属性设计、技能描述、背景故事,一份一份地往外蹦。
张飞——武力96,智力32,统率78,政治15。技能:万夫莫敌,进入战斗时,己方士气提升20%。背景:燕人,屠户出身,性如烈火……
诸葛亮——武力28,智力99,统率92,政治95。技能:空城之计,守城战中敌方攻击力降低30%……
他写得投入,有时候写着写着自己笑起来,或者摇头叹气——觉得哪个武将的属性不对,推翻重来。
吕布武力该给多少?他问陈锐。
100。
满分?
满分。武力值天花板就是吕布,这个没争议。
那关羽呢?
97。
为什么不是98?
差不多就行,后期可以调整数值。
周然想了想,觉得有道理,改了。
…………
七月底,北京热得像蒸笼。
两间屋子里六个人,八台电脑,两台电风扇,每天下午两点到四点是最难熬的时候,太阳从南面窗户直射进来,窗帘拉上也挡不住。
张鹏每天下午搬一袋冰棍上来,小卖部一块钱一根的老冰棍,绿豆口味的,化得快,吃的时候得赶紧,不然滴一桌子水。
大家就这么泡着。
早上九点到,晚上十点走,中间吃两顿外卖,喝几瓶水,啃几根冰棍,其余时间全在干活。
王磊和林啸写服务端,赵鑫画页面,周然做内容,张鹏处理杂务顺便维护外挂那边的客服。
陈锐什么都不写,什么都不画。
他的工作是想数值怎么平衡,一个五级兵营每分钟产出多少兵,一个玩家从建城到能打第一仗需要多久,加速道具的折算比例是多少,VIp月卡每天送多少资源才能让人觉得值但又不会破坏平衡。
这些数字之间的关系牵一发动全身,调一个参数可能整盘经济就崩了。
前世在游戏公司干了十几年数值策划,他比任何人都清楚这个道理。
数值是游戏的核心骨架,玩法是皮肉,美术是衣服,骨架歪了,穿什么衣服都没用。
战力数值一旦完全崩盘,这个游戏就废了。
他每天坐在小屋子里,面前一沓草稿纸,一支笔,一个计算器,从早算到晚。
八月份,开发进入正轨。
王磊搭好了服务端的基础架构,跑通了第一个完整的请求链路。
浏览器发一个建造粮仓的请求,服务器接到之后在数据库里创建一条建筑记录,设一个倒计时,时间到了自动更新状态,然后返回一个页面告诉你粮仓建好了。
就这么一个最简单的流程,从动手到跑通,花了整整十天。
不是王磊能力不行,是要处理的东西太多。
请求怎么验证身份,数据库表之间的关联怎么设计,倒计时的定时任务怎么跑,并发的时候数据会不会冲突。
每一个环节都得想清楚再写,不能图快,基础架构一旦埋了坑,后面推倒重来的代价是现在的十倍。
王磊很清楚这一点。
他写代码有个习惯,写完一个模块一定要反复测,自己跑一遍,再让林啸跑一遍,确认没问题了才往下走。
有时候一段代码他反复改了三四版,功能一样,但代码结构更合理了,注释也补全了。
你这样太慢了吧?林啸有一次问他。
快有什么用?写一堆bug后面花三倍时间修?
林啸不说话了。
他来这个团队之前写的是外挂代码,逆向工程讲究的是快和准,找到内存地址一把改了就行,不需要考虑什么代码规范和维护性。
转到游戏服务端之后,王磊教他的第一件事就是,你写的代码不是给自己看的,是给半年后的自己和别人看的。
林啸适应得比预想中快。
他底层功夫确实好,指针、内存、网络协议这些东西是刻在脑子里的,换一门语言只是换一层皮。
Java的语法他三天就上手了,一周之后开始独立写模块,两周之后王磊已经敢把一些不太核心的功能交给他单独做了。
第一个交给他的模块是资源系统。
四种资源——粮食、木材、铁矿、铜钱,每种资源的产出跟资源田等级挂钩,每秒产出多少、上限是多少、被掠夺的时候扣多少,全是数值计算。
这种活对他来说不难,跟以前拆封包算偏移量差不多,换了个场景而已。
难的部分在数据库。
你这个SqL写的什么东西?王磊看了他的代码,皱眉,每次计算资源都查一遍数据库?一个服务器五千人,每个人四种资源,每秒都在产出,你这样写数据库直接给你跑死。
那怎么办?
缓存。资源数据加载到内存里,定时批量写回数据库,不要每次都查。读写分离,这是基本功。
林啸改了两天,改完之后性能提升了十几倍。
他开始理解为什么王磊要他转后端,不是因为找不到别人,是因为他对底层的理解能帮他写出更高效的代码。
做外挂的时候天天跟内存打交道,现在做游戏服务端还是跟内存打交道,只不过以前是偷别人的数据,现在是管自己的数据。
殊途同归。
赵鑫的前端推进得很快,因为他主打一个执行,不犟。
陈锐说界面先用表格布局,他就用表格,说资源栏放在顶部,他就放顶部,说颜色先别管,功能跑通了再调,他就全用默认的灰白色。
两周时间,主界面、建造界面、兵营界面、武将列表界面、地图界面,五个核心页面的框架全出来了。
丑得一言难尽。
灰色的表格边框,黑色的宋体字,建筑图标是从网上找的免费素材,大小不一,风格不统一,有的是卡通的,有的是写实的,放在一起像拼贴画。
地图更惨。九州大地的轮廓是赵鑫照着一张三国地图用htmL的div标签拼出来的,格子状的,每个格子代表一块地,点进去能看到归属和坐标。
这地图……周然看了一眼,欲言又止。
先这样,能用就行。陈锐说。
能用是能用,但你确定有人愿意看着这个东西玩?
现在不是看的阶段,是跑通的阶段。等功能全部跑通了,数值平衡了,玩法验证了,再找人做美术。好看的壳子一个月就能套上去,但好玩的核心得花半年打磨,先后顺序不能反。
周然不说话了。
他是搞内容的,对视觉有天然的敏感,看着这些粗糙的页面心里不舒服。