时间非常紧,能否做到大二上开始实习?
现在的技术差的挺多,主要是居然还在纠结方向。
方向不能同时进行,现在目前看来,C++的游戏开发方向不好走,客户端开发,服务器开发,引擎开发。要么后面就走后端开发。
后端开发,四大件肯定是要学的,还有你纠结的项目。以及可以直接转Go(不清楚学历影响)。
个人肯定是这两者里面选的,但是里面学的内容差别大,游戏开发还要学图形学相关内容。读研可能有。
现在看来,大概率是走后端开发了。进度学习太慢,自驱力太弱。
后端开发,需要四大件首要,然后需要做一个服务器的项目,关于网络编程的项目,以及需要去读几本书,C++必须得读
然后MySQL、Redis、RocketMQ、Docker、Linux、写几个Server项目,后端基础到这里就宣告结束了.
最后保持刷题。
其实如果你实在想转,就转客户端开发。
多的不说了
DeepSeek1
我想问一下,游戏开发卡不卡学历,我是一名一本双非的学生,然后比较想走游戏开发方向,但又比较顾虑。一是走了游戏开发,学的东西往深度学,就与后端开发分开了,但是我更想走的是游戏开发。然后二就是我想知道游戏开发卡不卡学历,我就害怕如果卡了,我就难找工作,最后竹篮打水一场空。不要以安慰我的方式说,就以公平公正的方式发言即可。
你提出的两个顾虑——游戏开发与后端开发的学习路径分叉,以及双非学历在游戏行业中的求职现实,都是非常实际且值得深挖的问题。下面我结合行业现状和招聘逻辑,分几个维度给你做一次客观分析:
🎓 一、学历在游戏行业中的真实作用:不卡死,但影响起点
- 学历是“敲门砖”,但非绝对门槛
头部大厂(如米哈游、腾讯、网易等)在校招或核心岗位中确实存在隐性学历偏好,尤其看重985/211背景,部分岗位甚至直接要求硕士学历。这主要源于简历筛选阶段的效率考虑——高学历候选人通常被认为具备更强的学习能力和理论素养。
但社招完全不同:3年以上经验后,企业几乎只看项目经历和技术深度。例如参与过完整上线的游戏项目、精通Unity/Unreal引擎优化、或有图形学/网络同步等专项能力,双非背景反而会被弱化。 - 双非学生的现实出路
- 中小厂商机会更多:许多中小游戏公司、外包工作室更看重实操能力。根据行业薪资数据,双非本科入职起薪约12K-15K(一线城市),虽低于大厂平均值(18K+),但仍有成长空间。
- 用作品集弥补学历差距:一个技术Demo的价值远高于文凭。例如实现一套多人同步战斗系统、或对Shader/物理引擎做深度优化,能直接证明你的工程能力。
⚙️ 二、游戏开发 vs 后端开发:技能树的本质差异
游戏开发所需技能更垂直且跨领域,与通用后端开发的分化确实明显。以下是核心差异对比:
| 能力维度 | 游戏开发 | 通用后端开发 |
|---|---|---|
| 核心技术栈 | C++/C#、Unity/Unreal引擎、图形学API(OpenGL/DirectX) | Java/Go/Python、Spring/Django、MySQL/Redis |
| 关键挑战 | 实时渲染优化、帧率稳定、物理碰撞检测、防作弊同步逻辑 | 高并发架构、数据库分库分表、微服务治理、API安全 |
| 知识深度要求 | 需掌握图形学基础(如光照模型、LOD)、动画状态机、AI行为树 | 聚焦分布式事务、容器化部署、云原生技术栈 |
| 职业灵活性 | 技能垂直度高,转非游戏领域需重新适配 | 技能通用性强,可迁移至电商、金融等场景 |
你的顾虑验证:
若长期深耕游戏开发(如专研图形渲染或引擎底层),转向Web/云计算等后端领域会存在技术断层,需补充分布式和业务系统设计知识。反之,从通用后端转游戏开发,也需恶补实时系统和引擎原理。
🎯 三、双非背景进入游戏行业的可行策略
针对你的学历起点,建议采取“技术深度+项目背书”的组合策略:
- 死磕高价值技术点
- 引擎专精:选择Unity或Unreal任一引擎,深入其渲染管线定制(如URP/HDRP)、ECS架构或网络同步方案(如Photon/Netcode)。
- 构建可演示的Demo:例如实现一个包含地形生成+动态光影+基础物理的小型游戏,代码开源到GitHub并附技术文档。
- 用实习和赛事突破简历关
- 争取中小游戏公司的实习(如鹰角、库洛等对学历包容度较高),哪怕 unpaid 也值得积累项目经历。
- 参加Global Game Jam或高校游戏开发赛,获奖作品可直接获得大厂HR关注。
- 同步夯实计算机基础
游戏开发同样依赖算法和系统知识:
- 算法:重点掌握空间划分树(BVH、四叉树)、A*寻路、帧同步逻辑。
- 系统:了解内存管理(避免手游闪退)、多线程渲染、数据驱动设计。
💎 四、理性建议:如何决策是否选择游戏开发
- 选游戏开发,若你:
✅ 对实时系统/图形技术有强烈兴趣,愿意持续钻研引擎底层;
✅ 能接受前期薪资可能低于互联网大厂后端岗(约低20%);
✅ 有心理准备应对项目波动(如团队解散、游戏上线失败风险)。 - 选后端开发,若你:
✅ 更看重职业稳定性与技术通用性;
✅ 希望薪资成长与行业强绑定(云计算/金融科技等领域溢价明显)。
💎 最后说一句
双非学历在游戏行业绝非“不可逾越”,但需用更强的技术自证来平衡学历劣势。尽早构建垂直领域的技术作品集(如GitHub技术Demo + 技术博客解析),参与实际项目(实习或独立游戏),中小厂甚至部分大厂的非核心项目组都会为你敞开机会。如果决心已定,现在就是扎实积累系统性项目经验的最佳起点。
DeepSeek2
好,那么引擎开发和客户端开发又有什么区别,学习路线分别是什么,选择的参考依据有什么
关于游戏引擎开发与客户端开发的区别,以及两者的学习路线和选择依据,我结合行业现状和技术要求,为你整理了一份系统分析,避免泛泛而谈,力求直击核心差异和成长路径。
🧱 一、引擎开发 vs 客户端开发:核心区别
1. 工作内容与技术栈差异
- 游戏引擎开发
- 核心目标:构建和优化游戏底层框架,充当“军火供应商”,为游戏内容制作提供技术支持。
- 技术方向:
- 图形渲染(OpenGL/DirectX、Shader编程、实时光追)
- 物理引擎(刚体动力学、碰撞检测)
- 性能优化(多线程渲染、内存管理、GPU/CPU瓶颈分析)
- 工具链开发(编辑器扩展、资产管线工具)。
- 知识深度:需精通计算机图形学、线性代数、3D数学,对硬件架构(如缓存机制)有深入理解。
- 游戏客户端开发
- 核心目标:使用引擎工具实现游戏玩法逻辑,是直接“上战场的集团军”,负责将策划需求转化为可玩内容。
- 技术方向:
- Gameplay逻辑:战斗系统、任务流程、角色控制(3C:Character/Camera/Controller)
- UI/UX实现:背包系统、技能界面、交互反馈
- 动画与AI:状态机、行为树、寻路算法
- 网络同步:帧同步、状态同步。
- 知识广度:需熟悉引擎API(如Unity的C#或Unreal的蓝图/C++),强调工程实现能力和游戏设计理解。
2. 技术要求与学习门槛
| 维度 | 引擎开发 | 客户端开发 |
|---|---|---|
| 核心语言 | C++(主导)、HLSL/GLSL | C#(Unity)、C++(Unreal)、Lua |
| 图形学要求 | 必需(渲染管线、PBR、光照模型) | 可选(基础即可) |
| 数学基础 | 线性代数、微积分、3D数学 | 基础数学即可 |
| 调试重点 | 底层性能优化、内存泄漏 | 游戏逻辑Bug、交互体验 |
3. 职业发展路径
- 引擎开发:技术天花板更高,资深岗位多聚焦于渲染专家、引擎架构师,适合热衷底层技术突破者。
- 客户端开发:发展路径更宽,可转向技术策划、主程或制作人,强调跨职能协作能力。
📚 二、学习路线:引擎开发 vs 客户端开发
1. 引擎开发学习路线(以Unreal/C++为例)
- 基础阶段:
- 编程语言:精通C++(内存管理、多线程、模板元编程)。
- 数学基础:线性代数(矩阵/向量运算)、3D数学(四元数、欧拉角)。
- 图形API:OpenGL或DirectX 11/12入门,实现基础渲染管线。
- 进阶阶段:
- 计算机图形学:学习实时渲染技术(PBR、阴影算法、LOD)。
- 引擎源码:分析Unreal引擎架构(渲染模块Deferred Shading、物理引擎Chaos)。
- 专项技术:选方向深耕(如Vulkan编程、光线追踪优化)。
- 高级阶段:
- 性能优化:GPU Profiling、多线程任务调度。
- 工具开发:用Python/C++开发引擎插件(如自动化测试工具)。
推荐资源:
- 书籍:《Real-Time Rendering》《Game Engine Architecture》
- 实践:复现UE5 Nanite/Lumen技术Demo。
2. 客户端开发学习路线(以Unity/C#为例)
- 基础阶段:
- 编程语言:掌握C#(委托/事件、协程)。
- 引擎操作:Unity编辑器使用(场景搭建、Prefab、动画系统)。
- 小项目实践:完成2D平台游戏(角色移动、碰撞检测)。
- 进阶阶段:
- Gameplay系统:实现背包/技能系统、AI行为树。
- 网络与多线程:Photon网络同步、异步加载资源。
- 性能调优:DrawCall优化、GC控制。
- 高级阶段:
- 架构设计:ECS框架应用(Entitas/Unity DOTS)。
- 跨平台适配:针对iOS/Android的Shader优化。
推荐资源:
- 教程:Unity Learn官方课程、Brackeys系列视频
- 项目:开发多人联机Demo(如简易MOBA)。
⚖️ 三、选择依据:如何确定方向?
1. 兴趣驱动
- 选引擎开发若:
✅ 对图形/物理模拟有强烈好奇心,享受解决底层性能问题。
✅ 能接受前期学习曲线陡峭(如推导BRDF方程)。 - 选客户端开发若:
✅ 热衷游戏玩法设计,喜欢快速迭代原型(如设计关卡逻辑)。
✅ 擅长与策划/美术协作,对用户体验敏感。
2. 能力适配
- 引擎开发:需强数学/系统功底,适合爱钻研算法和硬件者。
- 客户端开发:需工程化思维,能高效实现复杂业务逻辑。
3. 职业目标
- 引擎开发:长远看技术壁垒更高,大厂资深岗薪资潜力大(如腾讯T14)。
- 客户端开发:转管理或设计岗更灵活,中小厂需求量大。
💎 四、给双非学生的务实建议
- 用项目弥补学历:
- 引擎方向:复现UE5渲染特性(如Lumen全局光照),开源至GitHub。
- 客户端方向:上线完整小游戏(如Steam独立游戏),展示全流程能力。
- 实习切入策略:
- 引擎岗:投递中小厂工具链开发(如网易编辑器扩展岗)。
- 客户端岗:优先UI/逻辑开发(如鹰角网络Gameplay实习)。
- 技术栈交叉学习:
- 客户端开发者学基础图形学(如Shader编写),引擎开发者了解Gameplay架构,提升岗位兼容性。
💎 总结
引擎开发是技术深度的代表,适合“工匠型”人才,靠底层能力构建职业护城河;客户端开发是创作实现的桥梁,适合“导演型”人才,靠综合设计思维驱动游戏体验。无论选哪条路,双非背景都需以高完成度项目+垂直技术博客建立个人品牌。若决心已定,现在即可按阶段学习,用作品集打开第一道门。
有几个弱点需要注意:
一、在实验室太过于慵懒,没有起到学习的效果,影响到了他人,当斩
二、学习目标不明确,学习不专注
现在大致规划一下
第一,优先以找实习为主,学习MySQL,Redis,Linux,RocketMQ,Docker
并行学习Unity引擎,以及图形学(优先图形学,难理解困难适当转回Unity引擎)
第一条学习到一半的时候,加入计网学习,根据情况(计划第一条路线学习完),后续再加入学习操作系统
途中开始写项目。
第二,看书,背八股。看书很重要,
DeepSeek3
我想去看后端技术的一些书籍,例如c++Primer ,Effective_C++,STL源码剖析,深度探索C++对象模型。我从C++Primer开始看,但这一本书已经看了两三个月了,一直没有读下去,到底该怎么读书呢?
我完全理解你此刻的挫败感——面对《C++ Primer》这样厚重的经典书籍,独自在知识的海洋中挣扎,坚持了两三个月却感觉原地踏步,那种疲惫和迷茫我能真切感受到。请相信,这绝不是因为你不够努力或不够聪明,而是技术书籍特有的学习曲线在考验着每一位追求进步的程序员。技术书籍的厚度不是用来吓退初学者的,而是为了在每一个你迷失方向的时刻,提供足够的坐标让你重新定位。让我们一起来破解这个困境,找到属于你的高效阅读之道。
🔍 核心问题诊断:为什么读不下去?
- 内容过于庞大和基础: 《C++ Primer》是一本百科全书式的教材,旨在全面覆盖C++基础到进阶的所有概念。它的内容非常详尽,但也意味着信息量巨大,阅读节奏容易变得缓慢和枯燥。
- 试图“读完”而不是“学会”: 你可能陷入了“必须从头到尾一字不落读完”的陷阱。对于技术书籍,尤其是这种大部头,追求“读完”往往效率低下且容易放弃。
- 缺乏实践和应用: 仅仅阅读而不动手写代码,知识点无法内化,很快就会遗忘,导致挫败感。
- 缺乏明确的目标和优先级: 不知道哪些内容是当前最急需的,哪些可以稍后学习。
- 阅读方法单一: 只采用“逐字逐句精读”一种方式,容易疲劳。
🚀 高效阅读技术书籍的策略
- 转变心态:从“读完”到“学会”
- 目标驱动: 明确你当前学习C++的具体目标是什么?是为了找工作面试?做学校项目?参与开源项目?了解底层原理?目标决定了你需要优先掌握哪些知识点。
- 接受“跳跃式”学习: 技术书籍不是小说,不需要按顺序从头读到尾。大胆地跳过暂时用不到或者过于深入细节的章节(比如某些复杂的模板元编程细节,可以在有需要时再回来查阅)。
- 把书当作参考手册/词典: 它的主要价值在于在你需要了解某个具体概念、语法、库组件时,能提供准确、权威、详细的解释。不要怕“查书”。
- 采用“主动阅读” + “刻意练习”
- 边读边写:这是最重要的策略! 打开你的IDE(VS Code, CLion, Visual Studio等),为每一章或每个重要概念创建小的测试程序。
- 看到
vector的用法?立刻写几行代码初始化、插入、删除、遍历。 - 看到类定义?马上定义一个简单的
Person类,包含数据成员和成员函数。 - 看到继承?写一个
Animal基类和Dog/Cat派生类。 - 看到智能指针?用
std::unique_ptr和std::shared_ptr写几个例子,体会所有权转移和引用计数。 - 目的: 验证理解、发现疑问、加深记忆。编译运行,观察结果,调试错误。
- 看到
- 动手实验: 不要满足于书上的例子。尝试修改例子,看看会发生什么(比如故意写错类型、访问越界、尝试修改
const对象等),理解编译错误和运行时错误。 - 做笔记(有效的): 不是抄书!用自己的话总结核心概念、关键语法、易错点、最佳实践。可以画流程图、类图、思维导图。推荐使用Markdown笔记(如Obsidian, Notion, Typora)方便整理和检索。笔记的核心是你的理解和疑问。
- 边读边写:这是最重要的策略! 打开你的IDE(VS Code, CLion, Visual Studio等),为每一章或每个重要概念创建小的测试程序。
- 制定合理的学习计划和节奏
- 分解任务: 将《C++ Primer》按章节或主题拆分成小块。例如,“本周目标:掌握第3章(字符串、向量、数组)和第4章(表达式)的核心内容”。
- 专注核心: 优先掌握最常用、最基础的部分(变量、类型、控制流、函数、类基础、STL容器
vector,string,map,set及迭代器、智能指针)。像模板元编程、locale等高级或冷门主题可以放到后面。 - 番茄工作法: 设定25分钟专注阅读/编码,然后休息5分钟。避免长时间疲劳作战。
- 固定学习时间: 每天或每周固定投入一段时间(哪怕只有30-60分钟),比偶尔一次长时间突击效果好得多。
- 多种阅读方式结合
- 概览/扫读: 快速浏览一章的标题、小标题、图表、代码示例、总结部分,了解这章大概讲什么,建立框架。
- 精读: 对核心概念、关键机制(如对象生命周期、内存管理、虚函数机制)进行深入阅读,务必结合代码实践。
- 查读: 当你写代码遇到具体问题(比如
map的insert和emplace有什么区别?const成员函数怎么用?),直接去书中索引或目录找到对应部分查阅。这才是技术书作为工具书的最大价值。 - 跳读/略读: 对于暂时不重要的细节、过于复杂的例子、或者你已经熟悉的内容,快速扫过即可。
- 利用外部资源辅助
- 在线教程/文档: cppreference.com 是终极权威参考,语法、标准库文档极其详尽。菜鸟教程、Runoob等中文网站有时能提供更简洁的入门解释。
- 视频教程: Bilibili上有许多优秀的C++教学视频(搜索“C++ Primer”、“C++基础”、“侯捷”等),通过视听结合的方式可能更容易理解某些抽象概念。但视频不能替代动手写代码。
- Stack Overflow / 知乎 / 论坛: 遇到具体问题去搜索,通常能找到解答。注意辨别答案质量。
- 与他人交流: 加入学习群组,参加线下/线上技术沙龙,向有经验的人请教。教别人是最好的学习方式。
- 针对你书单的进阶建议
- 《C++ Primer》打基础: 坚持用上述方法,掌握核心语法、面向对象基础、标准库基础(容器、算法、字符串、IO)、模板基础、智能指针、RAII。达到这个目标后,就可以进入下一阶段。
- 《Effective C++》提升实践能力: 这本书是Scott Meyers总结的55条改善程序与设计的具体做法。它不是系统教材,而是告诉你“怎么做更好”和“为什么”。在你有了一定基础(比如学完《C++ Primer》核心部分)后,这本书价值极高。它相对独立,可以一条条看。强烈建议在看完《C++ Primer》核心后优先看这本。它会极大地提升你写出正确、高效、易维护C++代码的能力。
- 《深度探索C++对象模型》深入理解机制: 这本书由侯捷翻译,深入剖析了C++底层对象模型(如内存布局、虚函数表、构造/析构过程、模板实例化等)。它需要较好的基础,建议在《Effective C++》之后,且当你对“C++底层到底发生了什么”产生浓厚兴趣时再看。非常有助于理解性能、多态等机制的根源。
- 《STL源码剖析》学习库设计与实现: 同样是侯捷的书,深入分析了SGI STL的实现源码(虽然有点老,但核心思想永恒)。学习优秀的库设计模式、泛型编程技巧、内存管理、迭代器设计等。这本书对提升编程功力非常有帮助,但难度较大。建议在熟练掌握STL使用、有一定模板基础后再看。可以和《Effective C++》交叉阅读。
📅 行动计划建议
- 暂停无目的的硬啃: 不要再强迫自己“必须读完第X章”。
- 明确短期目标: 例如:“掌握C++基础语法、类与对象、STL常用容器和算法,能独立编写小型面向对象程序”。
- 制定计划:
- 回顾《C++ Primer》目录,标出核心章节(如:Part I: C++基础;Part II: C++标准库 – 容器、算法、字符串、IO;Part III: 类设计者的工具 – 拷贝控制、重载、对象移动;第12章 动态内存(智能指针))。
- 为这些核心章节设定每周目标。
- 每个学习单元(如一小节或一个概念): 阅读 -> 理解(画图/总结) -> 动手写代码验证/练习 -> 做笔记(用自己的话)。
- 立即开始动手: 今天就开始,针对你当前卡住的地方,或者回到一个基础概念(比如
vector或class),打开IDE写代码! - 考虑并行《Effective C++》: 如果你觉得《C++ Primer》某些部分暂时太枯燥,不妨先跳着看几条《Effective C++》中你感兴趣且相对独立的条款(比如关于
const、资源管理、多态的条款)。这会给你带来即时的“学到有用东西”的成就感,并反哺你对基础的理解。 - 允许自己“用不到的先跳过”: 对于模板元编程、
regex库、random库等,如果当前目标用不到,果断标记后跳过,以后有需要再查。
🌟 最后也是最重要的
- 坚持写代码! 没有实践的阅读是无效的。哪怕是一个小小的
Hello World变种,也比光看不练强。 - 保持耐心和信心: 学习C++是一个长期过程。遇到困难很正常,重要的是找到方法并持续行动。
- 享受过程: 当你亲手写出代码并看到它按预期运行时,那种成就感是巨大的动力。
技术书籍如同建筑图纸,而代码才是真正的建筑材料。图纸的价值不在于被完整背诵,而在于在你动手建造时能迅速找到正确的构造方法。 你现在已经拥有了一份优质图纸,接下来要做的就是拿起工具,从最基础的结构开始搭建。每一次编译通过,每一个功能实现,都是你技术大厦的一块坚实砖石。坚持下去,当你的项目逐渐成型时,回头再看那些曾经让你望而生畏的书籍,你会发现它们早已成为你工具箱中最熟悉的部分。
期待听到你突破瓶颈的好消息!如果某个具体概念或章节让你特别困扰,也欢迎随时告诉我,我们可以一起探讨解法。你现在对哪个C++特性最感兴趣?或者最近在尝试实现什么功能?🌟
附:请多学英语
