pc8888888 发表于 2021-8-4 14:52

学习游戏开发半年了,貌似陷入一个烦躁期,想问同行以前都经历过吗?

本人一开始对这个行业认知为0,然后从大四上学开始学习的。想要进入游戏开发也是经过了大三暑假两个多月的考虑才判断好符合自己未来才做的选择。本人二本计算机专业,分为以下几个阶段时间从7月份开始

johnsoncodehk 发表于 2021-8-4 14:53

首先题主是自学,结合学习时间来看,总时间也不算长。
在完全自学、较短的时间内,题主掌握了C#编程基础,以及Unity的使用基础,起步还是比较顺利。想要进一步学习,关键是要多鼓励自己,给自己打气,不要泄气。
另外题主提出这个问题,可以看出遇到了一些思维的误区。这些思维误区很常见,可以用理性来避免。
误区一:我一定要在最短时间内学会XXX

大部分年轻人都有急功近利的想法,就像腾讯某产品的广告词:“我要的,现在就要”。
其实对于知识来说,“现在就要”绝无可能。越是内涵丰富的知识,就越是要花费大量时间、动很多脑筋,克服大量困难,才能最终掌握。
编程和游戏开发都是内涵丰富的知识。它们都不是通过看视频、看书就能会的。每一个小的知识点,都一定要有学习、练习、思考、领悟、灵活运用的循环,缺一个环节很难学会。
这些步骤都需要时间。
误区二:我还要学很多东西,图形学、AI、服务器、数据库……

我的建议是,不要去学很多“乱七八糟”的东西。
你说到的所有这些东西,在有编程基础的情况下,想入门都不难,花费的时间并不长。但是,学个皮毛又有什么用呢?
目前,社会上虽然看似IT从业者多如牛毛,实际上,游戏行业中高级以上的人才仍然十分稀缺,关键岗位招聘难度很大,寻找人才的成本非常高。
什么叫高级人才?简而言之,一专多能。一专为主,多能为辅。深度最重要,广度也需要。
无论是独立开发者,还是在公司里任职,做事踏实可靠最重要。基础知识要扎实,技术思维要经过锤炼,关键的问题也要花时间吃透。
比如编程技能,这个要长期学习、长期提高,一定要不断精进;算法和原理性的东西,多多益善,就算不能直接用于实际项目,至少也能提升思维水平。
至于游戏开发的很多新玩具、新功能,可以根据自己的兴趣多看看。但是这些东西比起核心能力来,只能算是锦上添花。
那么,什么样的问题对锻炼技术有帮助呢?

我们总是在克服困难的过程中提高最快。有很多类型的困难。除了基础练习以外,比方说“制作自己的游戏Demo”就是一个很好的方向。
很多人在学习的阶段比较顺利,感觉自己都搞懂了。但是自己动手做的时候,就会遇到各式各样的问题。这不是因为学的不好,而是因为实践项目本身确实有难度。有难度的事才有做的价值。
选题的时候可以以自己的兴趣为主,想一个点子或者借鉴玩过的游戏。
选题不宜过大过难,因为一般来说实际遇到的问题会比一开始预计的多得多。选题过难很容易劝退:)。所以可以适当调整自己的开发计划,比如去掉不重要的部分和难度过大的部分。
题主也提到:
因为这些过多的交互起来bug开始出现的越来越多,有时候找出来一个问题就花了足足一天,每次不能如意的制作搞的越来越坐不住。解决这些BUG,正是学习技术的精华。最简单的问题最值得重视,加油~

KaaPexei 发表于 2021-8-4 15:00

对于这个问题,我感觉我可以向题主讲述一下我的经历。
首先,我也是一个即将准备春招的二本计科学生,大三。
我从大一下学期开始学习Unity游戏开发。现在满打满算应该是两年了。
你经历的这些心情,困难我都遭遇过,之前有写一篇文章,基本讲述了我的学习历程,今天看到题主的情况,不禁感同身受,所以想提供力所能力的帮助。
fjyuan:一位刚入门游戏开发的大学生自述首先说你的当前情况
心情烦躁看码/编码经验不足却想一蹴而就好高骛远,眼前的东西没有学会就在考虑学其他的不知道当前干什么好
不用因为我的言语尖锐而感到不适,因为曾经的我和你一模一样,说你也就是在说我自己
接下来我就针对这四点,说出我的建议,仅供参考
心情烦躁

这是大忌,你可以有压力,但不可以烦躁,因为压力可能会驱动你进步,而烦躁只会让你一事无成。
怎么办呢,转移自己的注意力,用官腔来说就是学学其他的,比如你在学编程,那就去学点面试常问的渲染知识(不用深入研究,因为根本来不及)。用我们自己的话说就是去玩游戏,散步。
总之就是先把他放一放,让心情平静下来,这样才能真正知道当前自己在做什么,想要什么。这两点清晰了,剩下的就看自己了。
经验不足

