游戏开发需要学习什么

游戏开发需要学习什么

作者:GsuhyFihx

(邮箱:[email protected]

请勿转载,支持原创

  编程(C、C++、C#、Java、JavaScript、HTML、Perl、Shell、SQL,http://ASP.NET网站制作,计算机图形学背景,熟悉Unity、Unreal4引擎)
  美术(原型概念设计,素描,配色/调色;3ds Max 建模、骨骼、蒙皮; C4D-Bodypainter贴图绘制;Maya建模;Zbrush雕刻,Substance Painter贴图绘制)
  声音(学过音效处理,会用Au,给电影做过音效配音; 音乐是我目前最薄弱的一项,懂些乐理、识谱,知道鼓组、提琴阵、贝斯等基础编排,会用FL,平时没时间练习)
  其他(以前玩摄影摄像,曾经做过大型舞台摄像、随行摄影;会用AE、PR、会声会影,做过不少视频。 热爱户外运动。)

DirectX ,( Direct eXtension ,简称DX )是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows Microsoft XBOX MicrosoftXBOX 360Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。最新版本为DirectX 12,创建在最新的Windows 8.1 上。

硬技能分为四个大块:
1、程序
4、设计(核心玩法、交互等)
2、美术
3、声音
这里我把这四项以重要程度做了一个排序(仅对新人设计师而言)。这四项技能可以顺序专项学习,也可以交叉混合学习。优先级依次往下。我下面就来逐个分享学习方法。

————Part1 独立游戏人必须会编程—————

程序,对目前你的情况来说,是这些技能里面最重要,最迫切需要,也是最好学习的一项。为什么是它呢,因为你只有会编程、掌握了一款游戏引擎,你才会真正明白:游戏,作为一款软件来说它的本质是怎样的,它是如何运作的。你不知道汽车是如何工作的,你就制造不出一辆车。了解程序,就是了解一款游戏在电脑上工作的原理。并且当你编程能力过关,掌握了一款游戏引擎后,即使你其他什么都不懂你也已经能够做出简单的游戏demo了。实现这些,只需要几个月的时间。但是如果你先攻学其他几项,这都不可能。
那么编程应该如何开始学呢?
有很多种打开方式,我在第一版回答中给出了一些可选项,但是我后来我考虑到纯新人不具备判断和抉择的能力,很容易到处撞墙。所以现在我只给出一条学习路线。设置这条路线的指导思想是:
在保证知识稳固的前提下,最快速地学以致用。
编程学习路线分三步:
1、学习C#
2、学习Unity
3、学习C#

首先C#在游戏开发中是一种脚本语言。脚本语言是做什么的呢?就是给计算机发出指令,让它什么时候做什么事情。比如,警察想命令一条警犬做一些事情,会发出手势指令:“靠”、“坐”、“来”、“叫”、“扫撕”……当警犬看到这些手势指令时,它就会做相应的行为。而这些手势合集,在控制计算机时,对应的就是脚本语言。比如我写一句“Delete Bullet”,意思就是删除这颗子弹;写一句“Soldier Fire”,意思就是让这个士兵开火。C#就是用来发出这些指令的。

然后我们说学Unity,Unity是一个游戏引擎。游戏引擎中集合了开发一个游戏所需要的大部分工具、组件、环境等内容。就像拍一部电影,我们需要摄像机、摇臂、灯光、挑干等基础工具。做游戏也需要摄像机、灯光、地形、人物控制器等组件,游戏引擎里面就包括了许多这些基础内容。掌握游戏引擎,使我们不用重头开始造轮子,而是直接拿现成的轮子来组装车。而组装车的过程中,需要用C#语言来告诉Unity,我哪个槽位放哪个轮子。这种命令很简单,就像写一句“if Player Move, Camera Move.”意思就是说:如果玩家移动,摄像机就移动。跟写英文差不多吧。其中摄像机、玩家这些东西,都是Unity提供的。希望你现在理解了C#和Unity的相互关系。

一般来说C#编程能力是学Unity的前置条件。但是,对于什么都不懂的人来说,直接学习C#会感到无聊、迷茫、没有尽头,不知道现在所学的这些东西在以后实际做游戏时会怎么用到,很可能会让理想之路产生动摇。那么直接学Unity就不会无聊了,因为所学的东西我们能很直观地了解今后会如何发挥作用,比如怎么控制摄像机,怎么控制人物行走,怎么做一个地形。但是因为没有编程基础,所以需要写脚本的地方学起来会比较吃力。这个时候吶,我们就会想到要去学习编程。然后带着目标去学C#。学了一点,又回到Unity里实践使用。这样形成良性循环。这个思路和许多做视频教学的老师不谋而合,应该是对新手最舒服的一条路线。

文字总结一下程序学习路径:我们先从C#学起,初学的编程的时候可以不求甚解,先记住形式,之后会慢慢自行理解。当C#学到无聊、乏闷的时候(会发生在任何进度点)就先放下,转而去学Unity。Unity中有相当一部分功能是不需要懂编程也能用的,我们可以学到不少东西。当稍微进阶的时候,我们就会接触到编程的部分,这时之前学的C#一定会让我们感到熟悉。通过Unity教程,我们也能反哺巩固C#的知识。但是更多时候,我们会发现Unity教程中关于编程的部分,我们实在跟不走了,很多代码不能理解。那么我们自然会想到回去学好C#。这是一个相辅相成的过程。避免了专门学编程语言时的痛苦。



猜你喜欢

转载自blog.csdn.net/gsuhyfihx/article/details/80954407