从游戏痴迷到技术之路:分享开发经历与心得体验

棋牌游戏开发 10个月前 129浏览 0评论

出品 | CSDN博客

简要描述;简介

本文的目的并非教大家如何开发游戏,更不是教大家如何成为一名技术总监,而是分享我在这一路上的一些经验和感悟。

编程入门

2004年,我读初三,即将升入高中,因为我考上了市里最好的高中,父母履行承诺给我买了一台电脑,当时的电脑配置还算不错(我记得是P4的CPU,1G内存,80G硬盘,优派液晶显示器,还买了打印机和扫描仪)。

因为喜欢游戏,自从有了电脑之后,就沉迷于各种游戏,基本上通宵玩游戏到凌晨五六点,睡一两个小时再去上学,高一的时候各种游戏都玩,成绩自然就一落千丈。

高二的时候,我开始学习Photoshop和Coredraw,因为我表姐夫是美术设计师。我当时画了各种各样的东西,想着如果能让它们动起来该有多好。于是我开始学习Flash。我开始在网上看各种Flash教程,会做一些动画,用按钮控件控制一些流程。我还学习了AS2语言,然后在网上找了各种很酷的AS2代码,加到自己的Flash里,实现了鼠标跟随等特效。那时候,我其实还不会独立写代码。

因为高中时期的无所事事,我从中考数学全市前几名,到高考没考上重点大学,其实这也是我意料之中的事情。因为我不是一个相信运气的人。那时候,我只想尽快高中毕业,这样我就可以更自由地做自己喜欢的事情了。所以,我没有选择复读。

从平面设计到编程痴迷

编程入门

进入大学之后,我参加了好几个社团,成为了各个社团网络部的一名成员。然后接下来的事情就是社团经常需要一些活动的海报。于是高中时自学的Photoshop和Coredraw就派上了用场。大一那一年我基本都是做各种平面设计的工作。高中转大一带来的突然自由,也让我可以继续沉浸在各种游戏中。大一暑假的时候,学校团委突然让网络部帮忙建一个网站,但是准备毕业或者准备考研的学长们都没有太多的时间,所以这个重任就落在了我一个人身上。不知道为什么那么多社员都选了我,也没想太多。

暑假前1个月,暑假2个月,一共花了3个月学习HTML、CSS、Javascript、PHP、MySQL。然后3个月完成了校团委从学习到开发的任务,做了一个CMS网站。这3个月让我感觉到编程原来这么有趣。

沉迷于编程

然后到了大二,我陷入了学习开发的狂热。最疯狂的时候是从图书馆借了一本 PHP 的书,当天看完,晚上实现书上的最后一个示例,第二天再把书换回来。就这样,我很快就把图书馆里所有的 PHP 书都看完了游戏开发,书上的例子也能自己写出来了。然后我开始接很多外包,很快就赚到了第一本笔记本的钱。

Java图形编程

由于大二的时候做过很多网站,感觉有些厌倦了。到了大三的时候,我们正好有Java课,看到Java可以开发图形界面(Swing/Awt),于是就开始学Java了。我大概用了2-3周的时间看完了学校发的Java书,里面的例子也是我自己敲的,基本毫无阻碍的完成了Java的学习。但是书上关于图形界面的东西太少了,只是介绍了一些最基本的控件,做了一些简单的界面。于是就开始在网上找各种资料。这时室友跟我说“Java做图形不行,不如C++,不如C#等等”,我就是不太相信,继续自学研究,他还是站在他自认为看不起我的鄙视链顶端。就这样,他学他的SSH,我学的却是低劣的Swing,Java3D等等。

其实我当时的心态是:你凭什么觉得他做不到?要自己去实践才知道。熟能生巧,我觉得这是做技术很重要的一个特质。很多时候,很多东西只是别人根据经验去传播,没有亲自去实践。而且我当时也有一个心态,哪怕我花了很多时间做出来的东西真的不好看,我也不会有什么损失,我在这个过程中一定会学到一些东西。很多时候,很多人会更注重自己现在做的事情的收益,回报期有多长。但我觉得很多值得学习的知识,回报期长,即时收益低。对于我来说,我更多的是基于兴趣去学习,我觉得这样就够了。

最终的结果是,我用 Java 开发的东西非常漂亮,他们甚至无法想象它们是用 Java 开发的。以下是一些大学用 Java 开发的图形程序。

1.摇摆超华丽系列1——俄罗斯方块()

2.纯Java游戏引擎V0.5–DEMO2 –物理引擎()

3.杂物(486)

职业游戏开发

2011 年,第一次面试和实习

2011年初,我正读大四下学期,那时候我还不想找工作,因为我还有很多想做的事情,比如用Java做一个3D游戏。

但大四寒假的时候,有同学给我发了一个页游公司的招聘链接,说那家公司还不错,我看了一下招聘要求,觉得自己符合要求,就投了简历。