经验不足就好办了,也是比较痛苦的一个阶段,你需要看大量的代码,写大量的代码,但并不是说不会碰到你所说的项目交互多,Bug多写不下去的情况,这种情况在任何学习阶段都会存在,只是有没有解决的经验区别罢了。
前期经验获取的地方很多。siki学院,官方教程,然后就跟着做,对他进行思考,感觉差不多了就开始写自己的demo
Unity官方教程我曾经第一个正式Demo,是一个飞机大战(在此之前跟着视频教程/官方教程已经写了不下10来个Demo了),当时我连git都不会用,直接传的unitypackage文件。这个项目现在还是用的unitypackage,因为我想把他当做纪念。(川皇の训诫:说到底还是条懒狗)
烟雨迷离半世殇/UnityWorks后面又上传了一个连连看项目在里面,不过这都不重要,重要的是,我写这两个项目的时候很痛苦,因为一类一个mono,两类一个单例已经把代码耦合到僵死的地步,找个Bug要半天,甚至一天。写完boss机制根本没办法往下写了。
此时,再盲目的开新坑,写新demo,除了编码更加熟练外,不会有任何经验的获得,你需要的是一个规范上的经验(也就是GamePlay的设计经验)。
我选择了去学习框架,GameFramework,ET都是很好的选择。他们在设计经验上给予了我很多帮助。学习框架后,结合之前的编码经验,整个人就如同被醍醐灌顶,写Demo也是越来越顺畅。这是我后面出的两个Demo
基于GF的坦克大战以LOL为目标的Moba项目所以我对经验方面的总结就是:如果你觉得当前根本解决不了眼前的问题,说明你该学习一些项目了。
好高骛远

在任何情况下,请保证自己当前领域的知识已经到达一定的深度再去设计其他的领域,否则不三不四,不上不下,不伦不类就是自己的下场。
我在大二上的时候就想去学TA所需要的知识,到现在了,还只是粗略过了一遍shader入门精要,就是因为我害怕成为四不像。(反正就是变着法给自己的懒开脱是不是???)
不过玩笑归玩笑,这条建议是真的,请保证自己先专精一项,再去拓展广度。
当前应该做什么

这一点可能是对题主来说帮助最大的一点,因为现在情况紧急,三四月份的春招马上启动,根本没什么时间再去实践上述三点,不过等招聘热潮过去,在学习的时候还是建议参考我给出的建议的。
准备面试

首先要面你的基础知识,C++/C#,数据结构,算法,设计模式,渲染管线,网络协议,操作系统,组成原理,这些感觉都是题主当前所缺失的,所以需要去恶补一下,不然你根本走不到能让面试官看到你作品的那一关,更加详细的内容,我推荐去牛客网
你找不到的面经,其实都在讨论区里!_站内公告_牛客网就在面经模块里泡,就硬泡,泡个十天半个月,基本面试常见问题都难不倒你了。
然后就是刷算法题,算法基本是面试必问的内容,可以去力扣网刷题,前期不需要做题,直接看答案,记答案,然后回过头来自己做,自己理解,思考有没改进的余地
力扣 (LeetCode) 官网 - 全球极客挚爱的技术成长平台后面的面试内容就看你的发挥了,一般就是考你项目的一些技术实现,或者给出一个应用场景让你口头实现,拉拉家常,套路一下之类的。。。
学习基础

春招过后,不论自己有没有Offer,都需要进行基础的学习,甚至是深入底层的学习,因为欠下的技术债总是要还的。今天敷衍而过的基础,就是未来某一天因为概念不清晰导致的BUG/性能炼狱。
而且在你学习基础的时候,你会发现,面试中的很多问题,就算你没见过,基础过关的话,基本也难不倒你。
什么基础呢,这里的基础主要是指,编程语言基础,数据结构基础。
编程语言基础就是C++/C#里面的一些特性,他们的底层实现或者原理,数据结构就是常见的hashset,各种树,各种图,各种表。在这个学习过程中你会收获很多额外的知识,比如汇编语言基础知识,IL基础知识,内存排布的基础知识,当然还有无形中提高的编码能力。
做一个正式的Demo

