0%

Java游戏服务器成长之路——2016随笔总结

写在开头

Java游戏服务器成长之路的系列,已经很长时间没写了,不是不想写,而是这一年,基本都是在忙别的了,今天特地挤出时间,对我的2016年,做一个不留遗憾的总结。

2016的事件

不知不觉,又到了春节抢票的时候了,这两天除了盼着年终能发点奖金以外,就是盼着能买一张合适的火车票,今年是离家最久的一年,幸运的是,我成都的小房子要结房了,必须要我本人到场,这就能给我一个理由多请一周的假提前回去几天,很久没看到家人了,离家这么久,还是挺想念的。另外就是,盼着发年终奖了,毕竟工作了一年,也没什么存款,哎。。。

互联网泡沫破灭

这一年,相对于以往来说,是过得比较平淡的,去年,跳槽了,前年,毕业了,今年,既没跳槽也没毕业,也没有涨工资,哎……说起来,今年互联网行业的整体形势都不大好,有位做iOS的同学一年跳了三次槽,其中两次是公司做不下去黄掉的,好在我这个同学的基本功是没问题的,技术很扎实,要重新找个工作也不难,其实这既是我们这个职业的风险,也是这个职业的机遇,谁知道下一份工作,又会给我们的薪资提升多少个档次(这是一个跳槽比加薪来钱快的职业……),我们被称作程序猿,码农,IT男……话说回来,我们游戏行业也差不多,一夜之间,就听说好多游戏公司开始裁员,这一切都源于政府开始对互联网行业的整顿,互联网泡沫终究还是会破灭,从游戏行业来说,中国区所有的游戏想要上架应用市场,都需要申请游戏版号,而版号申请又需要一大堆资质,总之听公司领导说起来这个流程,是很麻烦的,通常办下来,至少需要半年时间,还不包括中间如果出现问题打回去重新调整的时间。国家还真的是说到做到,半年前,我们公司的游戏申请了版号,果然在半年后申请下来了……

公司每况愈下

国家这一举动,也确实是对不少中小游戏公司造成毁灭性的打击,半年前,我们公司开始裁员,裁掉几个人,一个月前,公司又是一波裁员,又走了几个人,本来公司人不多,现在裁员过后,人更少了,每天去上班就不到十个人在那儿坐着,我没被裁掉的原因,大概就是公司就我一个服务器的开发吧,如果我都走了,公司的所有网络游戏都要垮掉,就只能做单机了……所以我们剩下几个人,目前是在做最后的挣扎,希望最后的一搏还能有一点收获,对公司而言,能收获一笔钱来运转,对我个人来说,当然也是钱,赚了钱,肯定能发奖金了,另外还是希望能涨点工资,这也是我2017的愿望之一,除了钱之外,对我个人来说,也终于可以有一款上线赚大钱的游戏项目经验了,这款游戏也是从始至终我一个人包揽服务端所有工作的一款游戏,对我个人的技术成长来说,它的意义也是无可厚非。就算是按照最坏的情况下,游戏崩了,公司倒闭了,对公司来说,是一个毁灭性的打击,但是自私点来讲,对我个人来说,也不会有太大的影响,并且这一年多的独立开发游戏服务端的经验,也是抹不掉的,所以退一万步讲,无论结果怎么样,对我个人的职业生涯来说,都是成长,我要做的,就是做好我的本职工作,好好学学技术,时时更新我的知识数据库。

主流技术发展迅速

说到技术,不得不说当前软件技术的飞速发展,实在是超乎了我们的想象:
1.一年前,我还认为,HTML5无非就是html加几个新的标签嘛,然而现在的h5,能做游戏,能做App,能做网站,能做各种酷炫的特效,这些都是HTML4的技术标准无法实现的,用几个HTML标签,你能做出来?
2.一年前,我还认为,Javascript不就是个浏览器脚本语言嘛,然而现在的js,不仅能做app,能做游戏,甚至能做服务器,能做数据库,不只是能做,而且各大厂都开始支持js技术。谁能想到,当年大学课堂上,老师一带而过的浏览器脚本语言,如今已经火便整个互联网?
3.一年前,我还不知道什么是大数据,而现在,在这个信息量爆炸的时代,大数据早不是什么新鲜事情了,身边处处都是大数据,像Docker,Hadoop这样的技术,早就已经耳熟能详了。
4.一年前,做一个网站的前端,需要用到的技术可能是Html,JQuery;一年后,做一个网站的前端,需要用到的技术可能是HTML5,Css3,es6,Angular,bootstrap……