其实在我投简历之前,北京GLU的一个学长就想让我毕业后去试试,另外还有一家互联网公司也想让我毕业后去工作,主要原因是我在大学期间经常在各种技术QQ群里帮人解决问题,他们一开始觉得我应该去工作几年,后来知道我还在上学,就想让我毕业后去他们公司工作。

后来我应聘的公司叫我去面试,面试从当天下午2点到6点,从HR、主程序员、制作人到CTO,我都面试了。面试的时候CTO还问了怎么解决网络中的BIO、NIO、多线程的安全问题。最后CTO说:“你简历上写图形界面是用Java做的,我们用Java做服务器,你愿意做服务器吗?”我怕服务器是用来做网站的,就问他:“服务器也做游戏吗?”他说:“当然是用来做游戏的,我们做网游的。”我就说:“可以,只要是用来做游戏的就行。”然后CTO继续说:“你来我们公司没问题,我估计过几天就给你发offer了,你也不用去面试其他公司了。”

因为懒得去比较,而且CTO也这么说,所以我就没去面试其他公司,在同学家呆了一个星期,一个星期后就去上班了。

我记得当时 CTO 问我一个问题,“你说你这么喜欢写代码,你想写到几岁?”我说“30 岁”。他问我为什么只写到 30 岁,我说到时候我可能就当技术总监了,就不用写代码了。后来我 30 岁就当了技术总监。但我还是喜欢写代码。其实爱好是可以持续一生的。我不知道为什么面试的时候我会这样回答。

2011 年,第一场比赛

刚开始工作的时候挺紧张的,总担心自己做不好。第一个星期,项目组就让我修改服务器列表。那时候我从来没有远程登录过服务器修改过什么东西,主程序员就把IP、用户名、密码、网页位置都给了我。于是我赶紧自己去查各种资料。接到任务半个小时之内,我第一次用SecureCRT登录了服务器,第一次用VI修改了服务器上的文件。

接下来的几天都在熟悉项目,自己在服务器上找到了聊天协议入口,然后加入了一些GM,在账号里添加了赵云、吕布等厉害的武将。

几天后,首席程序员来找我,说我觉得在来这里的毕业生中,我的编程能力还不错,问我是否想参与一个新项目。我自然想体验一下从零开始开发游戏的过程。于是我兴奋地答应了。

新项目开发的时候我满怀激情,基本上第一个星期就完成了背包系统的开发。当时公司其他游戏的数据存储都是同步的,主程序员说这个新项目估计用户交互会更频繁、更实时,同步存储怕卡顿。所以当周开发背包的时候,我也为服务器的数据存储写了一个异步存储。(后来这个功能也被公司其他项目组引用了)。项目立项一个月后,主程序员去了腾讯。我们这个项目原本是公司的一个实验项目(公司其他项目是SLG,这个项目是RPG),所以一直没被重视。我们这个项目加上我的两台服务器,开发了半年才上线。我对游戏业务很熟悉,编程基础也不错,所以开发速度很慢,系统70%都是我自己开发的。当时很多同学问我,你干了这么多,公司给你加薪了吗? 我说没有,他们说,如果没有,你为什么做这么多。

其实有时候不是因为你在这个岗位上,你才能做这个事情,而是因为你有能力、有主动性去做这个岗位上的事情,你做得多了,自然就在这个岗位上。因为我觉得没有一家公司愿意为你承担风险付出成本。

项目上线的时候,公司还让我担任了项目的服务端主程序员。当时离实习只有半年了,总怕自己做不好,所以努力提升自己的能力。因为我开发的功能bug很少,出现bug也能很快修复,所以项目组测试负责人说我是测试最火的程序。后来去银瀚见面的时候,她还说自己跟银瀚的测试部说过,有个程序员干这干那……

写程序出bug是常有的事,要想减少bug,就需要谨慎,熟悉业务,要想快速修复bug,就需要熟悉自己写过的一切,我经常跟别人说,要把代码记在心里。

如果你对自己写的代码有清晰的认识,当问题出现时,你就能很快的定位到问题所在。就好像你的代码在内存中,所以搜索速度很快。如果你每次都要慢慢的看代码文件,那就像每次都搜索磁盘一样,肯定比较慢。我曾经在走路或者洗澡的时候想出了很多性能问题的解决方案。如果我脑子里没有代码,我该怎么办呢?

2012年,第二款重量级IP游戏

2012年初,公司筹备一个ARPG的项目,是周星驰正版授权的游戏《西游降魔篇》,当时公司根据我们第一个项目的表现,觉得我们项目组有比较好的研发能力,就把这个项目交给了我们项目组。

一开始公司让我做这个项目的主程序员,我想着我才毕业一年,游戏玩得也不少,也知道ARPG项目肯定比我上一个RPG要求高。所以一开始我希望公司能请一个有经验的主程序员,让我去那边学习。公司同意了。主程序员进公司之后,就一直看《天堂2》的源码,还让我也看看。我觉得《天堂2》的源码有很多问题。比如各种“在父类中判断自己是不是子类”之类的。后来两个月过去了,我连登录都登录不了。于是制作人问我,觉得他能不能做。我也跟他讲了我对《天堂2》源码的判断。

