zsz8868 发表于 2023-6-6 10:51

毕业三年的码农想转游戏开发,必备常识是什么?怎么入门?

毕业三年,前1.5年在日企混日子,后1.5年到现,在一家通信公司做sip。
此刻有想转游戏开发的想法,应该怎么入门?需要掌握哪些常识?

zhouyu12315 发表于 2023-6-6 10:51

首先,语言基础要过关,C++/C#都可以。
基础过关是指:1)清楚基础语法、语言背后的内存知识点;2)理解面向对象的基础模型和原理。要做好这两点,需要一定的时间学习和代码量积累(如果有针对性的练习也可以)。

然后就是操作系统、计算机组成与结构基础掌握。这两项考察的其实是对CPU、内存、Cache三者之间工作原理、以及这种原理在代码上如何实现的掌握。同样也需要一定的练习和debug锤炼。
最后,至少做一个游戏Demo出来。游戏类型可以是自己喜欢的类型,有基本的UI、GamePlay,如果有图形的基础,可以在图形上做点文章,比如风格化渲染,或者是玩法和图形强结合的,比如星球渲染,地形渲染等等,做得出彩一些。如果没有图形的基础,可以在UI管理+热更新,或者GamePlay框架上做出彩一些。GitHub上有很多宝藏,可以多去看看。
你是社招,其实缺的是项目经验,demo可以部分弥补你项目这块的短板,但是还是差了一些,直接去大厂有点难
如果以上三点都能做得比较好,找个靠谱的中厂练几年经验,再跳槽去大厂也可以

photoshoplxy 发表于 2023-6-6 10:52

作为一名毕业三年的码农,想要转行成为游戏开发者一定是你经过深思熟虑后的决策。毕业三年是个非常关键的时间点,若等到三十多岁才转行会对职业生涯的发展伤害比较大。因此你需要理性地去思考自己事业的追求,清晰认识到自己的优劣势在哪里。
根据最新游戏职场十大人气排行榜发布,2D、3D开发设计师成为最大需求量职位,而位列第三、第四位的游戏设计和策划人员也是游戏企业最急需的人才。据不完全统计,预计未来3—5年,中国游戏人才缺口将高达60万人。游戏开发行业也更有前景。所以对于码农来说,在职业生涯初期考虑转行游戏开发算得上是个不错的选择。
目前国内的游戏引擎基本能分为三种:Unity引擎、UE引擎、游戏厂商自研引擎,在这里更推荐刚入行以及想要转行的从业者选择Unity引擎,因为Unity主流引擎能够胜任跨平台游戏制作,支持PC、移动、主机三大不同的平台,并且在中国手游市场占有率高达85%。那么,想要进入游戏行业,成为一名游戏开发者,除了掌握编程基础和相关技术外,还需要具备游戏开发行业的知识和经验,才能够在这个领域中获得成功。
由于题主并没有说明之前从事的码农工作中使用的是什么编程语言,所以这里我会分成两种不同的情况去分析,主要区别在于是否掌握了C#语言及Unity引擎的使用。

首先,如果题主在过去三年工作里面,使用的是C#语言,那么可以非常丝滑地转行到游戏开发。需要掌握的必备知识如下:



(点击插件,领取完整版《职业技能表》)

若题主之前没有接触过C#语言,对Unity引擎也不熟悉,那么需要从编程语言开始学起,虽然相当于是从零开始,但之前积累的编程语言基础也基本能够融会贯通,比起非专业的人掌握起来会容易。下面是针对于没有相关编程语言基础的入门路径:

1.掌握游戏开发的基础知识

要想成为一名优秀的游戏开发者,首先需要掌握游戏开发的基础知识。这包括游戏引擎、编程语言、图形学、数学、物理学、音频处理等方面的知识。游戏引擎是游戏开发的核心,因此需要熟悉主流的游戏引擎,如Unity、Unreal Engine、Cocos2d-x等。此外,掌握一门或多门编程语言,如C++、C#、Java等也是非常重要的。
【关于游戏引擎Unity的下载和安装,可以点击插件进行免费领取教程】
Unity五天大咖直播学习营

