多小伙伴留言问我,进入游戏这个行业以后, 如何做好自己的职业规划与技术路线,本节来給大家分享一些规划的经验。对于入行的开发者,給大家一个分享”一个必须与2个方向”。
(1) 必须: 工作1~5年时间内搭建关于游戏开发的全部知识体系与技术原理;
(2) 方向: 走技术专家路线;
(3) 方向: 走技术管理岗路线;
1个必须
作为游戏开发者,当我们毕业参加工作以后的1~5年是一个非常关键的时期,大学的时候,可能在学校没有学什么东西,在这个时期,我们应该把游戏开发中用到的全部的技术与原理,把这些形成知识体系,完成技术积累。工作1~5年是做知识全面性积累的黄金时段,在这个时段一般我们还没有成家,没有小孩,自由的时间相比结婚生小孩以后会更多一些,这个年龄段,你有更多的时间静下心来学习。而不是被家庭的事情说打扰,这个时间段,也会是我们技术进步的关键的一个时间段。这个时间段我们必须抓住。具体要积累哪些知识呢?主要是按照这些块来进行分类:
(1) 编程语言,数据结构与算法。
我们至少搞明白一种编程语言的核心机制与底层的原理,精通编程语言的编译器与开发工具。基于编程语言能实现计算几种常用的数据结构与算法,以及算法的时间复杂度空间复杂度的分析。这个编程语言建议大家从大学时候的C/C++开始,因为他们是比较底层的编程语言,学习C/C++编程语言能让你深刻的了解整个编程语言的机制,同时往往一些深入底层的东西都需要了解C/C++。C/C++对于游戏开发而言终究是绕不开的编程语言,我也建议大家都深入学习C/C++。数据结构和算法也是需要深入学习的,比如编写树,链表,排序二叉树,图,Hash表等,这些数据结构与算法需要都扎实的搞一遍,这样你才能有底子实现你的想法,我们很多小伙伴有想法,就是写不出代码,没有思路,多半与这个基础有很大的关系,不知道用什么样的数据结构解决什么样的问题。同时要掌握常用的算法思想:贪心,分制,动态规划,穷举,递归等。掌握了这些处理问题的思想和方法,在实际开发种解决问题会很有用。
(2) 游戏客户端开发。
至少掌握与精通使用一种游戏引擎,目前主流的有,Unity, Cocos Creator, Unreal, Laya等。目前按照市场份额,大部分的开发者都是使用Unity游戏引擎,来作为客户端游戏开发引擎。我的建议是掌握与精通一种游戏引擎,同时其它游戏引擎也要关注,并且能开发,这样可以把多个游戏引擎的设计思想与机制融合起来,很多设计思想可以相互借鉴,学习别人的”智慧”。
至少掌握OpenGL与DirectX 3D图形编程的其中任意一种的基本使用,从而让大家对客户端渲染有一个全面的了解与认识。
(3) 游戏服务端开发
至少掌握与精通一种编程语言的服务器开发,C/C++, Java等,学会使用数据库等常用的服务器工具。掌握游戏服务器中的账号注册登录,排行榜,支付等常用的模块设计与开发。掌握网络游戏的常用算法与同步,掌握主流的游戏类型的游戏应该如何做,比如MMORPG, Moba, SLG, RTS等。掌握游戏服务器部署运营,以及分区扩展常用的方式与方法。掌握游戏服务器安全的相关技术。
(4) 深入学习操作系统的核心机制与原理
建议每个同学,都学习以下Linux内核源码分析等课程,从OS的角度深入理解程序,这样你才能做到万变不离其中,其中操作系统主要的部分有:虚拟内存与内存管理,虚拟文件系统,进程与线程,线程调度,抢占式多任务,设备驱动程序的架构与编写,Linux内核的配置与基本编译等。Shell脚本编写,网络设备与TCP/IP协议栈, 了解OS的网络底层如何处理。
积累完上面几个部分的知识以后,这个时候基本上你就是主程级别了,同时具备很强的技术能力,接下来的第5~10年,就是你选一个自己感兴趣的与自己擅长的方向。方向也是可以改变的,看自己的兴趣和爱好。
方向: 走技术专家路线
完成基本的技术积累以后,很多同学可能会深深的爱上做技术,写代码。这个时候就可以走技术专家路线(后期还可以转方向,不重要,随心而已),来解决某一些深层次的专业物体,比如游戏场景渲染与优化,游戏大世界地图技术。游戏开发框架设计与开发工具的打造等。这个方向就是研究游戏行业在某个方向上的最前沿的技术,然后来解决某些难题公关。在这个期间,团队的任何的技术难题,都会以一个一个的找到你,在这个过程中,你不断的思考与学习,深度的去解决这些问题,这个过程能让你获得大家的认可和团队成就感。技术专家路线就相当于特种兵, 单兵作战能力超强,能客服技术困难。
方向: 走技术管理岗路线
处理技术问题一段时间后,终究你会发现,处理来处理去原理都是差不多的,同时不断处理技术问题的过程中,也会有一些做人做事的哲学思想。而这些哲学思想,不仅仅是在技术上。这个时候有些人的性格可能决定做自己,有些人就喜欢带更多的人,管理好更多的事,这个时候我们就可以从做技术到管理岗转变。这个时候我们就需要从工程的角度来思考一个项目是如何在成本可控,风险可控,时间可控的情况下,有调不稳得做出来,同时能疏通好各个其它岗位得沟通与协作。这种对开发者得沟通能力有一定得要求。其实一般好得程序员都是逻辑清晰,沟通也不会差到哪里去。主要是要学会从多个维度去思考问题,看问题站得角度不能只从技术出发,这个是做好技术管理岗得关键。
走完这些后,远没有结束,接下来就是要与市场运营,公司管理等对接起来,自己创业做公司,自己主导做产品,运营产品等。公司的战略,管理,财务制度,人才培训等,又是另外一个年龄段要学得东西了,实活到老,学到老。
标签:游戏,编程语言,掌握,技术,C++,开发者,职业 From: https://www.cnblogs.com/rainy1unity/p/17777450.html