上面的都做的差不多了,可以考虑做一个正式Demo了,记住选题一定要大,准,狠。直接奔着市面上火爆的游戏去就是了,一定要选自己感兴趣的,我上面那个Moba就是以LOL为目标来复刻他技能系统的。你如果喜欢玩ACT就选崩三,黑魂,只狼,沙盒就选GTA5.
因为此时的自己已经不是当年什么都不会的菜鸡了,而是一个已经入门的游戏开发者,想提高自己的就得对自己狠,大的选题能够强迫你用成熟,灵活,稳定的设计来解决问题,在这个过程中,你的编码和架构能力将会突飞猛进,如果完整的做下来,哪怕只是其中一个核心模块(战斗系统,UI系统,红点系统,任务系统),你都会受益匪浅。
以上,祝君武运昌隆。

johnsoncodehk 发表于 2021-8-4 15:03

你想学的东西太多了。有些是工作几年之后才需要接触的。像什么AI,渲染、物理、网络。这些东西想深入研究你现在肯定没时间。建议你去找siki的视频教程(不是打广告,siki作为入门来说不错但是工作后就不要看了。而且他近几年已经不搞unity教学了,不要买它的永久教程,有钱就买一年的。没钱网上看盗版,很好找),把它的学习路线学一遍。别的没有的你暂时不需要。做的demo也不要搞什么服务器。做个简单的单机项目就行了。不过还是不太建议入游戏这行,除非你是985211本科计算机专业。游戏行业现在不景气,版号限制非常死,小公司活不下去,同行失业的都很多。公司几乎不招新人。每个月培训班还培训一堆新人出来。这些新人虽然菜,但是有老师带。里面一部分人还是比现在的你强很多的。你拿什么竞争。除非你是我刚才说的那种名牌专业对口。

RhinoFreak 发表于 2021-8-4 15:05

先别把自己吓着了,其实你这个问题解决办法比较简单,只需要引入一个版本号就可以了。
v0.0.0 ~ v0.1.1 完成主要功能,不考虑 bug 修复,大概就是一个最小的可玩的版本,关卡不用太多、美术也不用多好、就是你脑海中最核心的玩法完成就好。v0.1.1 ~ v1.0.0 一个功能一个功能完善,但是要考虑 软件的运行质量。v1.0.0 ~ 之后要么上线、要么开源都可以,这阶段主要就是做做维护啥的。
以上这个概念足够应付你打成你要的目标了。
你可以深研究一下,具体如何升级版本号啥的,你可以看看 https://semver.org/lang/zh-CN/
自己的项目要像个制作人一样去思考,预算、收益都想清楚。
预算就是你的时间和精力,收益目前就只有知识或者是成就感吧,或者之后可能在求职上增加一些竞争力,最好的情况当然是项目上线了,然后带来收入吧。
大概就这些,如果想学进阶一点东西,比如 框架搭建、Shader、或者想搞搞副业可以考虑参加我的 Unity 进阶小班。

Doris232 发表于 2021-8-4 15:08

啊,学几个月就烦躁了?
那当初我花1年学c++,花1年学个opengl,效率岂不是差到家了?
少年,路还很长,需要跟着一本书或者一个人慢慢学。
我倒是建议,你不要从功能、组件出发去学习,而是从项目出发去学习,比如你想用Unity做一个两人联机的俄罗斯方块游戏,那么,你需要懂哪些东西才能做出来。
这时候,就像玩游戏的时候你有一个大的目标,然后你会先做一系列的小目标,最终完成这个大目标。不然,你只有一对听过的名词,什么AI、UGUI、物理啊,一是会很烦躁,而是会很茫然。

stonstad 发表于 2021-8-4 15:09