图形学和数学是游戏开发中比较基础但会提升竞争力的知识,它们主要用于实现游戏中的物理效果、光影效果、碰撞检测等。因此需要学习计算机图形学基础知识、线性代数、微积分等数学知识。

2.深入了解游戏开发行业

除了掌握游戏开发的基础知识,还需要深入了解游戏开发行业。这包括游戏市场、游戏用户、游戏设计、游戏测试等方面的知识。只有深入了解游戏开发行业,才能够更好地把握市场需求和用户需求,从而开发出更符合市场和用户需求的游戏。

游戏市场:需要了解游戏市场的发展趋势、市场规模、游戏类型、市场主要玩家等信息。了解游戏市场的发展趋势可以帮助游戏开发者更好地把握市场方向,预测市场需求。了解游戏市场主要玩家可以帮助游戏开发者更好地了解市场竞争情况,从而更好地制定游戏开发策略。

游戏用户:需要了解游戏用户的特点、需求、喜好等信息。了解游戏用户的需求和喜好可以帮助游戏开发者更好地把握游戏玩法和游戏体验,从而开发出更受欢迎的游戏。

游戏设计:需要了解游戏设计的原则、方法、流程等。了解游戏设计的原则和方法可以帮助游戏开发者更好地设计游戏关卡、游戏玩法等内容,从而提高游戏的质量和用户体验。

游戏测试:需要了解游戏测试的流程、方法、工具等。了解游戏测试的流程和方法可以帮助游戏开发者更好地发现和解决游戏中的漏洞和BUG,从而提高游戏的稳定性和用户体验。

3.了解游戏开发流程和项目管理

游戏开发是一个复杂的过程,需要良好的项目管理能力。因此,还需要了解游戏开发的流程和项目管理的相关知识。游戏开发的流程一般包括需求分析、游戏设计、开发、测试、上线等环节。需要了解每个环节的具体内容和流程,以便更好地协作和管理团队。

项目管理:需要了解项目管理的理论和方法,如PMBOK、敏捷开发、SCRUM等。掌握项目管理的知识可以帮助游戏开发者更好地管理和协作团队,保证项目的进度和质量。

4.积极参与游戏开发社区和活动

为了更好地了解游戏开发行业和提高游戏开发技能,可以加入一些游戏开发社区和论坛,参加游戏开发者的线上和线下交流活动,与其他游戏开发者进行交流和学习。这些社区和活动可以帮助毕业三年的码农更好地了解游戏开发行业的动态和趋势,学习其他游戏开发者的经验和技能,拓展自己的人脉络和资源。

另外,可以参加一些游戏开发者的比赛和活动,锻炼自己的游戏开发能力。比如,可以参加各种游戏开发比赛、游戏设计大赛等等。通过参加这些比赛和活动,毕业三年的码农可以获得更多的经验和机会,提高自己的游戏开发能力和竞争力。

近几年,随着市场形势的发展,制作游戏产业越来越受政府和社会的广泛关注。面对制作游戏产业诱人的市场前景,政府出了各种扶持政策,不断加大对该产业的投入力度,由此也出现了一大批游戏制作人才培训机构。经过长时间的发展,游戏行业员工薪资逐渐增长,而高端专业人才却依然供不应求。

想要了解游戏开发更多入行标准,可以点击下方插件

Unity五天大咖直播学习营

flyren 发表于 2023-6-6 10:53