一年前,JDK的版本还是1.7,tomcat还是7,Spring还是3,Hibernate还是4,而现在…所有的技术的版本号都升了,都或多或少的加入了很多新的特性来支持我们当前这个信息时代的需要,如果说,我们停止了学习,那我们技术上的思想和思维,就会完全跟不上这个时代的需要,最终只会被淘汰掉。学习一个新技术,不是多难的事,只需要在有空的时候,大致了解一下它是做什么的,有什么特性,如果有兴趣,再写个Demo来研究研究,当你真的搞懂一个非常的技术的框架的时候,你会非常赞叹这个框架的创作人的这个成果。就比如前段时间,我研究了Pomelo,一个网易的开源游戏服务器框架,底层是基于Node.js的,它在github上的文档介绍的非常详细,我看完它的整个设计的架构,它的整个架构的思想,我特别的欣赏,再回头想想当初我所设计的架构(就是在当前公司所负责的游戏的服务端架构),简直不是一个档次的,别人家的架构,具有良好的伸缩性,无论是开发效率还是生产高可用,以及服务器架构中很重要的扩展性,都是做的非常好的,而我的架构,我甚至不知道它能够支撑多久,这真的是看了别人的东西,才知道自己的东西有多垃圾……

其实说到底,还是我们自己的一个思维的固化,我们总是容易跟着固化的思维走,多看看新的技术,学学新的思路,真的会感觉到一个不一样的视角,你会突然发现,诶,原来这个还能这么做啊!而且我们的这个行业,有一个跟所有行业不一样的特性,就是他的发展速度是非常快的,如果我们跟不上,我们就会out掉,就打比方说,人家会新技术,单服承载十几万压力,而你的过时技术,单服只能承载几千压力,那用人单位又不傻,单服承载越多当然越为公司省钱啊,那你直接就被out了。时刻保持警惕,任何一个新技术,都可能成为今后的主流,不要活在自己的固化思维里。回头看看整个2016年,不知道github上又涌现出了多少的优秀的开源框架,阿里网易这样大厂又开源了多少它们的组件,这些技术,或许我们不能都掌握,但我们一定要去了解,与时俱进,才是最重要的。

DSC00068.JPG

DSC00059.JPG

工作完成还行

前面也说到了,这一年,基本上,公司感觉快要不行了,但对我个人来说,技术的成长还是不小的,首先,当下开发的这款游戏,我负责整个服务端,从架构,开发,到上线运维,这对我个人来说,不仅一个学习的过程,更是宝贵的经验,这之间,爬过多少坑,都只有我自己的知道,对我以后的工作也是非常有帮助的。除了正常工作中给我的需求之外,我也学着去了解各方面的东西,也就是上文说到的与时俱进。我负责公司的游戏服务端的工作,除了正常的需求开发,关于服务端的运维工作,肯定也是少不了的,我也必然去了解一些Linux环境下的各种操作,再比如服务端程序的一些优化也必须去掌握了解(前段时间读的一本书《深入解析JVM虚拟机的原理与实践》,真的是刷新了我的Java世界观,因为我在这之前一直只会写代码,并不了解JVM层次的原理,读完整本书,我觉得不了解JVM的Java程序员不能叫做Java程序员),再然后就是要给公司的人提供一些游戏的管理工具,比如游戏中改改数据(当然不会瞎改的……),写写公告,发发奖励什么的,再到游戏的开服关服的一系列工作,如果在大公司,服务端开发就只是做开发,运维是给运维同学做的,管理工具会交给做管理工具的人做的,然而小公司,只能一个人把所有的都包揽了,当然这对我个人来讲,也是好事,我如今能学到这么多东西,也得感谢公司的平台,让我迅速的成长,从一年前,在大公司的打杂性质的写代码,到如今跳到现在这家公司到现在能包揽服务端所有工作,这些成长,都是能够看见的。除了平时的工作,我也会经常看一些新的技术,有时也会写一些Demo,像Node.js,Go这些服务端的语言,都有去研究,又比如今年新浪微博开源的Motan Rpc框架,我掌握之后是直接运用到公司的项目中的,因为这款框架已经经过了微博千万并发压力的验证,我就可以毫不犹豫的拿过来用。如果明年我还有机会单独负责服务端工作,或者做主要负责人,我希望可以在我的项目中引入更多先进的框架和技术,这个不是赶潮流,这是与时俱进。
今年我在工作中的成长,离不开公司给我的平台,不是所有的人都会有单独负责所有工作的经历,其实这不是苦难,我反而会觉得自由,因为在这其中,在保证工作的前提下(像服务器的稳定性,扩展性等),你可以用你想用的技术,写你想写的架构。每当我看到工作空间中,所有类文件的头部描述的author都是我的名字,所有的svn提交者记录都是我的名字,就会有一种成就感,就像是一个建筑师,一层一层的筑起来的高楼,不知不觉,它已经耸入云端(不管最后项目在市场效应如何,它都是我2016年最大的成果)。

深入解读Java游戏服务端开发

