📜  如何开始游戏开发?

📅  最后修改于: 2021-05-29 23:09:54             🧑  作者: Mango

如果您可以改变自己的现实并创造一个全新的现实,您会感觉如何?一个可能是基于太空的小行星攻击太空船的现实!或者,也许是基于现实的海洋,在这里您要与海盗作斗争!
好吧,在现实世界中创建新现实是不可能的,但在游戏开发世界中绝对有可能。而且游戏开发的受欢迎程度仅在增加。这可能是因为视频游戏变得越来越流行,人们现在不仅希望参与这些世界,而且还希望创造它们!!!

因此,如果您想了解游戏开发入门,那么这篇文章非常适合您,它将教您一些基础知识,并为您提供各种资源,使您的旅程更进一步。

游戏开发

让我们首先了解什么是游戏开发,然后继续讨论更复杂的主题。

什么是游戏开发?

简而言之,游戏开发是创建视频游戏的整个过程。而且,如果您认为制作视频游戏和玩电子游戏一样容易,那不是!!!在创建游戏时,有许多组件,例如故事,字符,音频,艺术,灯光等,最终会融合在一起,从而在视频游戏中创造一个全新的世界!!!商业游戏的游戏开发过程由发行商(一家富有的公司!)提供资金,但是独立视频游戏相对便宜且体积较小,因此它们也可以由个人提供资金(可以是您!)。

现在,与游戏开发有关的一个普遍疑问是,只有优秀的游戏玩家才能成为优秀的游戏开发者。现在让我们解决这个问题。

成为游戏开发必备的优秀游戏玩家吗?

许多人认为,如果他们是优秀的游戏玩家,那么他们肯定会在游戏开发中脱颖而出。好吧,不要犯那个错误!!!如果您是一名优秀的游戏玩家,那么您将拥有一些优势,因为您已经对游戏故事,玩家,关卡等有所了解。实际上,游戏和游戏开发是两个截然不同的领域,您在前者中获得的技能不一定会在后者中对您有所帮助。例如:如果您喜欢电影,那并不一定意味着您将成为一名优秀的电影导演!!!因此,只有对游戏编程充满热情并且真的想开发一款有趣的游戏时,才可以进入游戏开发(喜欢玩游戏只是一种奖励!)。

游戏开发中有哪些不同的组成部分?

游戏开发中有许多不同的组件,可以由一个单独创建游戏的开发人员(也是个天才!!!)或通常由多个人组成的团队来处理。因此,如果您想开始游戏开发,最好首先了解该领域的各个组成部分,以便识别最感兴趣的组件。

1.故事:一切都有一个故事,对于电子游戏也是如此!!!您的故事可以具有相对容易的线性结构,甚至可以具有根据字符动作而发生各种情节变化的非线性结构。最重要的是,应该有一个有趣的故事来吸引您的玩家!!!

2.字符:你知道没有字符的故事吗?不!这是因为,故事结束后,字符是任何电子游戏的基本组成部分。您必须确定角色的外观和个性,字符应该移动多行为和特征应该是什么等。

3.音频:这是视频游戏的支柱!!!这意味着它应该支持游戏,但又不是太明显!您必须确定游戏世界中的各种声音,例如播放器声音,背景音乐等,这些声音共同构成逼真逼真的视频游戏。

4.艺术:可以说,电子游戏基本上只是响应式艺术!!!因此艺术很重要,因为它决定了游戏的感觉。通常,视频游戏中的艺术可以包括各种事物,例如游戏纹理,游戏照明,字符和对象的3D建模,产生火,雾,雪的粒子系统等。

5.照明:视频游戏中的所有照明显然都是人为的,并且对于设置情绪非常重要。较少的照明可以与恐怖或惊悚游戏结合使用,而增加的照明可以表示更多的冒险或有趣的游戏。同样,在较暗的区域为字符提供掩盖的情况下,照明可能是隐身挑战的重要因素。

6.等级:所有优秀的视频游戏都有不同的等级,随着时间的流逝,难度会增加。在游戏中,级别可以由多个楼层,不同的建筑物甚至不同的国家(取决于您所玩的游戏!)表示,并且每个级别可以有很多潜在的路径,最终可以通往下一个级别。设计具有不同级别的许多可能路径组合的游戏是游戏开发的重要因素。

如何开始学习游戏开发?

现在您已经了解了游戏开发中涉及的所有组件,此处提供的主题是一个路线图,足以使您了解学习游戏开发的基础。学习了这些知识之后,您可以制作一个不错的游戏,然后随着您的进步继续创建越来越复杂的世界。

1.学习计算机编程:游戏中有趣的世界观都是使用计算机编程来创建的。因此,有理由要想进入这个世界就需要了解编程!现在,如果您具有一些有关使用C++,C#, Python, Java等编程语言进行编码的基本知识,那将是很好的,否则,最好是在进一步学习之前学习编程。