[*]可以选择一个难度适中的项目来学习网络游戏开发技术,开发小规模游戏与开发大规模游戏的难度是完全不一样的,在学习游戏开发的过程中不一定要选择非常简单的游戏,但也不建议选择难度非常高的游戏,因为这会使你在学习过程中遇到很多问题,如果无法解决就会产生一些挫败感
[*]也可以学习一套固有教程,当然,更好的一种办法也是我比较建议的一种办法,就是从开发的套路入手,更加恰当的一种说法就是学习游戏开发企业中常用的开发经验、方式方法
[*]比如开发一款Unity游戏,没有进入企业工作过的新人会新建游戏对象然后往对象上面挂脚本,而如果你是一个专业开发者,那你就知道在企业中开发游戏时,游戏的数据、数值会由策划设定好,程序要通过读取这些游戏数值,根据这些数值来创建游戏对象,通过这些对象再进一步的挂上Unity中专门负责游戏渲染的游戏对象
[*]在开发网络游戏时,专业开发与业余开发的开发思维是不一样的,一个是按照官方的教程去做,另外一个是从数据驱动的角度进行游戏开发,整体思路都是不一样的,还有游戏的打包策略、游戏的性能优化、游戏的Shader开发、游戏的整体客户端框架、服务器框架、还有它的UI框架等等,这些都是在进行网络游戏开发时需要思考的一些方法
详细内容可以参考我们的《皇室战争S2:分布式与帧同步》公开课

jnwlw 发表于 2023-6-6 10:54

谢邀,首先你需要有C++的基础(不是必须但是深入下去的必须),然后我会基于自己写的游戏引擎(还没有全部开发完成)开设一系列游戏课程(虽然是基于我自己的游戏引擎,但会从图形学基础->OpenGL/DirectX->游戏基本骨架->架构->游戏逻辑)进行详细的讲解,不能比国外大神,但我会很自信的说,只要你有一定基础,单独写个单机传奇和简单的CS是没有问题的
有些人要说用Unity3D捣鼓几下一个FPS就出来了,这有啥稀罕呢?
Unity3D是个编辑器,一切的技术细节都在其内部,如果你要挣钱,挣快钱,推荐这类工具
如果你是要学习技术,要以后成为大神,要体验创造乐趣的快感和成就感,要体验纯数学方法实现一个soft renderer那种爆发式的兴奋,要在将来赚更多更多的钱,请深入细节吧.
用工具是剑宗,迅如闪电虽势猛但劲不足,后期乏力很容易顶到天花板
图形学/数学是气宗,看似冗长无力,却浑厚如海,深沉如山,一掌过去,排山倒海,石破天惊.无三十载不能成,一旦练成,无穷宇宙任由驰骋.
这就是境界的不一样,我想你应该清楚你的目标和选择了.

十月¢潴潴 发表于 2023-6-6 10:54

