⑴ 游戏行业的程序员一般有哪几类分工
游戏程序员也是有分工的,比如说图形程序、逻辑程序、工具程序等等
图形程序主要负责游戏画面的显示,对于3D游戏来说,图形渲染包括模型、材质、贴图的显示,光照和阴影的效果等等,这可以说是游戏编程中技术含量最高的部分。从事图形程序需要良好的3D数学训练,线性代数、图形学是需要主要攻克的课程,现在业界主流使用DirectX作为底层库,这也是比较基础的技能。
逻辑程序员对于外行人来说其实是个比较抽象的概念,其实就是控制游戏世界的规则,我举个简单的例子,比如说俄罗斯方块里,一个规则是如果一个方块落下之后发现有行满了,就会消掉这些行,然后上面没有被消掉的行会按位置下降。在游戏世界中,你能看到的一切gameplay都要依赖逻辑程序来控制,在绝大多数情况下,逻辑程序在代码数量上占据了游戏程序的主体。
业界主流的发展越来越倾向于这样一个认识,策划创造游戏的玩法,美术创造游戏的画面,而程序的职责是为他们提供帮助。这种帮助主要就是提供给他们工具,在游戏开发流水线越来越进化的今天,工具的好坏对游戏的质量起着决定性的作用。一些典型的工具包括地形编辑器、场景编辑器、脚本编辑器、粒子编辑器等等。对程序员来说,编写工具程序往往需要掌握Windows(或其他操作系统)编程的能力。
当然还有很多很多其他的分工,比如AI程序员负责编写怪物和BOSS的行为,角色的寻路,UI程序员负责编写游戏的界面,比如各种菜单、状态的显示,服务端程序员负责编写服务器端的逻辑程序等等。鉴于答者的工作,这种分类其实主要是按照3D网游来讲的,其他不同平台不同类型的游戏当然会有不同的分工,不过大体上差不多。而且这些分工很多都是有交集的,并没有选了其中一种就不会做别的这种事,分开来讲只是希望能有个大概的印象。
⑵ Supercell前分析总监:从创意到研发,如何打造一款游戏
上次我们发布了一篇Supercell早期前分析总监Joakim Achrén关于 创业早期该如何选品 的文章,本次Joakim带来了如何打造一款 游戏 的分享。
游戏 虽然是一个创意行业,但很多时候,是建立在已有玩法基础上的改良。那如何才能找到合适的创意,并将其制作出来?Joakim的方法论,对开发者,尤其是新手开发者,具有一定的借鉴意义。
游戏 创意来源有几大类,但 秘诀是体验和研究 游戏 ——不是研究几款,是研究数百款。
我们首先要理清一个事:并没有所谓的一款完全创新的 游戏 。世界上所有的 游戏 都是受之前 游戏 的启发,成功的 游戏 是受已经成功的老 游戏 启发。相信我,我从事 游戏 行业20年了,知道开发人员的工作方式,没有人在制作 游戏 时会全部创新。
关键是要做到“专业级别的借鉴” ,通过复制和优化来实现这一目标,不是纯复制,而是复制和改进。
一个很好的例子是《Hills of Steel》,这款 游戏 就是受到《Hill Climb Racing》的启发,在延续控制车辆爬坡玩法的基础上,增加了竞技对抗,可以射击对方坦克,而该 游戏 上线后,每周都可获得数十万的下载。
以下是创意来源的几种方式:
一旦有一个好的创意,你会很有欲望将其实现出来,我曾经也是如此。但是,在观察了20年 游戏 制作之后,先对这个创意进行一些适当的研究和分析,始终被证明是十分有必要的。
“是否有竞争对手?他们的 游戏 怎么样? 这个创意很流行吗?是否有很多类似 游戏 正要推出?”要问自己许多类似这样的问题。
当年我们制作《Compass Point:West》时,App Store上最热门的是建造战斗类 游戏 。那时,我们需要了解的就是这个品类的标准。换句话说,该类型玩家期待哪些 游戏 功能, 也可被称之为最低限度的功能集。
然而,在研发两年,完成了这些所谓的最低限度的功能集时,我们才意识到,竞争对手的产品早已不仅仅只有那些功能集了。
上图左侧代表的是完成所有功能所需要的时间,柱状每个彩色部分代表一个功能,比如角色收集和升级。A代表的是,你认为足够开发出一款出色 游戏 的功能集,并认为六个月内可以完成;B显示的是竞品刚推出时的功能集,有许多你并未采用的功能(因为你觉得这些不重要);C展示的是竞品在你研发六个月内,不断加入了玩家满意的新功能。最终,你会发现功能集愈发长和恐怖。
2019年也发生类似情况,许多开发者争相开发下一款《弓箭传说》。
还有许多类似的情况。在App Store和内购出现后,许多开发者将Facebook 游戏 搬到移动平台上,制作成免费 游戏 。Supercell是“幸运儿”之一,因为它有合适的团队,将其合适的创意,在竞争形成前迅速实现出来。
游戏 制作所需要的时间,需要考虑到团队规模和经验,比如,你是个人开发者,还是两人或以上的制作团队?
先举几个例子,说明 游戏 制作所需时间:
这是一款滑行 游戏 ,目标是在尽可能短的时间内滑到水上乐园,以在高分榜赢得声望和名望。
需要制作的内容:
对于有经验的程序员和美术来说,这类 游戏 在不到一个月的时间就可以开发出来。
该 游戏 复杂得多,需要设计元 游戏 (meta game),意味着,你从一个向对手发射箭的角色开始,逐步地,可以收集更好的武器和护甲,但是难度越来越大,敌人越来越强。 游戏 需要平衡难度,以便玩家可以获得更强的能力(更好的武器)和技能(学会击败更强大的敌人)。
为了将更好的武器和更强大的敌人可视化,你将需要设计大量美术,也需要更多代码,但是由于该 游戏 是单人 游戏 ,从一个级别升级到另一个级别,并且角色移动非常简单,因此有经验的人可以在不到三个月的时间内完成这类 游戏 。
这个 游戏 工程巨大,任何开发人员工作量都会令人望而生畏。考虑到美术体量,一位美术需要多年时间才能画完 游戏 中的所有美术。 游戏 性非常复杂,数百个功能协同下才呈现这样连贯的 游戏 体验。
对于想要自己或与一小群人一起制作 游戏 的人,我的建议是,先要从《Aquapark》或《弓箭传说》这类制作量少的 游戏 出发,了解所需制作的内容。
如果你的 游戏 创意有竞品,且你有信心在三个月内完成,那么可以参考如下方式来了解市场竞争格局,也就是了解竞品:
在PC、主机和移动设备上下载、安装和游玩竞品,看玩家在 游戏 中的行为表现,比如初次体验的用户行为、操作感觉,以及让用户再次回到 游戏 的原因、 游戏 内货币的消耗方式。将你发现的所有内容,在Google Sheets或者Post It进行分类。
通过列表归类来了解竞品成功的原因,这对于你的 游戏 设计布局,起着至关重要的作用。
你也希望打造出下一款《文明》、《我的世界》或《部落冲突》,一款人们进入后就不想放下的 游戏 。现在,我们介绍 游戏 上瘾的两个最重要的因素: 游戏 内的玩家目标和技能成长。
将玩家想象成正在朝山顶攀登的登山者。他们能感到自己在进步并到达到山顶,但这时,他们会注意到另一个遥远的高峰,这是一座更高的山,过程更艰难。登顶那刻,玩家会感到已经完成了一个目标,现在又有另一个目标去追求。
想象下,玩《文明》的用户,即使到凌晨3点,也不想停下来,就是因为 游戏 给玩家提供了许多有趣的目标,导致用户不愿退出。
席德·梅尔说过:
最简单的例子是国际象棋。试想一个世界级选手,积淀几十年,已经了解了象棋隐藏的所有基本策略玩法。如果你看过世界一流选手下过的所有棋,成千上万次,他们总是会处于开始阶段,预测接下来的走法,如何应对,不断重复来掌握学习,这就是技能成长。
游戏 中基于技能的玩法又是怎样?在这类 游戏 中,玩家计算自己的攻击、魔法和特殊技能,以对抗和阻挡对手。玩家知道如何使用他们的角色,也知道自身角色(包括对手)的特色和弱点。一旦技能系统搭建完成, 游戏 开发者便可加入更多的玩家目标。
除了付费下载和现在流行的广告变现,重点说经济型 游戏 ,即内购。
核心是参与度,玩家的乐趣来自于参与度。 游戏 必须有趣,玩家可以玩上数周,而不会感觉像遇上“一堵墙”般无法继续玩下去。
然而事实是,如果他们花钱,进度会更快,但这并不是让 游戏 变得有趣的关键。要真正完成你想做的事情,让玩家感到自己正在朝着上文中提到的玩家目标和技能成长的方向前进。
当玩家觉得自己正在为自己的目标和技能成长而努力时,他们就会有意愿在 游戏 中花钱,更快地实现目标,体验更快的进程。
我经常谈论核心 游戏 玩法(core gameplay)和元 游戏 (meta game)之间的依赖关系。核心 游戏 玩法,是 游戏 中玩家获得技能成长的部分。元 游戏 ,是 游戏 经济的一部分,玩家在 游戏 中成长、建造,体验 游戏 中要做的事情。
如果你在核心 游戏 玩法和元 游戏 方面有很强的实力,那就可以搭建以微交易和应用内购买为基础的 游戏 经济体系。试想下开箱子机制,玩家可以随机获得角色或道具等物品。
这将有助于你了解 游戏 研发的工作量。 首先将你的 游戏 可视化,创建出 游戏 中所有的界面模型,通过查看 游戏 中不同的界面来拆解各项工作。
以《Aquapark》为例来拆解工作量:
A.主菜单,可以看到滑道
B.实际的核心 游戏 玩法视图,即滑水的位置
C.完成某一级别的胜利界面,包括高分列表
D.世界地图,从一个水上乐园到另一个水上乐园的线性变化,为玩家提供了一些长期目标
E.收集所有角色的界面,这也给予玩家长期目标感
F.失败屏幕。如果在核心 游戏 玩法失败,则需要显示此类界面,玩家可以在其中返回主菜单并重试。
伴随着移动 游戏 市场的竞争升级,如何更可控的打造出一款市场反响好的产品,成为开发者更为迫切的诉求。另一方面,这也对开发者的产品力和对市场竞争格局的了解提出了更高的要求。
⑶ 从事游戏开发,需要什么技能
看你要去哪个方向了,策划、程序、美术,每个方向又有细分。
策划有剧情策划,关卡策划,数值策划等等。
程序有客户端编程,服务器编程,引擎编程,脚本编程,手机游戏开发, 网页游戏。
美术有3d建模,2d美术。
方向不一样需求不一样。
较了解程序,就程序俩说吧。
如果要说只为干活,客户端你得学windows编程,socket等
服务器当然就是各种数据库操作,各种通讯操作。
引擎编程需要了解底层,directx,opengl,3d数学,物理基础等。
脚本的话就学脚本就够了。
手机游戏开发分ios、android,对应使用不同引擎需要不同的学习。
网页游戏前端目前flex流行,js,html也在发展。
以上只是速成。但是真正建议的是,
学好c++,数据结构,socket编程,了解windows编程,学习数据库编程。
先学3d数学,再学directx,然后试着做个小游戏。
学习设计模式。研究开源引擎。
会是个比较漫长的过程,但是基础扎实,各种开发都不怕。
可以专挑一条喜欢的道路深入研究,也可以专注游戏逻辑实现。
这个话题其实有点儿大。这里面有一个重要的区别是:你是想当独立游戏开发者,还是想当游戏行业的从业人员。
如果是想当游戏行业的从业人员,我觉得就简单了,盯准你想当的职业,培训相应技能就好。事实上,在游戏行业里的开发,无论是精通特定引擎或者架构(如cocos2D,unity3D,OpenGL,DirectX),还是只是对基础(如算法、设计模式、图形学、人工智能等)有一定深度,都能入行。(不是都学,是对其中一个有超过平均水平的掌握或者理解即可,然后就投简历吧。现在游戏也这么火,不难找工作)。
但是对于独立游戏开发者,事情就不一样了。显然需要掌握更多的东西。但是掌握更多的东西不一定是专精。这就要求独立开发者有取舍。首先要思考,自己想在什么平台做游戏?ios?好好看ios sdk;android?好好看android sdk?win8?好好看wpf。网络?flash或者html5等等等等。
我在上面只列出了一个基础,不包括图形引擎或者游戏引擎。事实上,一些游戏不需要引擎的协助。独立开发者的游戏更是注重创意,因此,很多并不依靠引擎的游戏也能有不错的收益。但是,要想更进一步,需要在平台的基础上选择合适的引擎加以研究。
最后,我认为独立开发者需要了解一些美工知识,并且对数值策划有一些感觉。但从美工的角度,很多美术非常简单的游戏也很不错;所以我一向不认为美术是游戏开发的关键。当然,它是一个能增添很多亮点的环节。
而对于游戏策划,我想每一个想开发游戏的人都有当游戏策划的料子。但这个职能类似产品经理,猛地一想很简单,可把一份策划捋顺了,有逻辑,经得起市场验证,难。不过这是一个试错的过程,只能在探索中学习,实践中学习,书本学来的极其有限。
附上出处连接:http://www.hu.com/question/20242554