从最后一段可以得出,你的时候烦恼来源只有两个
1、独立游戏卡住了做不出
2、没有offer
什么还有很多没学啊这个只是促成上面两个烦恼的因素而已,例如你说你想学碰撞、物理,但是现有模块已经够你的独立游戏用了,你也有offer了,你还会为了不懂这些而烦恼吗??就算想去学也是发自内心的想去学,而不会去烦恼什么。
所以我的个人建议:暂时放弃独游,先确保offer稳住,独游你过一年做差距不大(除非你想说有个特别牛逼的点子再不实现就完了),但是校招生的身份可是就剩几个月了。
可别小看这个校招生身份,因为企业招聘应届生是有一定政策福利的,所以你在毕业前一个月找工作和毕业后一个月找工作完全都是两个概念(虽然现在上面好像放宽了择业期是毕业两年内都叫应届生,但是企业现在绝大多数都没改过来,校招的标准还是毕业前的学生)。
<hr/>那么现在问题就转换为了,如何在春招收割一份好的offer?
第一首先看你的DEMO,能否在一个月(春节过完前)完善?即使春节前不能完善,春节后也要去复习其他的基础了为了招聘。
如果你想应聘的是开发岗,那游戏完整性和设计都是次要的,只能算加分项,主要的还是你对于这个游戏开发了什么功能模块、有什么技术难点,你自己也要在春节前梳理一下如何展示这个DEMO,丑也没关系,重要的是技术模块的梳理,如果过完春节还没有一个能展示的技术模块那也暂时先放了,因为这东西不是一时半会能补的起来的,不如随便看看基础。
然后你要记着一件事,优秀的面试官会挑你懂的问,正常的面试官会对着大纲问,装逼的面试官才会挑你不懂的问。。。。。所以不要纠结于自己不懂什么,而是要着眼梳理于自己擅长什么,我举个例子来说,你上面说C++没学,但是C#掌握的还可以,但是中大厂的面试官还是比较青睐问C++的,这个时候你就可以说“C++我平时没怎么用,但是我对C#的研究是比较深入的”,后面半句是重点,不要只答前半句,这时候面试官就会挑着你C#来问了。
还有一点,不论国内还是国外都好,应届校招生最大的加分项是数据结构和算法。。。。。。但是我看你上面完全没提过,最起码leetcode easy难度要能手撕出来吧,如果连easy都手撕不了,那估计中厂都比较困难。。。。。
<hr/>其实本来我是没资格答这题,因为我也只是一个即将毕业的应届生,但是感觉答主和一年前的我很像,只是我早一年意识到了这些问题,现在勉强算走上正轨了吧,最起码不会迷茫了,所以分享一下个人经验(我的个人文章里也有分享游戏开发秋招的经验)。

DomDomm 发表于 2021-8-4 15:16

我不清楚国内游戏行业招聘毕业生的要求,所以仅仅根据自己的经验提供一些建议。
首先既然是面向招聘学习,建议你收集大量的国内游戏岗位招聘信息,根据你的目标岗位,以及此岗位的技能要求准备。

根据你的计划,感觉你对于应聘岗位还不是特别了解。如果你不是计算机图形专业,而且兴趣在于游戏本身的开发,建议目标岗位是游戏逻辑程序员(Gameplay programer)或者UI程序员,主要工作内容是为游戏逻辑编程,或者实现游戏UI。我认为这个岗位应该也是初级游戏程序员首先应该尝试的。那么多线程,网络,服务器等等可以在之后深入研究。除非你的专业与兴趣在后者,那么另当别论。
关于如何准备应聘的demo,我建议你基于AI,游戏物理,渲染等等,做几个小游戏。当然这个小游戏最好流程简单,但是游戏逻辑完整。从开始菜单,到游戏过程中的交互与UI,以及最后游戏结束的交互,构成一个完整的循环。这样可以证明你对游戏开发的一些特殊领域有所了解,参加工作后可以快速上手。我猜想应聘的几率会大一些。
这样做还有一个好处:这几个小游戏除了游戏核心逻辑不同,它们使用的UI素材,UI架构,以及游戏逻辑架构可以是统一的。那么你可以借此来提高对于游戏项目架构的理解(以及如果基于Unity3D的特殊性设计项目架构的经验)。如果你在统一架构过程中遇到了问题,可以尝试用一些设计模式解决。这些经验也可以用在应聘时和面试官分享。
另外不必追求完美或者正确,重要的是把demo做出来,以此展示你有游戏开发的基础知识,并且有学习能力。
最后,既然希望从事游戏程序员的工作,建议你可以使用opengl,c++,physX(物理),fmod(音效),再自己找一个合适的网络库,实现一个简单的3D游戏引擎框架。这样对游戏引擎会有一个虽然粗浅但是比较全面的认识。AI方面可以尝试选择一个脚本语言嵌入,例如python。
同样不必追求完美或者正确,重要的是把关键功能做出来。
最后推荐两本几乎是必读的书:
游戏引擎架构 https://book.douban.com/subject/25815142/
Game Programming Patterns https://gameprogrammingpatterns.com/
祝一切顺利。

RedZero9 发表于 2021-8-4 15:19

在中国,我在圈子里认识搞独立游戏制作的,大多都是已经财富自由的人,合作过几个项目(大多都是中途失败的),他们的特点都是毕业进入游戏产业不得志,然后去了腾讯阿里之后买了房子后经过房价疯涨后,现在2套房起步在收房租,30多岁后又想实现自己梦想,拿闲钱来搞游戏制作。
所以我还是劝一句题主先找份好工作吧。

johnsoncodehk 发表于 2021-8-4 15:23

目标太大了。。你说的很多东西都是学习的知识点,真的要做点东西出来,先把目标设小点。
页: [1] 2
查看完整版本: 学习游戏开发半年了,貌似陷入一个烦躁期,想问同行以前都经历过吗?