值得回忆的本科四年学习(7-9)
7. 上海三日游
4月底,也就是五一放假前,应微软公司之邀,参加了在上海举行的MVP颁奖会,其实就是一个上海三日游。现在只是记得我第一次去上海有点兴奋而已,然后整天都是到处逛,到处玩。微软公司也挺大方的,机票和住宿吃住都包了,对于我这种学生来说,简直显得太重要了,如果要自己出钱买机票啊,定酒店,那我是怎么也不会去的了。
上海三日游除了在上海玩之外,还有一点让我记忆深刻的就是众多MVP们。通过这次峰会,认识北邮和北航的朋友。在成都去往上海的路上,和另外一位大叔级的MVP也聊得挺开心的,虽然他并不是Developer,不过他年纪比较大,很多经历都是值得我们这些晚辈去学习的,我也很感谢从他身上学到一些成人立身社会的处世原则。
8. 数码广场的短暂时光
从上海回来后,我也没回利用五一回重庆了。公司的事情比较多,我平时在上学就比较耽误工作上的事情,于是和大家一起五一加班了。其实那个时候我们也根本就没有周末,只要有空就一定要上班的。
五一过后,公司从合作伙伴那里获得了一些资金,然后就马不停蹄地找更大,更好的新的办公环境。最后我们在成都数码广场那里找到一个不错的办公地方,有130多平米,对于8个人的小公司来说,地方反而显得过大,而且在22层,环境也很不错。而且我们还有专门的会议室,不过后来变成大家吃午饭晚饭的地方了。
随后的一段时间内,公司不断扩展,招了一些新人进来。而我这边的魔幻2的项目马上也要交产品了,所以开发进度需要加快。项目刚开始的时候都是挺顺利的,但是到了收关阶段,往往会出现这样那样的问题。那些日子,我和HJ天天都在打魔2,发现的BUG几乎不下百个,很多BUG是在修改原来的BUG基础上增加的。不过S40的BUG倒是比较轻松的,因为NOKIA当时给S40的模拟器做得比较好,必然的BUG我们可以通过Jbuilder一步一步调试,而且S40的模拟器也支持联网。最痛苦的就是S60的了。当时2004年的时候,NOKIA并没有推出一个真正可以用的S60模拟器,只是推出了一个所谓的概念S60的模拟器,和真机差别太大了,很多在真机要出现的BUG在模拟器上不出现,模拟器上出现的问题在真机上不会出现。
最让我记忆犹新的S60的BUG是它的一个内存管理的一个BUG,是真机的问题。平常耍个10-20分钟,它是不会出现的,但是如果耍到半个小时到一个小时后,它就会冒出来,而且冒出来的地方并不固定,有时候是这个地方,有时候是那个地方。为了这个BUG,我和HJ整整花了两个星期的时间去解决。我当时的解决办法就是疲劳测试,不过是把人测试疲劳了。我在它常出现的地方设置下断点,能够在它出现问题的时候显示一下当前状态,然后按一下确定后才进行下一步操作。因为每次BUG的出现都要等待0.5-1个小时,所以整个测试的时间很长,最后终于发现是在Image.createImage这个函数出现的问题。至于为什么会出现,我当时也不太清楚,也不是内存不足。然后我就专门测试这个Image.createImage函数,进行1000次的图片的创建和释放,后来在真机上测试,果然,在平均500-600次的时候,出现了真机上的这个错误。也就是NOKIA 3650,7650的经典BUG了,后来在NOKIA的官方论坛上已经被大家讨论得热火朝天了,可惜当时我没有留意去搜索英文的论坛。而同样这个问题,我在NOKIA S40,7610和MOTO等机器上测试过,1000次都不会出现这个BUG。后来我从NOKIA的人了解到,这个BUG似乎是当时给3650,7650的JVM提供商的犯下的错误。
魔2后来很快就结束了,然后联梦那边马上就推出给移动进行各项测试,据说当时魔2在移动评审的时候获得的是最高分99分呢。唯一的缺陷就是魔2当时卖出了高得吓人的价格,12块每月。这个价格几乎高出其它同类游戏的一倍多了。
魔2一做完后,马上公司就接到一个比较重大的外包项目,后来知道是上海网星的《仙剑奇侠传》的手机版的外包。一听到《仙剑奇侠传》,我当时兴奋得不得了。仙剑这个手机版是要完全按照以前PC版的剧情来做,内容十分庞大,显然我们不大可能在S40得64K内做得完,而我们的策略就是在64K内做一个手机客户端,把整个剧情分成18个资源包,玩家每打完一个资源包就自动下载下面一个资源包。而我们的资源可以控制得比较小,是放在手机的RMS存储空间里面,大概有20K的限制。除此之外,我还专门研究了一下LZ77的压缩算法,通过一个很简单的压缩算法,能够让脚本和地图这些资源文件从7K左右的空间降低到3K-4K(图片都是GIF,PNG不可能再压缩了)。
我开始写仙剑的引擎的时候,相对半年前的魔2,技术上已经成熟了很多,所以无论是从引擎结构上还是代码的质量上,都是比魔2要好了很多。魔2的代码当时在收关阶段为了解决各种BUG到处都是缝缝补补,已经是混乱得不行了。仙剑引擎大致上还是跟魔2差不多,只是游戏从一个SLG变成了一个单纯的回合制的战斗。当时公司也比较重视这个项目吧,投入这个项目的人很多。
仙剑项目的正式开始也就是刚好在我大二下学期考试结束,暑假开始的时候。整个暑假我也没有回重庆老家,整个暑假都消耗在了这个项目上。由于这个项目的时间安排比较紧张,几乎前面没交一个版本,我们整个开发小组都要通宵一次。通宵一般都是在晚上8:00和凌晨5:00左右这个时候是最困的。第一次通宵我就十分难受,不过后来几次就没事了。我以前的确从来没有通宵过,除了当年看足球世界杯。
这个时候,公司不断招人,刚刚搬来的130平米的办公室已经显得拥挤不堪了,我们几乎都是一个小桌子上同时坐了两个人,有的甚至坐了三个人。以前吃饭的会议桌也坐满了人。那个时候正是夏天,天气也热得很,所谓的空调一点效果都没有。BOSS他们也终于决定再找个更大的地方了。
9. 搬进高新软件孵化园
大概在2004年的10月底,我们终于搬家到了成都高新软件孵化园。这里属于成都的高新区,而且我们所在的数字娱乐软件园也汇集了成都很多数字娱乐软件产业的企业。这里的地方还不错,清净,而且地方也很大,几乎是之前数码广场的10面积那么大,不过唯一的缺点就是有点远。我平时要上课的,也就不能像以前随时想来公司就可以来的了。基本上来就是至少一个半天。
搬进来后,我们一下子又显得宽裕了很多。但是公司还在不断扩招。后来又来了不少的新人,好多其它部门的我到现在都叫不上名字。
高新孵化园的地方比较偏僻,吃饭比较困难,不过还好专门修了个食堂,就在微软技术中心对面。可恶的是孵化园的食堂饭菜十分难吃,而且还贵。于是我们几个同事就经常组织一起到外面的苍蝇馆子去吃饭,虽然开始担心不卫生,但是到现在我都还从来没吃出过什么毛病来。