谢邀。先不扯没用的直接答题:
你所需的必备知识,跟你第一份 Offer 的项目类型、还有你所从事的岗位角色关系很大。真的很大……
编程语言
我想说 C/C++ 是必备知识,但是最近感觉底气不足,因为我自己都已经将近一年没怎么好好写过 C++ 代码了。我们项目用 Unity,编程用 C#。我们不是特例,周围乌泱乌泱的都在做手游。所以,再看看 C# 吧。什么你要做 HTML5 游戏?那再看看 HTML/CSS/JS 吧……还有的话,那就是 Java 吧,虽然不太可能直接用它写游戏,但是 Android 上的外围/框架代码万一需要修改或调试呢?总不能两眼一抹黑吧?
另:掌握一门脚本语言是有必要的,这行业里用 Lua 的比较多。
技能/技巧
一般来说,都会从 Gameplay 做起。如果从服务器端程序员做起,老简单了:会排序吗?会把所有符合条件的节点从一个双向链表上拆下来,然后塞到另一个链表里去吗?都会?太好了,You are in。当然我这么说有点简单粗暴,还有可能拆了某些高B格笔试题的台——但实情就是如此。你诚惶诚恐地过了的笔试,会以为这公司在憋什么狂拽炫酷的大招一旦启动连地球都要反着转。结果坐到位子上之后却只看见一坨一坨的……呃,轮子。
现在的游戏都联网,所以,基础的网络编程要懂一些的。会用 blocking 和 non-blocking socket 吗?epoll 呢?完成端口呢?神马你还用过 ACE?行了就你了马上去找前台妹子拍工卡照明天就来上班吧。
更多的技能只能靠经验补,做时间长了你才会感觉得到针对某一类问题,都有哪些固定的模式,分别适用于什么样的应用场景。不过你有通信行业背景,我觉得起码上手不是问题。
如果你是被花里胡哨的画面吸引到这个行业里来,那你大概是想做客户端,尤其是想做渲染咯?嗯好多人都是这样的。那你是需要一些线性代数的基础知识作为铺垫的。三维坐标、向量、齐次坐标、矩阵、四元数神马的,都是最基本的。然后再辅以一些基础的 3D 几何/图形学知识:各种变换、判定垂直、判定相交、射线检测神马的。最后再了解一下一些常用的模式:四叉树、八叉树、父子结构与 Local/World 变换、大多数引擎中都在用的 Entity-Component 模型神马的……OK,你现在可以开始在一个 3D 游戏项目里愉快地工作了。如果你就喜欢在屏幕上画一些很吸睛的东西,觉得那样很有成就感,那么……光知道这些还不够,你还需要了解一下 GPU 和 Rendering Pipeline 方面的知识——网上 Tutorial 多多;此外 OGRE/Irrilicht/UE4 全部开源,代码随便看;《GPU Gems》系列丛书也可以翻翻。还吃不饱的话……再找找 SIGGRAPH 和 GDC 的 Paper 吧。
你想做 AI 吗?放弃吧,没前途的……
“我们的游戏以社交和 PVP 玩法为主,怪物行为非常简单确定,站桩让玩家打就好啦。唉你去做一下掉落吧,这一块挺重要的,不同 VIP 等级的修正算法完全不一样,来我先给你个文档你看看……”——by 自带现实扭曲力场的策划大神
“大 R 们付费是要追求一个确定受益的!!!你搞得游戏里 NPC 精得都跟猴儿似的,玩家都付费了,还要花时间动脑子死个两百遍跟他们斗智斗勇?!找抽呢吧?!”——by 浑身散发金色光芒的明星产品经理好吧以上算吐槽,请无视……总的来说,AI 的基础包括寻路算法、有限状态机还有行为树。了解原理之后,最好自己再实现一个试试看,然后应付国内一般的项目需求,问题不大。
入门
Just do it!
下载一个 Unity 或者 UE4,写个 Tetris、Pac-Man 或者跑酷游戏看看。
程序能工作之后,试着 Polish 一下,流畅度/操作感受/UI/视觉效果/音效都要照顾到——大多数精品游戏都是在这一步之后才成为精品的。自己练手阶段,会受到精力、资源和个人能力限制,无法真的输出一个精品(神马你说有人愿意投资你的 Demo?那个啥……还招人吗?),不过没关系。这个过程可以让你搞清楚你自己最喜欢做什么、最(不)擅长最什么。
没有那么难,但也没有那么简单。
————————————————————————————————
你确定要跳进“游戏”这个坑吗?
你确定要跳进“游戏”这个坑吗?
你确定要跳进“游戏”这个坑吗?
我在这个坑里摸爬滚打了 11 年了,却发现这个坑所属的行业其实是“互联网”,至少目前是酱紫的。互联网你懂咩?营销开路、产品为王,想不明白没关系,数据好就行,时间就是金钱啊!
“那些个做游戏的土鳖一个项目搞三年苦逼哈哈还赚不到几个破子儿,早该被淘汰了!”当然如果题主你觉得这个坑里机会多,爬得快,可以助你早日走上人生巅峰的话,欢迎入坑。但如果你真心喜欢游戏、想做游戏的话……别跳国内这个叫“游戏”的坑。
页: [1]
查看完整版本: 毕业三年的码农想转游戏开发,必备常识是什么?怎么入门?