身为一个专科生,大学期间学了几个月的代码,从bilibili看项目学会cocos,开始在北京上班,做过网赚,做过微信小游戏,几乎所有平台小游戏,做过合成类app,发现4年工作下来,工资涨了,却没感觉到自己的提升,游戏开发过程遇到问题几乎网上都能找到大神博客解决,出去在面试根本不知道自己学会了什么,面试大厂上来问各种c语言,问缓存处理,可是我从来没基础或者说系统性的学习过代码。现在有ai,不会的问问,网上一找,几乎不会有无法解决的困难。看什么学shader,学3d但是我认为我2d根本就没学明白,我现在就是很困惑我到底该怎么往下面发展,我确实可以靠现在的能力混日子,但是确实还是想多挣点钱,能参与中型甚至大型游戏的制作。我不知道我到底是应该去看C#学unity还是去看c++补充自己基础知识,目前在bilibli上学c++也不知道自己选择的对不对,因为我现在确实用不上c++ 我开发ts就够了,但是你让我去学,去研究我也不知道我还能去干啥,也不知道应该去干啥,非常困惑,希望有个人能来帮我解惑。
一样,我没兴趣学已经摆烂了
你可以问问ai,ai 给出的规划路线图可能比人给的还详细有条理。
其他答案的话,就是你先独立自己做个项目,自然会知道自己哪里缺少,然后再深入去学。
AI给你的答案如下:
你的困惑是许多中途职业开发者都会遇到的问题,特别是当觉得自己没有显著进步时。根据你目前的背景和经验,我有几个方向建议,希望能帮助你找到更明确的发展路径:
- 系统化学习基础知识
你提到在面试大厂时会被问到C语言和缓存处理等系统性问题,而这些是你没有深入学习过的。虽然你目前工作主要用TypeScript,但如果你有兴趣参与更复杂或大型的项目,掌握一些底层原理和性能优化的知识是非常有帮助的。以下是几个你可以考虑的方向:
• C++ 基础学习:即使你现在用不到C++,学习C++有助于你理解底层的内存管理、指针、缓存处理等原理。这些知识对于优化游戏性能和理解底层系统架构非常有帮助。特别是如果你有志向参与大型游戏项目,C++ 是必备技能之一(比如在 Unreal Engine 开发中)。
• 计算机基础:你可以系统性地学习操作系统、数据结构、算法和网络编程。你提到面试时遇到C语言问题,其实C语言是一种理解底层机制的好工具,补充这些基础将让你更具备面对复杂问题的能力。
- 选择合适的引擎和方向
你当前使用Cocos进行开发,这对2D游戏非常合适,但如果你对3D游戏开发有兴趣,可以考虑:
• Unity与C#:Unity 是非常广泛使用的游戏引擎,学习Unity和C#能够让你接触到更多中型和大型项目。Unity生态非常丰富,从2D到3D都能很好地覆盖。
• Unreal Engine与C++:如果你想进军大型游戏开发领域,Unreal Engine是非常受欢迎的选择。它广泛应用于3A大作,学习Unreal能够给你带来更具挑战的项目机会。虽然学习曲线比Unity稍陡,但在学习的过程中你会对引擎和渲染有更深刻的理解。
- 提高专项能力
你提到Shader和3D的学习,这些技能不仅仅局限于3D开发,很多2D项目也需要高效的渲染和特殊效果。提高这些专项能力可以让你在现有领域获得更深层次的技术积累:
• Shader编程:Shader是实时图形渲染的核心,学会编写高效的着色器能大幅提升你在视觉效果上的表现力。即使是2D游戏,掌握Shader也能让你设计出更复杂的光照、粒子效果。
• 性能优化:对于中大型项目,性能优化至关重要。学习如何通过减少Draw Call、内存优化和加载机制优化提高游戏运行效率,也是你向上发展的重要途径。
- 探索AI与工具开发
你提到AI技术的便捷性,或许可以考虑通过学习AI或工具开发进一步提升效率。游戏开发中的很多流程可以通过自动化或工具来提高生产力。比如使用AI生成游戏内容、工具化开发流程、甚至优化玩家体验等方面,都是你可以进一步学习的方向。
- 实践项目与积累经验
尝试参与或构建一个较为复杂的游戏项目,可能是验证自己技能的好方法。你可以从开源项目开始,通过实战了解更多的工作流、架构设计,以及如何解决复杂的问题。或者尝试加入一些志愿项目、比赛、Game Jam等,也能帮助你快速成长。
总结
• 如果你想走大型项目方向,学习 C++ 和 Unreal Engine 是不错的选择。
• 如果你更希望系统化学习开发技能,补充计算机基础知识和性能优化能力可以让你在面试中更具竞争力。
• Unity 和 C# 是另一条可以让你快速上手的道路,也更贴近市场需求。
可以根据个人兴趣和职业目标来权衡学习方向。无论是提升基础,还是深入某个专项能力,你的长期积累都会为未来打开更多的机会。
其实他们说的都不太准确,我们打工的其实都是业务驱动的,没有实际业务,真想提升点啥很难的,即使给你看完了《如何成为架构师》,没有实际业务过两个月就忘了,平时关注关注新技术就行,真要提升还是要自己挤出点时间从0去搭一个稍微大型的项目,接触接触服务器的内容,关注关注各种模型,自己实际搭建的时候运用上,实在没时间就去看看论坛大佬的共享项目,他们的架构思想很有益的,多想想为什么要这样写。
感觉可以先把我自己会的各种东西整理到一个项目里面,自己都实现以下,然后全部做成通用模块再把这些模块全部联合起来,我去git开个项目试试,感觉整出来面试的时候应该也会有用。
作为一个工作15年的 非计算机专业的大专生,我建议你先去刷LeetCode 至少刷个400道题,如果能刷道1000道题。技术上的迷茫你就阔然开朗了。相信我!
建议提升路线:先看数据结构–>刷题–>设计模式–>框架临摹–>自己实现框架–>OpenGL入门–》3D数学基础–》Shader渲染。
边工作边学习,整个流程大概两三年左右,学完能打败全国90%月薪四万的程序员。别纠结学什么引擎。工作用什么就先用着。学完这些内功心法再考虑引擎的问题。
大学有幸,参加了两年ACM,虽然战绩一般,但终身受用
程序=数据结构+算法
万变不离其宗,算法刷多了,自然而然就有计算机学科的思维方式了。就像学英语的语感一样。
这样才能触类旁通,举一反三。
能不能在你现在做的游戏的基础上,用自己的思路去实现架构,算法,性能等方面的优化和处理呢?我不相信你们主程的方式就一定是对的,总能有可以打磨的地方,你的方式如果比你主程的效果更好,更高效,那就说明你的琢磨是有效果,是可以进步的
技术够用就行,给予jd与实际业务学习。
如果偏向cocos的话去看看开源项目或者网上买点中重度的源码,尝试把它吃透并把一些方案用到自己的游戏/demo中。学c++是去魔改引擎去的,比如音效,资源管理,合并特性pr等。
如果unity的话资源就更多了。
反正两边都卷,好工作难找,而且不见得有这么多资源让你顺利参与中重度/高价值项目,有愿意提供信息与机会的人脉还是需要多去利用利用的。
最后,是时候去准备点好启动的副业了。
好的,我就是根本不知道我现在做的到底是按照路线走的还是就根本不对,学车还有个科一科二科三科四,我感觉自己就好像直接上路了,到一个地方按照导航走,导航说怎么走我就怎么走。看视频知道那里是油门,那里是刹车,但是导航一关看不懂路标,不知道路名,就认得信号灯和斑马线。以至于现在你让我去北京我能去,但是为什么走这条告诉,办理进京证我却不知道为什么,只知道大家都这样,我也就这样。
非常能够理解。因为我刚入行两三年的时候,也是这种迷茫感。当时看了马士兵的一些设计模式和求职技巧视频,里面的一些观点触动了我,开始从数据结构和算法学起,慢慢就不迷茫了。
看你们说的我理解就是,我现在需要做的就是提升自己的思维,让自己从应用到真正的开发,有自己的思维。刷题也好,去自己做框架也好都是在干这件事情。多谢大佬
你说的只是算法和性能的优化,我觉得这其实算前端的基本功,对个人成长真没有多大帮助,要想有一个大的突破还是要把书面的东西和实际代码联系起来,有的时候不是非黑即白,也不是某个框架模型更好的问题,而是适用性的问题,MVC,MVVC,MVP哪有什么更好一说,单例,观察者,工厂哪有更好一说,适合项目的才是最好的,你让他现阶段就能看出主程的框架好不好不现实,要是养成那种关注别人算法,总觉得这能优化那能优化更不利于以后团队合作,因为你站的角度不是业务的角度,你不一定了解这个算法函数写的时候背景和要求,你只是觉得能优化,优化完可能可读性变差了呢,扩展性变差了呢。并不是能看出来主程写的某个算法能优化就算进步
另外论坛大佬的项目有的是开源的,那是集体的智慧结晶,我觉得即使是主程看了也会或多或少有所收获
这就是问题症结所在了,你学了东西,不去练习,不去结合项目思考,久了还是会忘记的。 我要说的不仅仅是算法和性能。而是项目里的方方面面,要学习项目里好的地方,同时也应该思考有没有更好的方式,这是对自己的锻炼。再通过自己的实践去验证。而且我也从来没说过要去改别人的代码。就像你说的,如果你优化后变差了,那就不能说是优化,而是恶化。所以我觉得你对我的说法理解有偏差,并不是我想表达的意思
所以你拿我的观点来当成自己的观点来回复我是吗?
另外什么才叫优化呢,我算法时间复杂度减少了,但是空间复杂度增加了算优化吗?我时间复杂度减少了空间复杂度也减少了,但是这个是多变函数,扩展性差了算优化吗?他问的是职规,你让他去看某个算法优化我觉得挺不在理,你回复我的话挺短的,我应该没有理解偏差
要学一手炒饭炒面了,这行对年龄的恶意还是蛮大的。企业喜欢新鲜血液,看你这条件,再学下去也没什么优势,边看边找找其他出路吧。
能不能在你现在做的游戏的基础上,用自己的思路去实现架构,
就是这么一句话,没别的多的意思,要学会思考,去结合。没见哪个观点是你的