📜  如何开始游戏开发?

📅  最后修改于: 2021-10-21 05:53:49             🧑  作者: Mango

如果你能改变你的现实并创造一个全新的现实,你会有什么感觉?一个可能基于太空的现实,小行星攻击宇宙飞船!或者也许是基于现实的海洋中,您尝试与海盗作战!
好吧,在现实世界中创建新现实是不可能的,但在游戏开发世界中绝对是可能的。游戏开发的流行度只会越来越高。这可能是因为电子游戏变得越来越流行,人们现在不仅想要参与这些世界,还想要创造它们!!!

因此,如果您想了解如何开始游戏开发,这篇文章非常适合您,因为它将教您基础知识并为您提供各种资源,让您在旅程中走得更远。

游戏开发

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

什么是游戏开发?

简单地说,游戏开发是创建视频游戏的整个过程。如果您认为制作视频游戏和玩游戏一样简单,那么事实并非如此!!!创建游戏时有许多组件,例如故事、字符、音频、美术、照明等,最终融合在一起以在视频游戏中创建一个全新的世界!!!商业游戏的游戏开发过程由出版商(一家富有的公司!)资助,但独立视频游戏相对便宜且体积较小,因此它们也可以由个人资助(可以是你!)。

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

游戏开发需要成为一名优秀的游戏玩家吗?

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

游戏开发中有哪些不同的组件?

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

1. 故事:万物皆有故事,电子游戏亦是如此!!!你的故事可以是相对容易的线性结构,也可以是非线性结构,根据字符的动作进行各种情节变化。重点是要有一个有趣的故事来勾住你的玩家!!!

2.字符:你知道没有字符的故事吗?不!那是因为,在故事之后,字符是任何电子游戏的基本组成部分。你必须决定字符的外表和个性,他们应该移动多,应该是什么举止和特征等。

3.音频:是电子游戏的支柱!!!这意味着它应该支持游戏,但又不能太明显!您必须决定游戏世界中的各种声音,例如玩家声音、背景音乐等,共同创造出栩栩如生且可信的视频游戏。

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

5. 灯光:电子游戏中的所有灯光显然都是人造的,对于情绪设置非常重要。与恐怖或惊悚游戏相关联可以使用较少的照明,而增加的照明可以表示更多的冒险或有趣的游戏。此外,照明可能是隐身挑战的一个重要因素,较暗的区域为字符提供掩护。

6. 关卡:所有好的电子游戏都有不同的关卡,随着时间的推移难度会增加。游戏中的级别可以由多个楼层、不同的建筑物,甚至不同的国家(取决于您正在玩的游戏!)表示,并且每个级别都可以有许多最终通向下一个级别的潜在路径。为不同级别设计具有多种可能路径组合的游戏是游戏开发的一个重要因素。

如何开始学习游戏开发?

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

1.学习计算机编程:游戏中有趣的世界观都是使用计算机编程创建的。所以如果你想进入这个世界,你需要了解编程是有道理的!现在,如果您对C++、C#、 Python、 Java等编程语言的编码有一些基本的了解,那就太好了,否则最好在进一步学习之前学习编程。

没有专门用于游戏开发的特定编程语言。但C++是游戏开发中最流行的语言,也是编写游戏引擎最常用的语言。一些使用 C++ 制作的流行游戏是反恐精英、探秘王者、魔兽世界等。另一种流行的语言是Java,因为它具有多线程和套接字。用Java制作的流行游戏是 Angry Birds Chrome。

注意:如果你是一个完全的初学者,你可以参考哈佛大学的计算机科学导论来对计算机编程有一个基本的了解。

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

最受欢迎的游戏引擎是Unity,因为它很容易学习,而且还有免费的个人版!另一个流行的游戏引擎是虚幻引擎,可以对其进行修改以创建独特的游戏。然而,最终你使用什么游戏引擎并不重要,重要的是你坚持使用那个游戏引擎,这样你才能很好地理解它,以便在未来的项目中使用它。
另一方面,使用游戏引擎并不是绝对必要的。事实上,不使用游戏引擎意味着您必须自己完成大部分技术工作,这很难,但会为您提供许多学习机会。如果您将来必须自己开发游戏编程的设计模式,它甚至会很有用!

3. 创建一个基本游戏:现在您已经对游戏开发有了一些了解,接下来创建一个基本游戏。现在您可能想要忘乎所以并希望创作一部杰作,但请相信我,从小处着手!!尽量让你的项目保持一周左右,因为现在最重要的不是你一夜之间成为大师,而是你了解基础知识。

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

但如果您对从俄罗斯方块开始不感兴趣,您可以选择任何足够简单(或困难,这是您的选择!!!)端点。

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

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

其他一些常见的游戏设计模式有Flyweight、Prototype、Observer等。最好先了解这些游戏模式,然后将它们应用到各种小游戏中。这将帮助您了解游戏设计模式对游戏开发的各种影响和好处。

注意罗伯特·尼斯特罗姆( Robert Nystrom ) 的Game Programming Patterns 是一本学习游戏设计模式的绝妙书籍,它将详细阐述各种设计模式以优化您的游戏。

5. 学习 3D 图形和相关数学:制作没有图形的视频游戏是不可能的,因此您现在需要了解它们。虽然 2D 图形在 1990 年代中期非常流行,但今天的大多数著名游戏都需要 3D 图形,这些图形可以以固定 3D、第一人称视角、第三人称视角等方式呈现,从而为游戏提供逼真的感觉.因此,如果您想成为一流的游戏程序员,您应该了解计算机图形学及其背后的数学知识。如果您不打算使用已经制作好的游戏引擎,这一点就更重要了。

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

注意您可以使用3D Math Primer for Graphics and Game Development Book 和MIT OpenCourseWare 线性代数课程中的基本线性代数来学习游戏开发中的3D 图形

学习游戏开发的在线资源有哪些?

网上有很多书籍、课程、文章等,您可以使用它们来学习游戏开发的各个方面。但为了您的方便,这里提供了一些流行的资源:

  • 一本用于学习游戏设计基础知识的流行书籍是 Jesse Schell 的The Art of Game Design: A Book of Lenses 。本书将教您从多个角度或镜头观看视频游戏的艺术,这是优秀游戏设计的关键。
  • 如果您想要在线游戏开发课程,那么密歇根州立大学在 Coursera 上提供的游戏开发介绍是理想的选择。另一门此类课程是 Calarts 提供的游戏设计导论。
  • 基于使用 Unity 进行游戏开发的课程是Unity 游戏开发在 Udemy 上构建 2D 和 3D 游戏,如果您希望专注于 Unity,您可以选择该课程。
  • 有关游戏开发的免费文章和有趣信息,您可以参考Gamasutra:制作游戏的艺术与业务,这是一个基本上按照其所说的去做的网站!