没有专门用于游戏开发的特定编程语言。但是C++是游戏开发中最受欢迎的语言,也是编写游戏引擎的最常用语言。一些用C++制作的流行游戏是《反恐精英》,《金刚探索》,《魔兽世界》等。另一种流行的语言是Java,因为它具有多线程和套接字。用Java制作的流行游戏是《愤怒的小鸟Chrome》。

注意:如果您是一个初学者,可以参考哈佛大学的《计算机科学概论》,以基本了解计算机编程。

2.选择一个已知的游戏引擎:由于您是游戏开发的初学者,因此最好从一个已知的游戏引擎开始。通常,它们非常有用,因为它们为您的游戏提供了各种功能,例如3D和2D图形渲染,音频支持,动画,碰撞检测,人工智能,联网等。

最受欢迎的游戏引擎是Unity,因为它非常易于学习,并且还提供免费的个人版!另一个流行的游戏引擎是虚幻引擎,可以对其进行修改以创建独特的游戏。但是,最终使用什么游戏引擎都没有关系,但是重要的是您坚持使用该游戏引擎,以便您足够了解它,可以在将来的项目中使用它。
从一方面来说,使用游戏引擎并不是绝对必要的。实际上,不使用游戏引擎将意味着您必须自己完成大部分技术工作,这很困难,但会为您提供许多学习机会。万一您将来需要自己开发游戏编程的设计模式时,它甚至会很有用!

3.创建一个基本游戏:现在,您已经对游戏开发有了一些了解,请创建一个基本游戏。现在,您可能想要迷失方向,并希望创作一部杰作,但请相信我,从小做起!!尝试将您的项目保持一周左右的时间,因为现在最重要的不是让您在一夜之间成为一名大师,而是您了解基本知识。

常见的第一个游戏是Tetris,因为它易于制作,但会向您介绍游戏开发中的许多概念。基本上,它将教您游戏循环中的三个步骤,即初始化,更新和绘制,这是您将来可能进行的任何游戏开发的核心。

但是,如果您对开始“俄罗斯方块”不感兴趣,则可以选择足够简单(或困难,这是您的选择!!)的任何游戏,但要确保游戏不会造成混淆或复杂,并且目标明确且端点。

4.了解游戏设计模式:由于您已经了解制作视频游戏的基础知识,因此游戏设计模式会使事情变得有些复杂。但是第一个问题是,什么是游戏设计模式?

假设您必须放入多个小行星,这些小行星会在太空电子游戏中摧毁一艘宇宙飞船。在这种情况下,拥有一个可反复用于小行星而不是专注于单个小行星的代码模块更为明智。这是一种称为对象池的游戏设计模式。同样,有许多游戏设计模式基本上只是用于创建模块化代码的模板,这些代码可以用作游戏开发中任何问题的重复解决方案。

其他一些常见的游戏设计模式包括Flyweight,Prototype,Observer等。最好先了解这些游戏模式,然后将其应用于各种小型游戏中。这将帮助您理解游戏设计模式总体上对游戏开发的各种影响和收益。

注意 Robert Nystrom撰写的《游戏编程模式》是一本学习游戏设计模式的绝妙书,它将详细介绍各种设计模式以优化您的游戏。

5.学习3D图形和相关数学:没有图形就无法制作视频游戏,因此您现在需要了解它们。尽管2D图形在1990年代中期非常流行,但当今大多数著名游戏都需要可以固定3D,第一人称视角,第三人称视角等方式渲染的3D图形。 。因此,如果您想成为顶尖的游戏程序员,则应该了解计算机图形学以及它背后的数学原理。如果您不打算使用现有的游戏引擎,则这一点尤其重要。

3D图形通常需要的数学是线性代数,它主要处理线性方程,矩阵,向量等。如果您了解这些概念,就可以轻松操纵游戏的3D世界,以达到神奇的效果!!!

注意您可以使用YouTube上的MIT OpenCourseWare线性代数课程中的“用于图形和游戏开发的3D数学入门”和“基本线性代数”来学习游戏开发中的3D图形

有哪些在线资源可用于学习游戏开发?

在线上有许多书籍,课程,文章等,您可以用来学习游戏开发的各个方面。但是为了方便起见,此处提供了一些受欢迎的资源:

  • 杰西·谢尔(Jesse Schell)撰写的一本通俗的学习游戏设计基础的书是游戏设计的艺术:镜头之书》 。这本书将教您从多个角度或视角观看视频游戏的艺术,这是良好游戏设计的关键。
  • 如果您想在线学习游戏开发课程,那么由密歇根州立大学在Coursera提供的游戏开发入门是理想的选择。另一门此类课程是Calarts提供的游戏设计入门。
  • 基于游戏开发的课程是使用Unity开发的,它是在Udemy进行Unity游戏开发构建2D和3D游戏的,如果您希望仅专注于Unity,则可以选择该课程。
  • 有关游戏开发的免费文章和有趣的信息,您可以参考Gamasutra:制作游戏的艺术与商业,该网站的内容基本相同!