游戏开发秋招回顾和反思(给明年秋招的同学)

秋招Timeline

25届秋招从7月末开始投递面试集中在8月,9月基本已经在hr面和等offer阶段,泡池子可能会很久泡到10月底

截止今天,拿意向书的有腾讯天美、米哈游,还在泡池子的有字节,转正挂的有雷火(没消息应该是挂了)。

准备过程

2022.09-2023.03

这一段时间主要在上课、给导师做横向(和游戏毫无关联的前端项目)、科研。研究方向是图形学-物理模拟,这段时间,经常看知乎大佬的科研产出,各种炫酷吊炸天的demo,在Disney、Pixel、WetaFx里的特效应用,也想认真搞科研,说不定未来能去国外读博。但是无奈基础太烂,所以这个阶段基本是补基础-焦虑痛苦的过程。先后大概看了这些课程/书籍:games101(渲染入门)、games102(实时渲染)、games103(物理模拟入门)、games104(游戏引擎)、LearnOpengl、RayTracing in One Weekend、连续介质力学的网课(川大)、RobertBridson 《Fluid Simulation for computer graphics》、蒋尘凡夫siggraph course《mpm tutorial》、taichi图形公开课(刘天天)、games201(胡渊明)。也看/做了些项目:参考了Fluid-Engine-dev写了个小的流体解算器、写了个mpm解算器、玩了一下Houdini的脚本/插件/渲染(连连看)、学了一下稀疏空间数据结构(OpenVDB、SPGrid包括他们的论文)、渲染方面写了个简单的软光栅、简单的path tracing、opengl写的一些实时阴影算法。

然后就是跟导师确定要做mpm,看相关的论文,主要以蒋尘凡夫实验室的为主,用的也是他们组的框架,在这一段过程中,深入的学习了一下这个框架,里面的各种无锁多线程染色方法、模版元技巧、各种设计模式、几何算法都写的引人入胜。

也是在这个过程中,发现自己的数理基础很薄弱,没有认真系统学过数值计算、物理方面的计算力学,也没有特别的高性能计算的功底(SIMD、Cuda),我的能力对于搞图形模拟的科研来说显得捉襟见肘,也大概了解了一下行情,做图形科研如果没有若干篇siggraph和博士学位的话是很难进入工业界的,于是开始转型去实习。

2023.04-2023.05

学/复习了这些内容:C++面向对象基础(侯捷)、实际项目中的C++技巧与设计模式(b站小彭)、图形八股、简单学了一点Unity和C#参与了一个unity横向(至今基本不会)、编译连接原理(程序员的自我修养那本书)、复习408(操作系统、网络、组成原理、数据结构)、随缘略微刷题

2023.06-2023.08

实习:去了家医疗行业的小公司、做虚拟手术的物理引擎,老板人很好,交大毕业40多岁,每天亲力亲为推公式写代码、还给我们讲论文。实习中做了一点几何剖分方面的工作,看论文复现为主,但是最后出于性能、稳定性方面的原因,没能搞出来集成进系统有点愧对老板。值得吐槽的是,传统行业C++版本很落后,用的还是98,多线程用的pthread。

2023.09-2024.04

实习:腾讯-ieg-游戏前沿技术,做美术工具,c++ sdk、DCC和引擎插件(maya/motionbuilder/3dsMax/unreal)。做的工作有点偏动画TA,mentor是育碧出身的TA、leader是nvidia、autodesk出身的引擎程序,半年时间除了些许杂活,做了两项很有意思的工作,一个是pose space deformation,另一个是伪物理的动态骨骼(类似于kawaii physics和magica cloth,但是做在maya端)。这个过程,还是比较符合我的理想中的工作内容的,一些线性代数(各种坐标空间转换、各种形式的线性方程组的最优解法)、一些调研(看一些GDC上的内容、一些paper)。Leader、mentor人都很好,中途被分了个活,我觉得对自己提升不大,主动找leader让换个活,他很爽快的同意了并且让我积极的去做一些预研的工作。最后离职的时候还是很不舍,但还是想去项目组体验一下真实的游戏开发流程。

2024.05-2024.06

为了完成毕业要求,在家赶论文,赶在6月投了篇工作。这一过程,主要在写modern c++和houdini插件。然后也带着看了些八股,拿了网易雷火项目组的暑期实习offer

2024.06-2024.09

