作者信息
昵称:目及远方
课程设计 HumanFramework:
https://github.com/cyclons/HumanFramewo
正文
大四毕业,心血来潮,闲余之际,撰文留念。
萌芽
游戏程序员,把这个分成两块的话就是,游戏,程序。
这两个中,只有一个,游戏,在我很小的时候就开始接触,在那个视电子游戏如电子海洛因,父母抵制到要送孩子去网瘾治疗所的年代,三年级的我就已经在玩ps2了,周围的同学还在玩红警qq大乱斗冒险岛飞车的时候,我已经玩高达战神龙珠古墓丽影,最终导致和周围同学没有共同话题。
随后,按顺序入手了nds,psp,xbox360,ps4,可以说从小到大,游戏没有停过。
如果说这条职业路上我有什么超前之处,就是玩游戏玩得多。
起步
那什么时候开始想做游戏了呢?要等到大学。
整个大一的我沉浸在社团干事与学习中,完全没有接触过游戏编程,学了个谭浩强的c语言,寒假里把下学期的高数学了一遍,然后发现课堂上除了能装个逼好像也没什么特别大用。
直到下半学期的一天夜里,我在床上思考,以后究竟干什么比较好,突然一个念头冒出来,要不去做游戏吧!这个想法一冒出来,我猛地从床上坐了起来,仿佛一股能量贯穿了全身一般,于是我下定决心买一台电脑,开始我的程序之路。
暑假的时候,搜了好久,终于找到一个感觉靠谱的教程,那就是SIKI,现在已经是游戏网课的巨头了,然而当时仅仅只是一个维持了一个小小的公众号而已,唯一收费的只有一个A计划,终身费只要400块。当时选择的原因有很多,其中最主要的就是大量的免费课程,一个个案例都是自己想要实现的游戏,总感觉每实现一个,就离成为游戏制作人更近一步(当时没有游戏职业概念)。
成长
刚开始学的阶段,可以说我就是个沙雕,半吊子中的半吊子,打字速度20字母/s,不懂语法,大小写不分,对着视频敲代码。(弯路)
后来发现尽管照着视频做出来了,但仍然不熟练,于是逼迫自己,看视频不写代码,写代码不看视频,偶尔实在不知道怎么做了,再回去看视频里怎么做,一个视频要看两三遍。(稍微正了一些)
为了提高自己的打字速度,把手机的键盘从9键变成26键。(有一定作用但不是正道,推荐https://www.keybr.com/)
那时候我还心血来潮,赶VR潮流,在学校里搞起了VR工作室还有VR社团,但刚开始不做技术,是卖硬件的,卖手机纸盒子VR给学生。后来发现潮流过了,硬件没前途,随后就想把工作室往技术上转,当时心里的想法是边能学Unity又能搞起一番事业(too young,too simple)。
大二的寒假里,我马不停蹄,不断学习SIKI公众号上的项目案例,每做完一个就信心爆棚,仿佛自己已经是个优秀的游戏程序员了。之后还在社团里教大家如何做一个AR应用,Unity小游戏等等。
在大二的暑假里,我还认识了一个朋友,一起做汽车VR喷漆,想通过这个赚钱,但最终失败了。同时,我发现专业偏硬件,于是我转专业到计算机学院,开始了第二个大二生活。
旅途
后来的日子里,我依然是一有时间就跟着教程学,但仿佛到了一定的瓶颈,感觉做游戏不就是调调api,用用插件,什么游戏都能做出来啊,恰巧当时看到心动在搞独立营活动,我就立即报名了,这也成为了我第一次的gamejam。
gamejam的感觉呢,怎么说呢,就好像回家了一样,里面各个都是人才,说话又好听,超喜欢这里面的~。在活动里,能够充分体会到周围人对游戏的热爱,精妙的游戏设计,惊艳的美术,牛逼的程序老哥,主办方给我们学生还特别优待,给我们免费订了两天的五星级酒店,还包早餐,可惜都没怎么好好享受到,两天可能就住了8个小时不到吧,但整个活动充满乐趣,给我的第一次gamejam留下了非常棒的印象。
之后便开始积极参加各种jam活动,线上线下到现在快应该有10场,每一次都很有收获,无论是认识了新的朋友,还是看到了非常惊艳的游戏,每次都是一场充电之旅。
里程碑
改变我职业生涯的是一次比赛。
还记得隔壁工作室的老哥问我一句有个AR的比赛来不来参加,我说来。那次比赛是一次hackthon,恰巧有一个单项奖由网易赞助,而且专门设置的AR题材。对我来说,我不了解hackthon,所以就把它当作是一场gamejam,看着周围一圈985的同学们,压力山大。
那次我们做了一个AR版本的胡闹厨房,现在回想起来那代码写得就是一坨屎,但游戏运行非常顺畅,没有bug,从可玩性来看还是挺不错的,但和以前看的优秀作品比差距还是太远。听到主办方在选出十个演讲队伍中没有我们的名字时,我们已经收拾好行李,开始回校了。然鹅,这时候主办方说不要急着走,网易的奖还没开,我们一路就火急火燎的赶了回去。
由于来得太晚,演讲已经开始了一大半,我们几个人就站在入口的地方听演讲,看着别人的项目,什么机器学习,区块链,智能小车,各个高大上的不行,仿佛改变未来的技术一样,而且没有一个是做游戏的,我这时候意识到,是不是走错场了?
等其他奖开完了,才等到网易的负责人上台,大概是这么说的,“我们在两支队伍里徘徊,所以一直没能下一个定论,但最终我们在完整度上考虑,最终决定把一等奖给9号队。”
当时整个人都已经懵逼了,周围队友兴奋的握着我的手,这时候感到一切的努力都是值得的。
获奖是次要的,最主要的是一等奖附赠一个网易终面机会,作为项目主程,我成功通过了,拿到了实习offer。
这次事件是里程碑,告诉我在这条路上继续走下去是值得的。
泥潭
网易实习生活非常丰富,由于是实习生还是在一个偏创新的部门,我和周围的小伙伴们一起做了非常多好玩有趣的AR游戏,回来的我也是信心爆棚。
我继续不断学习,做项目。但做着做着发现,项目都能跑,但是最终的成品要想改功能,牵一发而动全身,最后改着改着就变成了一坨屎,而那些神乎其神的插件,自己始终停留在会用不会做的阶段。
那时候的我非常的慌张,加群,逛知乎,看教程。最后我找到了一本游戏设计模式,看完之后才知道,原来代码能这么写,好方便啊,这之后代码又上升了一个阶段。
转眼又一年经过,大三末的我又开始找实习。我本以为我那项目满满,经历丰富的简历,一投一个准,做个offer收割机不是问题,然而事实就是,我就是a piece of shit。
算法,数据结构,计算机组成原理,是面试的重中之重,而这里面每一个都是我的弱点,笔试都通不过。做了几套面试题之后,我意识到,自己的基础太弱了。
我开始疯狂看面经,牛客网,leetcode,uwa也看。最终的出来一个结论,原来我就是个小白。
人贵有自知,知道自己多弱是件好事,至少知道自己要补哪些。这时候就非常感谢叶大的游戏程序员学习路线,在书籍的指导下我决定从0开始,从primer cpp开始,从头重新练,随着一个个的知识点梳理过去,自己的知识漏洞逐渐补全。
一边恶补一边找工作,此时的我就是任人宰割的羔羊,哪家公司要我就去哪里,大不了过半年,我又是一条好汉。
没想到,本以为已经凉凉了的腾讯来了电话,那就索性面下去吧,没想到一路面到了底,拿到了实习offer。。
升华
这次的实习和之前就完全不是一个感觉,正规的大项目,专业的导师,完善的框架,专业的团队。据说实习留用率低,感觉压力山大,一边做着业务,一边把手边该看的基础书在看。
这次依然运气可以,上岸了。
回校之后,我开始继续看基础部分,但发现学习的面越来越广,尤其是游戏这块更是复杂,因此,我逐渐放缓,虽然我的目标是做游戏,但具体最终是做哪个职位的研究依然不够清晰,甚至中途还打起了转行做策划的念头。
我设立了第一个目标,搞一个框架。为什么是这个目标?原因大致如下:
- 目前我做了很多游戏,都是小项目,做大了,代码就变成一坨屎,搅都搅不动。
- 框架可以让项目变得有结构,是职业必经之路。
- 想要做大项目,一定要有框架
我搜索了很多现有的框架,首先就是学着用,其中就包括strangeIoC,还有MVC等。不得不说,StrangeIoC是新手劝退框架,那一堆东西理念对初级程序员来说就是一头雾水,明明三行就能实现的东西,为什么要8个类几百行实现。
偶然发现了一个QFramework,github千星项目,还有文档,于是我就开始搞QFramework。
又是一个机会,发现QFramework的作者凉大准备搞事,做一个小班,专心带学生,12月分期,学生还带优惠,我转念一想,当年SIKI还是个小公众号,现在A计划永久能卖大几千,这个车一定要上。
交钱上车后,跟着凉大学,一天两篇,框架搭建和shader都有涉及。有一说一,虽然是日更的,但是我一般三四天一看,甚至一周一看,刚开始比较勤劳,看得多,有一段时间看着比较累,就断了一大片。
这里非常感谢凉大时不时会来私聊,问问学习情况,有没有遇到什么困难。我当然也心知肚明,聊完就去补文章了。
正是在这样的一步步过坎之后,自己的框架意识也逐步建立,共有问题也逐步显现,C#上欠缺的部分通过中毒篇专栏有了很大的弥补,更重要的是,在未来的路途上有了专业的指导,少走了非常多的弯路,这点真的非常重要。
不知不觉间,一年就过去了,我也幸运的交上了一份毕业设计,学习过程中几次差点放弃,但看看文章之后觉得这个知识有必要掌握,就一直续到了现在。
本来这篇文章是凉大让我谈谈这个框架学习之路,扯了太多自己的东西,这里就详细聊聊框架的学习心得:
- 课程内容里,最核心的还是框架学习,是主菜,至于shader部分,其实只是一个补充,比如业务里要用到相关知识,和专业技美或图形程序不同,属于副菜。
- 文章讲框架部分写得非常好,由浅入深,讲解细致,且代码详尽,每一个学习单元都可以做一个小实现。
- 记得凉大在学习开始的时候提到,小班文章的目的是让大家看文章就行,不用做笔记,不用真的动手,看就完事了,但这一套在我这边的尝试下不太行的通,简单的或者熟悉的内容可以一遍过,但一些需要反复理解的如IoC部分,只看文章会觉得迷迷糊糊的。古人有句话,“纸上得来终觉浅,绝知此事要躬行”,对于难理解的内容,一定要下手尝试,即使简单的内容,亲自做过之后都会有不一样的感觉,有时间一定要多练习,偷懒只会亏待自己。
- 明白最终自己想要的是什么。由于课程涉及方方面面,学员的学习程度也层次不齐,有时候碰到的内容不感兴趣,不是自己主要目标的组成部分,那便可以选择性的不太需要花精力去学习,但这类情况较少,如果平时较为空闲,建议都看,有益无害。
- 课程不太适合小白,适合有一定项目经验的同学。
- 刚开始会充满激情,但中间会由于各种事情被打断,最好养成一个看文章的固定时间段,比如996晚上摸鱼的时候看,或者在周末挑一个时间。
- 学习框架的过程为:使用框架to看懂框架to能写框架,各自为阶段,越过会导致许多障碍,比如没有用过消息中心很难写出一个消息中心
- 不用害怕学不会,只要方向正确,没有完成不了的
凉大在小班上非常负责,可以说关心到了每一个成员,内容质量也非常有保证,每每我有“弃坑”的想法时,凉大都会来“善意的提醒”。而我遇到什么问题时,都能够得到专业的回答。
大学的前几年实际上走了不少弯路,如果能够早期遇到专业的老师来指点的话能少走很多。如果入职一段时间了,职业提升遇到瓶颈,尤其还是从事Unity行业的话,那非常推荐来小班,这里交流活跃,同行众多,总有老哥给你指条明路。
在一年结束后,我也最终实现了我的目标,实现了自己的框架——HumanFramework,在大佬眼中应该就是个小不点的存在,但即使这个框架不会成为流行,这个过程也使我对软件设计的理解更上了一层楼。
退潮
最近各种事情算是告一段落,毕业也好,小班也好,工作也好,自己的学生时代也结束了,即将开启工作时代,由于之前的几年坎坷奋斗,加上自己的身体不算强健,现在留下了点胃病,这几个月里都在养生,时不时看看业内新闻之类的,最近越来越对shader相关的内容感兴趣了,之后的主要平台也会变为Unreal,想想也挺有趣的。
在这一年中,学到了很多,尤其是技术分享的重要性,自己也会写一些文章分享出来,包括HumanFramework的制作过程分享,欢迎来知乎关注我
最终祝愿所有读者在学习的同时身体健康,身体是革命的本钱,有好的身体才有力气追求更美好的生活。
转载请注明地址:liangxiegame.com
更多内容
-
QFramework 地址:https://github.com/liangxiegame/QFramework
-
QQ 交流群:623597263
-
Unity 进阶小班:
- 主要训练内容:
- 框架搭建训练(第一年)
- 跟着案例学 Shader(第一年)
- 副业的孵化(第二年、第三年)
- 权益、授课形式等具体详情请查看《小班产品手册》:https://liangxiegame.com/master/intro
- 主要训练内容:
-
关注公众号:liangxiegame 获取第一时间更新通知及更多的免费内容。
来源:oschina
链接:https://my.oschina.net/u/4262172/blog/4326472