这个小标题有点特别,因为他是一本书的名字,这本书的作者,是我。这是我的第一本书,我今年花了一年的时间,最终才出版的这本书,这其中包括半年的写作和半年的调整校稿,整个写书的过程,让我明白了坚持的意义,甚至说,我不认为这是坚持,我只是每天有事没事的写一点,但无论如何,这花费了我一年的时间来完成,不敢说是什么大作,但确实是辛勤劳动的成果。我的这本书,是属于技术类的书籍,在写整本书的过程中,很多技术点,我自己都还没整明白,我必须要自己先弄清楚,然后再用文字描述给我的读者,这个过程,对我来说,其实也是一个学习的过程,很多东西,我都是从头到尾自己再研究了一遍的。
这本书算是我的第一本书,内容算不上完美,也有不少小瑕疵,不过对于想要入门游戏服务器开发来说,还是足够了。或许是因为后来我看了几本书,在大作的面前,感觉到了自己的渺小,李林峰老师的《Netty权威指南》,对我来说,真的是经典,后来看的《深入解读JVM虚拟机》那本书,也是一部神作,还有来自国外的《Java性能优化指南》的翻译版本,以及腾讯GAD出品的系列丛书,以上每一本,都是内容非常丰富,也非常值得一看的。我不能否认我自己一整年的辛勤劳动成果,但也不能绝对偏袒它里面的内容,跟很多大作来比,确实是由很多不足之处。鉴于以上几点,加之我16年参与了Cocos CVP的课程,我决定在2017年,结合我在Cocos2d-JS领域的技术探索,再写一本,基于Cocos2d-JS实战的书,从项目结合来讲一下游戏开发。因为我本身不从事游戏客户端开发,所以我觉得这对我来说,也算是一个挑战,所以2017年的第一个挑战,就是这本书,多学学多看看,再通过项目实战来进行讲解(其实感觉,写实战代码,比写理论描述,要容易得多)。
另外,《深入解读Java游戏服务器开发》,在淘宝京东当当亚马逊等各大网站,直接搜就有的哦。

DSC00048.JPG

DSC00056.JPG

DSC00057.JPG

DSC00060.JPG

book.png

其他

其实还有很多事没总结完的,2016年,是看似平淡的一年,但我个人,却感觉积攒了一年的能量,在个人的能力上,有了不少的提升。除了上文说到的工作中的进步以及写书的成长,在整个2016年,我也完成了不少事情,总结起来,可以列举以下几条:
1.用近一年时间完成《深入解读Java游戏服务器》一书
2.复习近半年时间并参加信息安全工程师考试(上午科目过了,下午没过,不过也算尽力,不枉此行,来年继续!)
3.学习Cocos CVP课程(课程还没出完),基本掌握Cocos2d-JS引擎
4.在Github上搭建hexo个人博客,并已经写了48篇博文,主要涉及Cocos2d-JS游戏前端开发和Java游戏后端开发
5.签约腾讯GAD游戏开发者社区特约撰稿人
6.获得腾讯GAD手游服务器解决方案征文比赛一等奖(据说奖金就要打过来了,有点小兴奋呢)
7.用业余时间写了10款项目源码(包含一些游戏前端源码,游戏后端项目模板,框架demo等)开源在Github,填补了Github几乎为0的记录
当然,有好的,也有不好的事情,可以列举以下几条:
1.吸了一年北京雾霾
2.一年下来,几乎没有积蓄,每月工资也不少,但就是莫名其妙的,月底就余额不足
3.薪资无任何提升
4.在公司努力了一年的项目,最后的市场效应很不好,游戏付费率低的可怜
5.因第4条,公司接近倒闭,估计明年又要重新找工作了
6.政府对游戏行业整顿,整个国内游戏行业不景气,造成第4,5条的影响
不管怎么说,2016即将过去,不管是好与不好,都已成为过去,放眼2017年,做更好的自己,不谈过去,只看将来!

总结2016

整个2016,在工作和技术上,我的成长还是不错的,不过相对来说,我在生活上,却没什么变化,依旧不怎么会说话,不怎么会处事,17年希望能够有所改进,多了解社会上的交往礼节,世界不因我改变,而我,只能改变我自己。融入社会,是每个想要生活在这个社会的人必须做的事。
最后还要感谢我的家人,在16年的工作上,以及写书的支持上,都离不开我的家人的鼓励和支持,同时也很感谢我的女朋友,能容忍包容我的一切不好的缺点和脾气,来陪伴我,度过我的2016,我如今的一切,都离不开你的陪伴与支持。
希望无论是生活中还是工作中,我在2017年,都能有所突破,引用小学课本的一句话,就是“逆水行舟,不进则退”!,不做井底之蛙,拒绝固步自封,放眼远方,迎接未来!

展望2017

17年,我的心愿就4条:

  1. 涨工资
  2. 赚钱(1如果达成了,2应该就不远了)
  3. 能出门旅游一次,带上父母和女朋友(在2的基础之上)
  4. 生活越来越好,账户余额越来越多,存款越来越多(在2的基础之上)

写到最后

时间已过一点,本来想在年前就写总结的,一直没找到合适的时间,今天想想,不能拖了,今天一定要写完,让2016不留遗憾!文章结尾特地再次感谢一直陪伴我的女朋友……

DSC00088.JPG

DSC00087.JPG

大爷赏点儿呗.

欢迎关注我的其它发布渠道