在一款游戏的制作流程中,程序在其中主要扮演什么样的角色。相对策划的奇思妙想,美术的妙笔连山,程序应该说是创造发明的最后一环,将大家的思想融汇其中,落地实现,用代码来书写最终的游戏作品。
在游戏团队中,程序开发岗位也是多种多样的,在当前手游逐渐向精品化、工业化转型的阵痛期中,开发岗位将会越分越细。
下面「字符无限科技」将就一般的中大型团队游戏开发主要分组及其职责,就业面试技巧。
游戏程序岗位分
工具组
主要帮助程序、策划、美术、QA等其他岗位实现一些自动化或者半自动化工具,其目的是增加开发效率、构建一些定制化编辑器、美术导出导入工具等等。这部分的程序的需求来源多种多样,是一个可以锻炼综合能力的小组。
UI组
UI组的程序应该熟悉、精通各种UI技术,在界面上可以玩出花来。他们的需求一般是从策划出发,再到UI、GUI推进,最终落地到项目内。相对工具组,UI组的程序接触的岗位相对较少,但是链路相对完整,可以学习到各种2D UI技术。
GamePlay组
终于到了gameplay组,游戏中的各个玩法。PVP PVE 任务等等模块都是由这个组的同学手把手实现,这个组的同学会经历更加完整的需求链路。从策划提出案例、评审、玩法落地、逻辑测试、质量测试一个完整的功能流程。
这里我们以王者荣耀为例,一个英雄如何释放技能,如何受击,如何与小兵进行交互,都是需要gameplay程序来实现具体功能的。这个可以说是实现游戏的核心项目组,也是人数最多的一个组。
引擎组、图形渲染组(选配)
在大型团队内,一般会配备这类程序,这些程序主要解决一些疑难杂症,或者引擎本身无法原生解决的问题,都需要这些程序同学来倾力解决。
比如我们需要想要实现一个特殊的物理效果--破碎效果,但是引擎却无法原生支持,这个时候就需要引擎组程序介入从底层实现这个功能,这样做gameplay的程序就可以在上层实现这个具体的功能啦。
同时作为一名图形程序,需要有计算机图形学和数学的基本知识,需要可以实现一些常见的渲染效果。比如我们想要一个光照效果或者一个阴影效果都需要图形程序的支撑。
游戏客户端开发面试技巧
作为客户端开发工程师新人,大家在入行的首份工作还是比较重要的,尤其是想入行就切入大厂的同学,最好能好好准备每一场面试。
作为软件工程师,技术面试绝对不能马马虎虎的,要认真对待;锱铢必较。
一般来说Unity客户端程序会围绕以下几个模块进行面试的,对于刚入行的同学来说,必须要掌握的是计算机基础知识、数据结构和算法,在这个基础之上会使用一些Unity常见功能,其中图形学是进阶加分项。
一般来说Unity客户端程序会围绕以下几个模块进行面试的。
Unity 基础模块
Unity的基础能力,其中包括对于UI、动画、物理、资源管理等模块询问,主要考察候选人对这些模块的熟悉、理解、深入程度,会根据候选人的工作年限进行不同程度的面试。
作为初级工程师,不要求大家对模块原理有深入了解,达到可以了解使用的程度即可。
UI :各个控件如何使用,ui元素坐标如何计算,锚点如何使用等等;
动画 :了解骨骼动画和帧动画的区别和使用方式,对动画状态机有一定的理解和使用等等;
物理 :两个物体碰撞的基本条件,相关回调事件的顺序等等;
资源管理 :会使用Assetbundle进行资源构建、打包、加载;
Editor :会进行一些简单的Editor开发;
计算机基础知识
这部分主要是从网络、操作系统、编译原理等等方面进行面试。主要考察候选人的基础是否扎实,因为在工作年龄增长的过程中,基础能力决定了一个人可以走多远,走到一个怎样的高度。所以大家一定要重视基础知识方面的学习和巩固。
其中网络基础知识一定是重中之重,TCP/UDP/HTTP这些常见协议特征和用法一定烂熟于心。
软件编程
这部分里边,会重点面试一些语言基础和设计模式。主要考察候选人的语言编码能力和架构理解能力,在当前游戏往中重度转型的过程中,要时刻注意自己的架构理解能力,有时候一个简单的业务可以几行代码快速实现,在工业游戏里这却是不一定的。
工业游戏里模块相对解耦,同时还要注重拓展性,所以编码的时候尽量使用简单的设计模式去构建一下。
这部分主要考察候选人对业务问题的抽象能力和数据结构的合理性,类似常见的数组、链表、二叉树等等要熟悉会用,对于一些常见问题的算法要知道,对于一些常见类型的问题要知道其最优解是什么。最终可以实现当拿到一个复杂问题时,可以化整为零,拆解再组装,进行合理的面向对象设计。
计算机图形学
这部分按理说要合并到计算机基础知识内,但是由于这块的特殊性,单独列出来。一般来说客户端程序不需要有图形学的知识,但是如果了解图形学会让你在客户端的深度上更上一层楼。
了解图形学,要懂得渲染管线的发展史和基本原理,对于一些常见的渲染模型要了解,对于关联的色彩学也要有一定的认知等等,在这些基础之上,最好有一些常见效果的经验积累,这样就可以达到图形学入门的水平了。
在面试结束时别忘了礼貌地与面试官告别,之后便开始耐心的等待。面试结果要以HR的正式通知为主,一般3 - 5天就会有面试结果,如果等待时间过长,则可以联系对接的HR进行咨询。