九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

小小游戏程序员一年工作总结

一年了 ,已经一年了,好说歹说俺也算是有一年工作经验的程序员了(这话够没有出息的-_-!)一年说长不长,说短不短(怎么老是这种话),人生有多少个一年啊。。。。。。(以下省略无数个啊。。。。),呵呵,其实是真的挺感慨的才这样:)

遥想当年,初出茅庐,没有听说过版本控制,工程管理,设计模式,也根本不知道真实的软件开发世界是怎么样子的,凭着对软件开发的一腔热血,学会了C++的基本语法,就义无反顾的抛开过往(学了4年的电子),投入到了“挨踢”的大潮之中,并且还阴差阳错的搭上了如今逆市强劲增长,并且毒害了我大半辈子的游戏行业。。。。(当然是网络游戏)。除了感叹人生的戏剧性啊。。。没有其他可以感叹的。想起一句话,假如上帝对我和我的家人不好,必定有他的理由。那么这么折腾我,不知道他老人家的理由是啥啊?

想起来游戏人生几十年。。。(也就20来年),从小学6年级开始锲而不舍的投入到游戏当中,到头来,原来是为现在的游戏开发做铺垫啊。。。。呵呵,大部分局外人会这样感觉,就如我同学听说我开发游戏的时候大为感叹。。。那真是适合你的行业啊。。。。(就我大学4年起早贪黑的玩游戏,扎入网吧不回头的精神,一般同学都这样认为)其实,就如几千年前老祖宗就开始感叹的“知我者谓我心忧,不知我者谓我何求”一样,谁人能理解我的心忧啊。。。。最后还是只能叹一句几千年前的“悠悠苍天,此何人哉!”

正是因为一生对游戏太多投入,投入的非常之过,导致小学没有考上好初中(自然指的是全市最好的初中),初中没有考上好高中(还是那所),大学没有考上特别好的大学(起码不是清华北大复旦一级),最后专业还选错,一生的痛啊。。。。当大学中迷失方向后,游戏更是肆无忌惮,再加上没有赶上一个好的时代,初中高中玩单机,总还有个头,但是大学碰上了网络游戏横行的时代。一般的网络游戏还行,就是平时陪同学玩玩冒险岛,因为怀念起大航海,玩玩航海世纪啥的,都还算能控制住。但是,就如我常说的那样,我平生没有偶像,唯有暴雪公司近似之,暴雪在我大2的时候开始出网络游戏了,这就是众所周知的魔兽世界。。。。。于是,真正的沉沦开始了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。之所有这里句号多,因为沉沦的时间足够的长。大四毕业以后,痛苦万分,漫无目的,无剑可拔,四顾心还是如当年的李白一样茫然,于是也有过和古人一样借酒浇愁的一段茫然岁月。

还好。。。个人还不算是那种完全没有想法的人,平生不是没有兴趣爱好,而是兴趣爱好太多,太广,以至于自己常常感叹,什么都拿不出手,都是那种可以在外行面前充行家,在内行面前不堪一击的水平,回顾自己的人生,反思自己,最后感觉自己还算拿的出手的,也的确感兴趣的,又还能够靠的住,吃饱饭的家伙,那就是编程了。。。。。。。。年龄这么大了,再想去靠下象棋,打篮球,玩游戏,是没有什么谱的,就我这水平,写个什么哲学书去卖好像也不着边际,那么就编程吧。。。。好歹还常常自诩逻辑能力不错,于是蒙着头苦学半年C++,学了一本《C++ Primer》,大概看了一遍《C++ STL》,随便浏览了半本《Programming With MFC》就出来混了。那半年把我家人急的啊。。。。。。还好女朋友在这个时候给与了非常大的支持和足够的动力,日子总算过来了。不容易啊,不容易啊。。。。。现在虽然没有两个小钱,在北京也就算极低收入人群,但是每当打着车上班,或者偶尔就着几个小菜喝着“小二”的时候,总是感叹现在生活多么美好啊。。。。经历过苦难的人,不把苦难当作苦难,那是我前进的动力。

跑题太远。。。。。。这也算是写在工作将满一年之际的一种纪念吧。

以下为正式的工作总结:

