-无缝大地图 AOI 实现
@Pur
Doom3 Code Review
https://fabiensanglard.net/doom3/
Game Server development
https://www.gabrielgambetta.com/client-server-game-architecture.html
Game Networking
https://gafferongames.com/tags/networking/
https://docs.unrealengine.com/udk/Three/NetworkingOverview.html
@BadRomance @xiaowangge @livepps @scar263 @Pur
谢谢各位老哥的指导
综合楼中各位老哥的回复,以及自己查阅的相关资料可以清楚的了解到:
1
across 2020-10-26 10:09:15 +08:00 1
新人基本都没有这方面知识,就是考大学里面那些基础的。前端 C++、C#,后端 Java Golang 之类。
相对来说,前端图形学加成比较大,学习曲线也陡。 如果自己做过游戏 Demo 可能会加分,现在照着教程做 UE4 、Unity 小游戏还是简单的。 |
2
wysnylc 2020-10-26 10:09:34 +08:00 10
别把爱好当工作,要不然爱好没了
|
3
0x2CA 2020-10-26 10:14:07 +08:00 1
我给一点建议把,可以想选择一个引擎进行学习,比如你可以选择 UE4 或者 Unity 或者一些 H5 的网页引擎,先接触一些 2D 游戏了解游戏开发的逻辑,然后往 3D 游戏走.做游戏除了要写代码逻辑以外还需要你会布置界面,会帧动画,骨骼动画,粒子特效,Shader 等等,游戏逻辑是比较吃数据结构和算法的,平时玩的游戏看到的特效就是可能是(帧动画,骨骼动画,粒子特效,Shader 等)做的,好不好看看这些,你也需要了解
|
4
mmqc OP |
5
nyaaar 2020-10-26 10:14:40 +08:00
建议就是快跑!
|
6
mmqc OP @0x2CA 老哥,如果是打算做服务器那边的,也需要了解这些客户端相关的内容么?
感觉这些界面布置跟 QT 很类似. 剩下的那些效果&骨骼动画等等,感觉好像 CG 的渲染啊,这也是开发的一部分么? 感觉好新奇 |
8
across 2020-10-26 10:17:55 +08:00 1
@mmqc
后端主要就是服务器相关知识,难度没大厂那么高,选型看具体要求,只是 Java 多而广···· 相对都具备技术栈要求。 前端 3D 数学必备的,不管是不是图形学相关,这个是基础: https://book.douban.com/subject/1400419/ |
9
coderluan 2020-10-26 10:20:38 +08:00 1
首先, 不建议转游戏开发. 如果还想做, 就想想你自己想做哪类游戏, 你要说什么都行, 就更不建议你转了, 想好了, 就去那类游戏最常用的游戏引擎, 学习引擎过程中约到什么概念不理解, 就再去看相应的书籍.
|
10
0x2CA 2020-10-26 10:21:40 +08:00 2
@mmqc 如果是要做游戏的后端的话需要了解一些常见游戏功能,比如排行榜功能,比如数据存储,比如客户端对战等等,比较关心并发,如果是客户端是底层渲染一般不关心,不然用引擎就没有必要了,底层细节处理好了,其他的也是好学的,2D 游戏好做,3D 多一个轴复杂好多...
|
11
mmqc OP @across 好的,谢谢老哥.
如果只是 Linux 下的 Socket 之类的话,看起来我转的成本比较低. 不过,还是对前端的那种炫酷的效果感兴趣. 看了下目录,感觉大学里有工科类的线代底子,学起来应该不是很难 那,老哥再问一个问题,既然游戏前端需要这么多内容,那相对的门槛是不是略高?还是说,因为需要的内容比较多,所以入行的门槛,(在掌握了必须的知识后)比较低呢? |
12
mmqc OP @coderluan 谢谢老哥.
看到楼上也有老哥说过,不建议转游戏开发的,那个方便问下原因么? 想做的游戏类型,就是基于一个开放世界的框架,往里塞啥都可以的 e 那种.这个是不是目前 UE4 用的比较多? 然后,大概明白了老哥学习方法了,和自己刚开始学编程差不多 |
13
mmqc OP @0x2CA OK,大概有个感性的认识了.
游戏的服务端开发,只要是处理游戏相关的功能性的逻辑,游戏的前端就和 WEB 前端差不多,也主要是效果呈现. 服务端需要的:Socket,并发,数据库, 前端需要的: 图形学,3d 数学 然后,前端需要根据不同的游戏类型来选择相应的引擎. 谢谢老哥 |
14
qq1340691923 2020-10-26 10:29:30 +08:00
不建议学游戏
|
15
mmqc OP @qq1340691923 为什么老哥?
|
16
across 2020-10-26 10:31:57 +08:00 1
@mmqc
小公司小团队客户端(前端)什么都做。大公司一般分的很细了,鹅厂有很细致的岗位分法,做系统、做效果,改引擎等。 现在游戏市场进入寡头阶段了,除了那几个老面孔,就是莉莉丝米哈游这种细分领域,所以不推荐新人进去,除非你在这方面已具备很好的造诣,不然去互联网更明智。 |
17
0x2CA 2020-10-26 10:34:32 +08:00 1
@mmqc 服务器也有没有渲染的游戏引擎,这种,玩家的游戏界面实现帧同步,同步服务器的状态,服务器的运算为准,也有服务器要写 AI 逻辑和玩家对战,也有玩家客户端运算上传服务器,服务器进行验证这些,简单的也简单,复杂的很复杂
|
18
mmqc OP @across 好的,谢谢老哥,了解了.
就是说,做游戏以后的话,也只能是这几家之一了.选择空间比较小,上升的天花板也没互联网那么充裕了.基本上目前是存量市场的互相竞争了. 目前的技术栈以 Linux 下的 C++ 及网络为主,去互联网好像有点困难😂 |
19
shikimoon 2020-10-26 10:39:55 +08:00
为什么还有人想不开的。。。曾经因为喜欢玩游戏毕业就在做游戏开发,然后就转行了
|
20
coderluan 2020-10-26 10:40:19 +08:00 2
@mmqc 游戏行业虽然很赚钱, 但是基本上被大厂垄断了, 小厂别说不赚钱, 随便一个文件就可能直接被弄死, 而你转行一般是很难直接进大厂的, 只能先进小厂, 这个很明显是在走弯路. 不知道楼主为啥要转, 从钱的考虑没这个必要, 你直接转 web 明显更适合点, 从兴趣的角度, 难道你真想去市面上那些坑钱游戏吗.
|
21
mmqc OP |
24
coderxy 2020-10-26 10:44:40 +08:00
我也喜欢游戏,当初就是为了玩游戏才学的 IT,但是现在已经不打算转行到游戏领域了。 在后端做了 5 年了,再去转游戏又是从头开始,而且上面也说了,现在游戏是寡头领域,大多小公司都活不过几年,而且技术适用范围也比较窄。 还是老老实实做 web 后端算了。恰饭要紧。
|
25
mmqc OP @coderluan 谢谢老哥,并不想做那些游戏,只是根据目前的技术栈来看,如果想转游戏的话,转服务端的成本比较低一点.
老哥说的也是,转行的话,也只有进小厂.是在走弯路了,看了下,大厂里面基本都是 3 年左右相关的从业经验. 转 web 也有考虑过,后面还是卡在经验上 |
28
sssooonnnggg 2020-10-26 11:02:28 +08:00
游戏行业 c++还是挺吃香的,无论前端还是后端
|
29
mmqc OP @sssooonnnggg 语言和编程通用的方面(算法啊,设计啊等等)还行,就是苦于不知道技术栈到底怎么点的,从业的话,对经验的要求到底又怎么样
|
30
shikimoon 2020-10-26 11:08:09 +08:00
@sssooonnnggg 扯淡呢,c++后端就少数几个大厂在用了,绝大部分都是 java
|
31
sssooonnnggg 2020-10-26 11:08:51 +08:00
看你想做游戏前端还是后端了,前端比较通用,各个游戏引擎大差不差,图形学是必学的,后端的话不同类型游戏差距很大,也没有太通用的服务器架构,综合来说用什么语言的都有,c++/go/java/erlang 。。。
|
33
mmqc OP @sssooonnnggg 害
|
34
sssooonnnggg 2020-10-26 11:12:40 +08:00
@shikimoon 你说的是后端吧,前端大部分还是 c++,不说 cocos 和 ue4,就 unity 据我所知也有不少用 c++写插件给 c#用的
|
35
shikimoon 2020-10-26 11:16:48 +08:00
@sssooonnnggg 我回复的你说“游戏行业 c++还是挺吃香的,无论前端还是后端”,然而前端用 c++的也不多,cocos 主要是 lua 跟 js,unity 是 c#,也就图形学会用 c++。然而有几个做这个的?
|
36
hiahiahiahia 2020-10-26 12:26:05 +08:00
游戏行业都要加班的,而且基本上 24 小时都要保持联系,一有问题就会给你打电话,我每个周末都要远程解决问题或者帮忙找问题
|
37
mmqc OP @hiahiahiahia 老哥,这也太痛苦了吧,啊这,直接劝退啊
|
38
hanguofu 2020-10-26 13:58:20 +08:00 via Android
楼上这么多高手,有没有人做体感类游戏的啊?
|
39
nicebird 2020-10-26 14:05:07 +08:00
想做游戏还是前端,后端都是通用服务器那套。
|
40
liufish 2020-10-26 14:10:49 +08:00
借楼问一下,各位大佬对 three.js 怎么看?
想用来做一些展示类的界面,带有一些交互的。 |
43
Katrol 2020-10-26 14:26:33 +08:00
老哥,不是开口说想转就转的,现在都要行业经验,社招没功夫再培养你的
|
44
BadRomance 2020-10-26 14:50:21 +08:00 1
前段时间对这块比较好奇,想切入开发点 c 或 c++的东西;单纯兴趣,不了解游戏行业
Game Server development https://www.gabrielgambetta.com/client-server-game-architecture.html Game Networking https://gafferongames.com/tags/networking/ https://docs.unrealengine.com/udk/Three/NetworkingOverview.html Doom3 Code Review https://fabiensanglard.net/doom3/ |
45
wangyzj 2020-10-26 14:50:35 +08:00
看到这个就点进来了
我就是觉得此生不自己搞点游戏出来不完整 |
46
mmqc OP @Katrol 老哥啊,所以我才想找了解下各个方面的所需的技术栈.技术栈匹配的话,那么经验完全是可以借鉴的.
剩下的无非是一些业务上的处理. |
47
mmqc OP @BadRomance 非常感谢老哥,晚上好好看一下这些资料.
|
48
lights 2020-10-26 15:36:42 +08:00 via iPhone 1
我是今年转行的,刚转行成功,可以看一下我的博客 https://lightjiao.github.io/
|
49
calvincc 2020-10-26 15:39:53 +08:00 via iPhone
没经验工作难找,自学怎么也就一些皮毛,语言好搞业务难熟悉
|
52
lights 2020-10-26 15:46:30 +08:00
|
54
xiaowangge 2020-10-26 15:55:27 +08:00 2
只说手游。
前端:cocos2d-x 、unity 、微信小游戏(其实也有不小的了) 后端:Erlang 、Java ( Netty )、C++ 除非你非常 热爱 游戏行业,否则不建议进入该行业。热爱的意思是说,是兄弟就来砍我,你也玩得特别有意思。 技术栈相对互联网来行业来说,游戏行业技术栈相对比较窄。 另外,要考虑一下游戏行业加班的情况。 |
55
mmqc OP @xiaowangge 谢谢老哥.
结合你说的和楼上的相关内容,看起来目前游戏行业环境不是特别好(指做的内容) 技术栈窄,也就是后面的可选择性不大了. 加班,这是楼内出现频率相当高的词了. 总结: 就是目前游戏行业的生态不是很好,且游戏行业的就业方面比较窄,加班严重. |
56
egoistttt 2020-10-26 16:19:55 +08:00
室友从 web 转了游戏后端,据他说写游戏相较于 web 更多是基础的东西,框架方面的比较少了
|
57
mmqc OP @egoistttt 谢谢老哥,不过这个基础的东西是说,用的都是偏向操作系统底层的系统函数之类的(这些很少封装吧)么?
框架是指,原本 web 开发一些基础性的东西,可以直接忽略,然后专注业务逻辑上的内容么? 还是说,游戏开发后端写的都比较基础,而 Web 开发要考虑的比较多呢? |
58
livepps 2020-10-26 16:36:47 +08:00 3
1. 客户端:熟悉一款主流引擎,目前主流是 UE 和 Unity,岗位最多的应该是 Unity,大公司都有 UE 的岗位,绝大多数公司都有 Unity 的岗位,还有部分 Cocos,需要点图形和数学基础,大公司游戏开发一般分工比较细,图形这块有专门的人做;大部分程序员负责写业务;美术资源这块要稍微了解,比如资源规格,端游和手游的美术资源规格不一样的,高品质的资源手机跑不动,或者发热厉害。
2. 服务端:语言的选择,一般看公司和项目,大点的公式,底层一般是 C++,然后业务层接入一个脚本语言来开发,也有纯 C++ 开发的,其他语言比如 Java 、Go 、C#、NodeJs 、Lua 、Python 也都有游戏项目在用;主要用 TCP 和 UDP 通信;协议多数也是用 Protobuf ;数据库这块不好说,看项目了,游戏对数据库要求其实不是很高,数据一般是定时写入数据库,不是实时,所以经常看到网游回档,有些都是回档到前一天,常用 Mysql 、Mongo 、Redis ;服务端开发框架我见过的很多公司都是自己研发的,核心是收发包,每次 tick 跑业务逻辑,大体逻辑分几步,底层网络收发消息,然后业务层解析消息,分发给不同的模块,数据定时入库;平时开发大多数就是做模块功能;上线前做压测,理论上单服要承载几千+的玩家。 3. 补充:不同的游戏类型,除了基础服务,比如网络,日志,数据库这些,业务逻辑开发差别巨大,现在更多是做开房间类型的游戏,因为开发相对简单,可以很容易做成分布式部署。 |
59
frankmdong 2020-10-26 16:50:28 +08:00 2
其实游戏开发的技能点能点的太多了,gameplay 、图形学、引擎等都是可以深入的话题。有兴趣的话可以看看我的博客 http://frankorz.com/2019/12/04/2019-year-end-summary,我去年下半年才毕业开始工作,不过我们公司还好,不发版的时候不怎么加班。
|
60
mmqc OP @livepps 非常感谢老哥!说的太清楚了!
总结一下: 客户端: 基本的图形学,数学基础,美术资源的了解. 服务端: 核心 TCP/UDP 通信.数据的序列化,数据库(实时性要求不太高) 业务: 除了基础业务(日志,通信,数据库)等,基本与游戏类型高度耦合. 扩展:分布式开发 |
61
mmqc OP |
62
scar263 2020-10-26 17:43:50 +08:00
其实直接去看看对应岗位的 jd 就知道了,按 jd 要求去构建自己技术栈,然后去面试当考试就能验证自己的情况了。
|
64
scar263 2020-10-26 18:05:00 +08:00 1
@mmqc 你想去哪个公司就看哪个公司的 jd 就好了,只要是负责任的公司和招聘者,基本上 jd 就涵括了对这个岗位的具体要求和发展方向。
至于你说小公司 jd 没参考价值的话,可能是在一些不大靠谱的小公司存在这种情况;但是也并不是所有小公司都是不负责或者不靠谱的,这个就只能你具体去区分了。 只要是技术主管提出的 jd,基本就应该算是这个公司这个岗位最靠谱的就业方向指导了~~ |
68
Pur 2020-10-26 19:02:51 +08:00 1
游戏后台需求:
新人:基础 linux 、网络通信、数据结构与算法、nosql ; 有一定经验:业务方面、无缝大地图 AOI 实现、技能系统、后台分布式框架、抽奖算法、各类测试、上线运维等经验。 |
69
secondwtq 2020-10-26 19:40:53 +08:00 via iPhone
都是虚的,Gamedev 首要技能是做梦
|
70
black11black 2020-10-26 22:09:42 +08:00
挺有价值的帖子,看了我一直也对游戏开发挺好奇的,哪个男孩儿对游戏开发不好奇呢。
看完感觉后端知识其实没啥,最多涉及一些并发和高性能计算,和一般互联网后端开发的重合度挺高的。可能区别只是在于互联网里面很多滥竽充数写业务代码的,游戏后端更硬一些。 倒是游戏前端,我觉得真是准入门槛很高的行当。像楼上说的,能做的都是大厂,你跳槽又进不了大厂,直接悖论。所以基本都是被一开始就选方向的,还有各大名校毕业好找工作的垄断了吧。 |
72
mmqc OP @black11black 是啊,刚开始就选方向.
问题在于,完全没有人可以咨询,路只能一点点走出来了 |
73
lights 2020-10-27 14:37:39 +08:00
@frankmdong #59
博客内容很充实,收藏到我的 Kanban 里了,感谢分享 |