后来制作人说,你当主程序员吧。当时我觉得也行,反正想跟有经验的人学学,但他不停地问我各种问题,开发进度很慢。于是我就答应了。然后我又开始搭建框架,第一周我花时间搭建了网络,以及副本用到的线程模型。第二周CTO就带我去做场景了,第二周就可以同步移动多个客户端了,怪物有简单的AI和普通攻击。为了减少跟客户端对接的不便,我还用Swing写了一个图形界面,用来显示每个角色在服务器当前地图中的位置。(所以,如果我当时很功利,觉得大学的时候学Java图形开发不划算,那我肯定没法在这个时候自己快速完成这个工具了)

我们花了九个月的时间来启动这个项目,作为公司的第一个ARPG项目,这其实相当快。

项目上线后,玩的人很多,当时单服务器流量领先,同时在线人数有6000人,不过游戏不收费。

2013年,他转向手机游戏并创业

经过8个月的调整,《西游降魔篇》的收入不但没有增加,甚至还愈发糟糕,从最开始的每服每月700万,变成了几乎为零。当时已经是2013年中旬,我建议公司可以使用Unity3D开发手游(其实2012年底我就已经提过一次,制作人说第​​二年就可以申请)。但公司的策略显然还是在页游上,因为公司已经通过页游实现了借壳上市,不愿意也没有必要再踏入手游的陷阱。公司里唯一一个和手游相关的部门,竟然把页游项目通过AIR以手游的形式发布出去。这样制作出来的手游性能堪忧,体验没有进行针对性的优化。

于是2013年8月,我辞去了工作,开始了自己的手机游戏制作事业。

自己创业肯定会面临资金问题,资金不足,不可能招到很多人才,所以我自己开始开发 Unity3D 客户端,把最核心的战斗等都搞定了。

我们两个策划,两个程序员,一个美工,从立项到完成demo大概花了三个月的时间,然后就开始用手机演示demo,找投资。

当时的 demo 是用 Unity3D 做的一个 2D 游戏。因为我们唯一的美术师擅长画画。demo 可以在这里看到:第一个 Unity3D demo()。

我们跟大概四位投资者谈了谈,最后确定了投资。

2014-2015年,首次创业

上面提到,当时启动资金不足,Unity3D人员稀缺,导致我们一时找不到人才,只好自己承担实战、shader等核心工作。白天写服务器,教新人写代码,一行一行打字讲解,晚上写客户端。最疯狂的几个月基本都是睡在公司,早上五六点睡觉,九点半起床。

当时我使用Unity3D只是为了给公司节省成本,并没有想太多。结果就是这次经历让我成为了另一家拥有几百名员工的公司的技术总监。所以我还是很相信这句话的:做好事不怕后患!

最后创业肯定是失败了,其实还是因为团队成员的不成熟。所以在2015年中旬,经过几轮调整和测试,我们以测试结果不理想为由结束了创业。这次创业我并不后悔,毕竟是一次宝贵的经历。整个创业过程非常充实、快乐。

2015年,西山居、多益网络

创业结束之后游戏开发,我就想找个公司积累经验,当时我只面试了珠海西山居和多益网络,西山居剑网3项目组也想让我去,但是我觉得我就是懒,最后还是选择了多益网络留在广州。我可以很努力学习,但是在选公司这件事上,我经常会偷懒。

2016-2018,二次创业

我在多益没干多久,试用期过后,第一家公司的制作人就找我创业。不是因为我喜欢创业,只是想做一个成功的游戏,让大家认可。当时创业是因为制作人对我很好,也是因为他,我一毕业就能当上主程序员。所以这次创业,算是报恩吧。

这次创业的结果无疑是失败的。

2018年至今,360游戏美术技术总监(起帆网络)

2018年4月份,我因为之前带过的程序员的推荐,去了360游戏美术做技术总监,那时候我刚好30岁,就像我刚毕业实习的时候对自己说30岁可能就做技术总监一样,一开始没怎么想就意识到自己说的对不对。但回头想想,这一路走来,我并没有为做技术总监做过什么刻意的学习和准备,只是一直在学自己喜欢的,做自己喜欢的,公司刚好需要我目前具备的能力。这也是我最后想跟大家分享的。有人会问,如何才能成为主程序员或者总监,我觉得不管你是什么岗位,重要的是能为公司解决问题,你能解决什么样的问题,自然就能胜任什么岗位。很多做法看似是捷径,但最后都是走不完的弯路,我觉得做什么都不重要。 重要的是思考自己能为游戏行业做些什么,以及自己应该如何提升自己,成为这个行业真正需要的人。

当然,自从担任这个职务以来,我一直觉得自己做的还不够好,还在努力提高自己。

今天正好有空,就把这篇文章献给所有想为行业做贡献的朋友吧!希望我们能够一起努力,共勉!

声明:本文已由CSDN博主kakashi8841授权,版权归作者所有。

原来的:

【结尾】

分享:

支付宝

微信