实习:网易雷火在研unreal项目。做了1个月编辑器工具,2个月gameplay和ui,了解了一下游戏项目组真正的运作过程,日常996写单子。项目组有很多知乎上活跃的大佬,跟他们学习了很多。这三个月还是比较辛苦的,每天9点半到11点随机回家,跟对象打会儿游戏,然后准备秋招。这一阶段因为在做realtime的gameplay,所以更多的是在学引擎源码,包括动画系统(动画蓝图的执行过程、自定义节点)、引擎数据结构(无锁队列、FTaskGraph)、物理系统(chaos)。在雷火的共享文档中也学习了不少内容,包括ue的gc、反射、合批、性能优化技巧(只看过没实操过)。

在 8月份,开始秋招面试,基本是约会议室面试,每次面完都要赶回来跟策划、ux同学沟通业务,赶单子进度。

面试总结

因为我没有投很多家,面试也比较少,可能存在一些以偏概全的主观论断。

大部分面试都是以聊项目、聊实习、聊论文为主,穿插简单八股和算法题/数学题/智力题。当然也有些面试会着重考察计算机基本功,给的题比较公式化,猜测面试官会开个文档,从c++、数据结构、操作系统、组成原理、编译原理、渲染、几何、动画、引擎一条一条的问过去然后记录。还有些面试会着重考察c++和数据结构基本功,会让我完整的实现一个功能完善的数据结构,自己给出测试用例并自检,然后还会提出新的功能要求。

经验教训

  1. 算法科研不死磕,如果自己不是这块料,立刻换方向all in工程
  2. 要有突出的“点”来吸引面试官。如果一个项目/实习/论文能和面试官聊15分钟以上,并且被他不断追问的情况下也能侃侃而谈,那基本稳了。这个“点”,对于游戏开发而言,要么是对引擎某一个子模块/子领域深入调研、断点调试;要么是实践中的对性能优化了百分之多少;要么是搭建了一个很成熟完善的战斗系统之类,并证明他的可拓展性。当然其他的还有很多,只要有大量调研、技术深度、自己的思考......
  3. 基础要扎实(八股)、代码水平(多写、多用高级技巧和设计模式、多参考开源项目重构自己的项目)
  4. 暑期实习要优先选未来想去的城市/工作/岗位,这样秋招时就多一个转正的选择。如果确定要转正了,要向leader要核心的活,否则答辩会被argue
  5. 时间线规划:现在秋招越开越早,提前批一般7月就开了,所以最好4-6月暑期实习,总结整理实习内容之后参加秋招。
  6. 刷题不重要,题刷的多不如业务匹配度高,他想要你的话不会给很难的题,hot100 is all your need。(我到秋招结束只刷了30道题,友塔给了一道hard,明摆着不想要我,我直接说不会,其他公司的每一题都A了)

最后也想问问牛友们offer怎么选

#晒一晒我的offer##你觉得今年秋招难吗##牛客创作赏金赛##你都收到了哪些公司的感谢信?##投票#
全部评论
感觉米家和鹅挑个喜欢的base就好了
1 回复 分享
发布于 10-24 18:19 广东
天呐这就是大佬吗,这样对比一看我读研期间简直荒废了两年指导今年五月份才想起来找实习,着急忙慌的各种基础都没有打牢
1 回复 分享
发布于 10-24 20:47 浙江
不是哥们,你做科研的工作时间用了多久啊😂
点赞 回复 分享
发布于 10-24 18:35 浙江
太牛了…看的我啧啧称奇啊,本来刚开始看还有点酸,后面就释怀了,感觉该你拿offer啊
点赞 回复 分享
发布于 10-24 18:43 瑞典
太吊了,大佬
点赞 回复 分享
发布于 10-24 22:44 湖北
非常好的分享
点赞 回复 分享
发布于 昨天 00:19 辽宁
图形/引擎这边真的不需要刷题。。。我面了30场+就撕过两次题,一次反转链表一次统计二进制1个数。。白刷了400道题。
点赞 回复 分享
发布于 昨天 02:45 湖北
哥们啥学校啊,比起你来我太菜了,但是你简历挂的很多我都过了,但是我太菜了那几个都是笔试完无回应
点赞 回复 分享
发布于 昨天 12:01 湖北
实验室没杂货,太爽了
点赞 回复 分享
发布于 昨天 21:31 浙江
米吧,听说米往鹅跳槽涨薪幅度很大
点赞 回复 分享
发布于 昨天 23:45 广东

相关推荐

点赞 评论 收藏
分享
17 18 评论
分享
牛客网
牛客企业服务