首先工作在过了8个月以后有了很大的转变,首先是和一个同事一起用了一个不算太短的时间(半个月多一点吧),搭建了一套完整的可控反外挂系统,这个时候我主要还是配合者,他写服务器,我写反外挂模块和脚本。然后提出了我对游戏主程序不能由玩家启动的解决方案,并且得到通过并实现。然后又一次的转入服务器组,开始真正的全身心服务器开发(以前就如我一直所说,如此之杂,偶尔弄客户端,偶尔弄服务器,还弄过工具组的数据校验,还要反外挂),公司的日志服务器以前就是我做,这个时候开始全套交给我,区别在于以前我仅仅是管理收包后的响应,也就是收到包,然后写入MySQL数据库这样比较简单的事情,(其实就这样机械的事情,也让我懂了很多东西:),以后有空再讲,比如让我对VIM的使用来简化枯燥的敲键盘有了更深刻的认识,对正则表达式用在全局大规模替换上有形成了一定的看法)而从那段时间开始,不仅仅是收包,包括从游戏的各个主要地图服务器(其实就是游戏主逻辑服务器)向日志服务器发包的工作也全部交给我做了,(其实还是技术含量不高,但是起码多了个分析的过程,并且因为需要分析的面很广,所以对理解地图服务器还是有一定的帮助的),然后接着开始在地图服务器上做了一些开发工作,这是比以前开发那种边角的监控系统要强很多的,虽然个人没有感觉技术上需求高什么,但是地图服务器对日志的详尽要求,对每个分支流程的仔细判断,还有后来出现错误,分析日志的经验,出于安全考虑对客户端每个包的不信任,都让我对服务器开发有了不同于以前的认识。不管怎么说,当开始做世界地图服务器那天开始,我才真正的感觉到自己是融入到了这个团队当中,成为其中的一员,虽然还很难说不可缺少:)

融入这个团队的代价也是异常恐怖的。。。。。。。因为游戏定于5月初面市,在3,4月进行了一次大规模的更新和最后阶段的赶工及测试,开发压力非常之大。。。。。常常忙到不知道什么是休息两字。到了最近,更加是无以伦比的加班啊加班,自清明节请年假回家晃了几天以后,来到公司后就没有再休息过一天,以前是周六上班,现在周日也上班了,好不容易昨天周日也算是睡个饱觉,下午总监还叫我去了趟公司,去写最近的日志服务器数据库变更文档(以前不是没有文档,这个文档是专门给工程人员看,用于今天新服务器配置的)。说不辛苦嘛。。。。那是瞎话,说了也没有人信。。。。。。我也真是想退缩过。。。但是总监和老总总是在鼓励着我,年轻小伙子嘛。。。呵呵,投入的是青春,产出的是白发。我倒是还真想看看,到底能够累死人吗?我也真想看看,我们公司奋斗了2年多的产品,是否真的能有市场。

另外,尽管每天加班到比较晚,可能到家都11点了,甚至也有过12点才从公司回来的时候,但是我一直没有放弃过学习,因为高强度的工作让人崩溃,学习还是能找到点原始的快乐:)另外工作过程中对于Debug兴趣的增长比较莫名奇妙。。。似乎来源于看某篇程序员成长博文,被其程序员要成长“绝不要将你的键盘交给别人”这句话惊醒,做世界地图服务器后对于总监能在我做的模块中比我更快发现问题的事实也震惊了不短时间,于是自己也开始摸索和总结一些常见的Debug(广义的说是发现并解决问题)技巧和经验,这是对于工作经验外的一个收获。加上看设计模式的书籍过多,写点什么首先分析个什么变化,然后封装啥的也已经不在话下,就是常常警惕自己是否在过度设计。对于《STL源码剖析》和《C++模板大全》的学习更加是让我熟悉了一种简化循环的编程风格,虽然公司因为不能使用boost库,甚至因为用的是VS2005,连TR1都用不上,但是明显还是能感觉到自己的代码有了更多的for_each和transform,有了一些bind1st,bind2nd,可惜就是不能用boost::bind…….对于模板熟悉以后,重构了一次日志服务器,利用了函数模板的特化技术,以前多一个包需要在4个地方进行同步更改的工作,现在简化为新添一个新的包处理函数模板特化。这都是我能看到的进步。

大概回忆起来最近看过的书如下:《C陷阱与缺陷》《C专家编程》《C++沉思录》《设计模式解析》《C++模板大全》《UNIX网络编程》,顺便还结束了《STL源码剖析》,乘着清明节回家坐火车的空闲,看完了《Borland传奇》和《走出软件工坊》,算算也不少了。。。。其实也就2个多月嘛,还是在那么高强度的工作中抽空看的,总感觉也不算太浪费了时间。。。。只是。。。自己的计划还是偏离的比较远,在《小小游戏程序员十个月(2008年年度)工作总结》中我计划在工作满一年之前,应该好好的学习网络方面的知识,但是在抱起《TCP/IP详解》卷一的时候,总是看的一知半解,《UNIX网络编程》的学习嘛,也就大概的懂了那么几种网络程序的模式,真正的离自己的计划远的不是一星半点。。。。唉。。。。。。。又加上我曾经这样想过,要是公司叫我进行反外挂工作,我一定全部身心的投入,甚至是我在家里的时间,这里要再提起这句话,是因为,游戏快要出来了,游戏中反应更快更高强度的反外挂需求也出来了,这时,老总将这种责任重大,技术含量高,自己感兴趣的任务交给了我,我哪能不殚精竭虑,直到呕心沥血,鞠躬尽瘁脑死亡而后已啊,所以乘着还没有开始,先写个总结先,以后会连写总结的时间都没有:)

分类:  随笔 
标签:  工作总结 

By 九天雁翎

2009年04月28日 | 九天雁翎的博客

前一篇: Observer模式的升级版,Event通知实现 后一篇: 多想追求简洁的极致,但是无奈的学习C++中for_each的应用