游戏开发不是一朝一夕的事情,真的需要相当多的知识点才能做出好的作品。
(资料图)
硬件知识
开发游戏过程中,真正制约运行速率的是CPU不是GPU,因为大部分游戏都以单线程开发为主,所以一般调试运行的时候基本也是考验单线程能力。购买CPU核心可以买多核的,但是单核频率一定要高,否则运行很慢(我现在极度嫌弃R5 2600了,每次调试都得3秒钟~),MAC除外。
软件知识
语言和引擎
这个大家都知道TS+COCOS,C#+unity,CPP+UE,但是这只是基本中的基本。
关于引擎的选择
这个问题其实不用太纠结,清晰自己的定位,身为开发者就是程序为主,无论用哪个都不能被引擎和语言所限制,要明白引擎只是个工具,哪个工具好用就用哪个。
Unity对于我来说开发2D好很多,并且有相当多的项目和视频可以参考。但是Unity缺点也很明显,就是自己得为自己做一大堆工具:比如我自己做的控制时间工具,控制出生工具,都是挺累人的,一有新的需求旧的工具要么修改,要么重写。想过用别人的插件但是别人的又不一定合适自己(压根就看不懂别人的代码)。
UE大部分用来开发3D游戏的(貌似用UE做2D游戏的没见过吧~王者是),渲染是UE的强项,见过很多人单单用UE的蓝图就做出各种吊炸天的CG或者游戏。其实我也考虑过用UE做游戏,问题在于做个项目出去投简历找工作不难,但是做个独立游戏就得自己兼顾3D建模和美术,不太现实。
3D是个很庞大的游戏项目,个人开发更需要非常大的功夫,厂商也都是有着一条生产线的,每个人基本上都是一颗螺丝钉,各司其职。所以不是真的很有技术和钱,我不太建议个人搞3D项目,拿去面试的没问题,但是独立开发个人搞3D真的太难了。(只针对入行开发的人)
cocos目前来说国内不少岗位还在招聘,但是很少有人建议用Cocos了,因为天花板很明显。
数据结构与算法、设计模式、开发模式
数据结构:数据结构无非是数组,链表,栈,队列,字典(也可以说散列表,作用差不多的),树,那么每一个结构会在哪里使用呢?
数组:在游戏开发中用的较多,特点就是访问快,扩容简单,缺点插入难,删除难。经常用的就是批量生成变量,比如背包
链表:链表的特点就是更新插入删除节点容易,但是访问必须得一个一个节点来寻找(因为只有知道一个节点,才能知道它的下个节点)而数组可以通过下标直达相应的元素,所以链表可以看作是数组的对立面的。游戏中链表用的也很多,但是很少以链表本身呈现(后面讲)。
栈和队列:如果说数组和链表是个真实写出来的物理结构,那么栈和队列就是想象出来的逻辑结构,栈和队列一样,既可以通过数组实现,也可以通过链表实现。
栈的特点就是先入后出,后进入的数据先出,概念网上很多,说太多很多人不理解,那就结合游戏讲解。
关键词:
最新资讯