游戏设计师从零开始:如何开始没有经验的游戏

Golubev Nikita,商业作家兼翻译,特别是Netology博客的译者,翻译游戏开发者Angela He 的文章 ,内容涉及如何在没有编程技能的情况下创建您的第一个游戏。

就在2年前,我还是17岁的女学生,对编程一无所知。 这并没有阻止我开始学习,几个月后在Steam上发布了我的第一款游戏。 今天,我有10多种PC,互联网和移动设备游戏 ,超过190万玩家。

现在可以做什么都没关系-如果您愿意,也可以制作游戏。 两年前,这似乎是不可能的:这是我一生中最难的事情,值得。 现在我了解到,在游戏开发中,就像在其他行业中一样,只有在尝试,犯错误并加以改进时,您才能成长。

我了解了自己的所有知识,现在我将教你。

要制作游戏,您需要经历6个阶段:


  • 概念图
  • 图形
  • 程式设计
  • 音效
  • 出版准备
  • 过帐

在每个阶段的文章中,我将重点介绍:
-我从自己和他人的经验中学到的技巧。
-我发现最有用的工具。

图片

概念图


小费


你有个好主意。 但是如何在纸上画出来呢?

每个人都有自己的方式。 有些撰写了60页的设计文档,有些则写了一张难以辨认的笔记。 我不知道对您有多方便,但是请务必解决以下问题:

  • 筹码。 是什么让您的想法很棒? 这是最重要的问题。 只要您能够捕获并修复它,剩下的步骤似乎就容易了。 您的游戏引发热门话题吗? 它将成为一个新的经典吗? 还是会与以前的一切有所不同?
  • 力学。 玩家做什么,为什么? 这是您的游戏玩法。 它可以很简单,例如在QWOP游戏中按Q,W,O,P键,也可以很复杂,例如在《矮人要塞》中组合。
  • 图例 玩家如何记住您的游戏? 他们会留下什么样的情感? 每个游戏都有一个故事。 如果故事不明显,则玩家自己创建故事。 故事可能会有所不同:2048游戏中的人数增加,文明帝国的崛起或纪念碑谷的沉默互动。 考虑一下您的游戏背后的传奇。
  • 心情 游戏给人留下了什么样的印象? 哪些视觉效果和音乐将对此做出贡献? 重要的是可以吸引玩家,然后使他再次回到游戏中的第一印象。 您可能想要具有像素图形和8位音乐的复古效果,或者具有平坦几何形状的现代外观-考虑一下。
  • 参加黑客马拉松。 您和其他参与者需要在指定的时间内制作游戏。 至少,您将受到启发并遇到志趣相投的人。 尝试使用Ludum Dare (最大的游戏之一)。
  • 创建一个想法列表。 记录每一个新想法。 在昏昏欲睡的时刻,您可以随时查看清单,找到一些有趣的东西。 看起来像我个人的Google文档想法和注释

当灵感来临时,丢下所有东西并写作。 下次想法消失时,您无需从手指中吸取灵感。

工具


记笔记:

  • 在Mac OS上的注意事项。
  • Google文件。
  • 特雷洛

团队合作:

  • Google云端硬碟
  • Github 需要git和Unity .gitignore。
  • Unity合作。 最简单的工具,但免费版本有所限制。

我在Unity上制作游戏。 进一步,我们将讨论它,但是不要害怕使用其他引擎。

灵感:


图形


小费


如果您不知道如何编程,请首先阅读“编程”部分。 您不太可能要花时间在时间​​表上并浪费掉它,因为您无法为其编写代码。

即使您不知道如何绘画,也可以使用三个视觉原理使游戏变得更漂亮:颜色,形状和体积。



托马斯独自一人-一个简单而美丽的游戏

介面


想一想如何通过其配色方案,字体和图标使游戏与众不同,而又不会失去玩家的便利性。 重要信息是否可以理解和阅读?


错误和成功的字体

2D动画


动画可以通过两种方式实现:

  • 逐帧动画。 绘制每个框架时。 为此,请在Unity中使用Sprite表和Sprite Packer
  • 骨骼动画。 绘制每个可动肢,然后对其位置和转弯进行动画处理。 它更快,更轻并且花费更少的RAM。 对于Unity上的2D动画,请使用支点(锚点)或Anima 2D插件。



还有什么可以派上用场


提示不仅适用于游戏图形,还适用于其他程序:

  • 切片对象用于创建切片,并且需要较少的硬盘空间。



没有瓷砖,有瓷砖

  • 9切片对象具有不可缩放的边框和可缩放的中心,可让您放大图像而不会占用内存。



斑点扩大,但角度保持不变

  • 分解每个对象,使其除以4或为2的幂。
  • 在Photoshop中,可以通过“文件”>“导出”>“快速导出为[图像格式]”将每个图层保存在单独的文件中。

工具


界面创建:

  • 的Photoshop
  • 草绘

创建界面的原理:


创建2D对象:

  • 的Photoshop
  • 金普
  • 绘画工具SAI-用于动画样式的图形。

创建3D对象:

  • Blender是功能强大的软件,经过复杂的培训。
  • Maya-用于动画。
  • 最大-用于渲染。

免费游戏资产:


灵感:


程式设计


小费


选择一个游戏引擎,开发环境,然后开始研究代码。

以下知识足以开始。 所有示例均使用C ++编写,这是Unity3D中的一种编程语言。 ( 译者注:实际上,Unity使用的是C#,类似于C ++ )。

  1. 数据类型和变量。 该代码基于存储在变量中的数据。 您可以这样声明一个变量:

    int i = 0; 

    int-数据类型, i-变量名, = 0-变量值。

    常用数据类型:
    intlong-对于整数,
    浮点 精度 -对于浮点数,
    string-字符串数据。
  2. 条件。 使用if语句,可以为代码执行创建条件:

     if (true){ //   !   doThings(); //   ,   ! } 

    使用else语句 ,可以扩展条件并显示条件不成立时的处理方法:

     int i = 1; if (i == 0){  doThings(); } else if (i == 1){  doOtherThings(); //   ! } 

  3. For / while循环。 在条件保持为真的同时,while循环重复执行部分代码。 一旦条件不再为真,循环就会中断。

     while (someBool == true){ //   doThings(); //  ,    } 

    For循环类似于while循环。 我们虽然这样写:

     int i = 0; while (i < condition){   doThings();   i++; // ,     } 

    等效的for循环将是:

     for (int i = 0; i < condition; i++){   doThings(); } 

  4. 数据结构。 我们有数据要与之交互。 此外,它们可以存储在特殊的结构中-数组,列表,队列,堆栈或集合。
    一个简单的示例数组:

     /* ,      0  9.     ! */ int[] arr = new int[10]; /*  []    .     10   arr.    : arr = [ 0 0 0 0 0 0 0 0 0 0 ] */ for (int i=0; i<10; i++){   arr[i]=i; //    i  i. //,     ? } /*       : arr = [ 0 1 2 3 4 5 6 7 8 9 ] */ 

  5. 功能和异常。 函数是一小段代码,可替换大量代码。 例如, 输出EatBread()函数,其中包含以下内容:

     void EatBread(){ //<---   breadAte=true;  printf("  ,    "); } 

然后,在输出函数时,将在其中执行两个表达式。

如果代码中出现问题,则可以挽救异常。 他们说:“等一下,您在这里做了一些不合逻辑的事情。 再次检查。

您还需要知道什么:

  1. 语言 您将使用哪种语言编程? 通常,游戏是用C ++,JavaScript或C#编写的。 语言的语法和范围不同。
  2. API (应用程序编程接口)。 一旦您熟悉了基础知识,就可以开始研究特定游戏引擎的应用程序软件界面。 它们是打包在简单类和函数中的有用工具的集合。 API大大简化了程序员的生活。
  3. 查看所选游戏引擎上的项目示例。 您可以在Unreal和Unity引擎上找到许多免费的游戏示例。 这样一来,您就可以查看结果和整个工作过程,并为您将来的游戏画点子。

一点启发。 我知道编程起初很恐怖。 一切似乎都是毫无意义的,您会不断跌跌撞撞,面对不断想放弃的错误,但这并不意味着编程不适合您。

代码是对自己的挑战。 一开始什么都不懂是很正常的。

像任何技能一样,需要学习编程。 也许会很有趣。

其他重要的编程基础知识:

  • 面向对象编程。 使代码更自然。
  • 命名约定。 为类,方法和变量命名,以便您和其他程序员了解它们的用途。 例如,命名近战攻击功能,

     meleeAttack () 



     mA() 



     protecbutalsoattac() 

  • 分解。 从重复代码中创建一个函数并调用它,而不是复制重复行。
  • 设计模式单例(“贷款人”)。 一种编程模板,允许将数据存储在一个地方。
  • 避免使用静态变量。 除了使用单调之外,我还避免使用静态变量-静态变量仅在游戏期间有效,并且运行缓慢且行为不可预测。
  • 设计模式观察者(“观察者”)。 允许一个对象找出其他对象的状态,而不会浪费计算机检查的时间。

特定于Unity的东西:

  • 协程。 它们使您可以开始执行操作,在正确的时间继续执行,然后停止。 我将它们用于爆炸,突然移动的视觉效果。
  • 类ScriptableObject。 它以比MonoBehaviour基类更低的成本存储数据。

工具


游戏引擎:

  • C / C ++中的自定义引擎。 低进入门槛。 ( 译者注:实际上,创建您自己的引擎需要大量的工作和对编程原理的深入了解 )。
  • 团结 支持2D / 3D。 需要了解JavaScript / C#。 平均进入阈值。 为多个平台开发。
  • 虚幻的 支持2D / 3D。 需要C ++知识。 平均进入阈值。 为多个平台开发。
  • pixi.js。 仅2D。 需要JavaScript知识。 平均进入阈值。 浏览器的开发。
  • GameMaker Studio。 支持2D / 3D。 需要具备特殊语言引擎GML(游戏制作者语言)的知识。 对于初学者。 为多个平台开发。
  • 电晕。 仅2D。 需要Lua知识(类似于JavaScript)。 对于初学者。 为多个平台开发。

开发环境:

  • Visual Studio Code (用于MacOS)-不冻结,具有内置帮助信息和便捷的热键。
  • Visual Studio (适用于Windows)。
  • MonoDevelop-与Unity一起安装,有时会冻结。

免费Unity资产:

Unity Asset Store,bitbucket和GitHub中有很多免费资产。 在我的项目中,我至少使用两个。 它们简化了生活,但远非理想。 我们发现了一个错误-对其进行纠正并告知开发人员。


解决代码问题的重要甚至是重要的来源就是Google!

音效


小费


音频能够营造心情并沉浸在游戏中,但它需要记忆。

首先确定:您想要声音吗? 如果是这样,游戏中是否会有音乐,声音效果,配音或讲故事。

在任何情况下,都需要录制和混音,以便声音与游戏的气氛相匹配。 例如,堡垒使用与游戏完美融合的有机声音和器乐声音。 死灵舞者的地穴包含了电子节奏和八位摇滚的混合物,传达了游戏的节奏和亮度。
沉浸式决定。 如果声音与游戏的气氛不符,那么玩家将很难进入您的世界。

工具


音频应用:

  • Logic Pro(仅MacOS)。 价格是200美元。
  • FL Studio。 价格为99-899美元。 有一个免费试用版。
  • 收割者 价格是60-225美元。
  • 大胆 免费程序。 它具有很少的功能,但对于清洁音频很有用。

创建复古效果:


免费声音:

  • 声云 在这里,您可以在Creative Commons许可下找到无限多种声音和音乐。 从此播放列表开始。 您可以免费使用它,但不要忘记指出作者身份。
  • Incompetech
  • Bensound

出版准备


小费


游戏出现错误的机率很小-为99.99%。 这意味着是时候进行错误测试了。

如何测试游戏中的错误?


  1. 让其他人玩游戏。 如果他们遇到错误并且无法理解或解释它,建议与您联系。
  2. 在不同平台上查看游戏。 编辑器可能不是问题,但是在启动它的地方可以使用吗? 使用Linux和Android时要特别小心。

因此,发现了该错误。 现在呢



  1. 检查控制台是否有异常。 如果找到异常,请找到发生异常的文件和行。 如果听起来像火星人,请在网上寻找解决方案,然后思考为什么在此行中引发异常。
  2. 写入控制台。 尝试在所谓的错误位置显示日志(系统文件)。 输入不同的变量,并将获得的值与预期值进行比较。 如果不匹配,请更正。
  3. 检查日志。 您的项目的系统记录将提供比控制台更多的信息。 阅读发生异常的行。 Google提供您所不知道的一切。
  4. 睡吧 一切都会在早上固定。 这只是一个噩梦:)

常见错误


  • NullReferenceException。

     var.doThing(); //throws NullReferenceException: Object reference not set to an instance of an object 

    发生了什么事:该函数使用不存在的(空)变量执行。
    快速解决:检查变量是否为null。

     if(var != null)   {       var.doThing(); //   !   } 

  • SyntaxErrorException。
    发生什么了:语法错误。
    快速解决方案:该消息指示哪个字符产生了错误。 查找并修复它。

    注意:检查您使用的报价。
    “ //有效引号;
    “ //不必要的引号,它们会给您带来很多错误。
  • 粉色或黑色屏幕。
    可能的问题:未处理着色器。
    可能的原因:您在2D游戏中使用3D着色器或操作系统不支持的着色器。 确保您将手机着色器用于手机游戏。

完成错误后,开始优化性能和内存使用率。 用户将能够更快地运行游戏,而不会遇到加热装置的问题。

优化技巧


  • 设置所需的帧频。 一部视觉小说每秒钟20帧就足够了,但对于射击者来说则需要60帧,而低帧率则花费更少的渲染时间。
  • 动画/粒子系统/选择性处理。 播放机的相机不可见的对象不会被处理。 仅在玩家的视野中对角色进行动画处理,更新粒子,并处理3D模型。
  • 压缩纹理和声音。 使用Crunch压缩纹理。 流音乐和拆开声音效果会使游戏超载。 尝试降低音频质量。 压缩会大大降低对象的质量。
  • 不要让Raycast触摸不必要的物体。 射线广播就像是当您触摸屏幕或单击时从手指或鼠标中射出的小光束。 查找对玩家的动作不起作用的对象,并将其从Raycast计算中删除。
  • 使用对象池。 频繁创建和删除大量对象会降低性能。 而是将它们组合成列表,队列或其他结构。 例如,子弹应组合成一个阵列。
  • 优化着色器。 为每个可视化器定义材料。 游戏不必在游戏开始时创建新材料,这样可以节省资源。 让可视化器仅包含功能上必需的内容。
  • 使用AssetBundles (字面“资产捆绑包”)代替Unity中的旧资源系统。 AssetBundles从Unity导出文件,并将它们放在单个文件中,从而节省了RAM。

工具(仅适用于Unity)


脚本:


图形:


记忆体


平台优化:


过帐


小费


现在是时候向世界展示您的创作了。

晋升是最令人兴奋的阶段。 如有疑问,游戏设计社区将为您提供帮助。 请记住,您并不孤单,而且既然已经过去了那么多,那么您需要完成工作直到最后。

您必须先发布游戏,才能知道游戏是否会大受欢迎。

  1. 内容描述

    截取“关于游戏”页面的屏幕快照,并为计划发布游戏的每个平台创建描述。
  2. 联网

    如果您想让所有人都了解游戏​​,请为游戏媒体撰写公告,参加节日和会议。

    在发行前一周将游戏的描述发送给媒体-给人们一些时间来编写它。 他们可能不会写这篇文章,但要记住:记者喜欢关于开发人员的美丽故事,独特或矛盾的想法以及媒体工具。

    从哪里获得地址?
    • 在线查找您喜欢的作者的联系方式:邮件,LinkedIn,Twitter。
    • 在“关于我们”部分或页面底部找到出版物的邮件。

    不要写不涉及您的类型或目标游戏平台的游戏出版物。

  3. 彩带和视频博客

    在以下情况下,他们将制作游戏视频:
    • 该游戏将在平台上流行。
    • 您将直接写信。 不要谈论自己,简短,精美且令人信服地讲述游戏。 使用gif和屏幕截图吸引注意力。

    通常,页面上列出了博客作者的地址。 如果没有,请尝试在Internet上查找联系人。



    给视频博客作者Markiplier的信,该博客的频道拥有超过2100万订阅者



    Markiplier的游戏视频
  4. 社交网络

    这是一个很好的推广工具:Agar.io在4chan上获得了普及,Butterfly Soup在Twitter上关注之后,下载量猛增。

    最佳:通过发布者或您自己发布。 想要遵循Devolver Digital发布的热线迈阿密路线,还是向Farmville和Doki Doki文学俱乐部学习?

    与发布商合作 ,必须首先找到它。 在那之后,将会有一小笔文书工作,但是您将获得足够的资金来开发游戏。

    如果您打算发布自己 ,请准备花很多时间研究市场营销。 您可以使促销活动失败,但是在此过程中,您将获得宝贵的知识并节省资金。



    游戏设置数量在增加

    我更喜欢自己发布游戏。 我喜欢学习,并且相信无论进度如何,一个真正好的游戏都会成功。
  5. 点击“发布”按钮!

    原来! 现在放松,抓住美味,放松。 您孜孜不倦地当之无愧。

    如果游戏没有得到预期的关注,请不要害怕-这是正常现象。 我的第一个游戏在Steam上只有255次下载。

最主要的是,您制作了游戏并学到了很多东西。 现在已经足够了,并且总是有机会用新知识再次尝试。

工具


presskit()服务 可帮助开发人员为媒体编写游戏说明。

发布平台:

  • Steam (PC)-每个帖子$ 100。
  • 来源 (PC)。
  • GOG (PC)-获准免费出版。
  • Mac App Store (MacOS)-每年100美元,需要一个Apple开发人员帐户。
  • itch.io (PC / Web)是免费的出版物。
  • Game Jolt (PC / Web)是免费出版物。
  • Armor Games是免费出版物。
  • Kongregate (Web)是免费出版物。
  • Newgrounds (Web)是免费出版物。
  • GitHub (Web)是在___.imtqy.com结尾的网站上的免费出版物。
  • 亚马逊 (网络/移动)是免费出版物。
  • Google Play (移动版)-每个帖子25美元。
  • iOS App Store (移动版)-需要Apple Developer帐户。

游戏日志:


节庆:


游戏会议:


结论


没有简单的方法可以创建游戏。 只有您的决心和努力。

在《半条命》,《我的世界》和《神秘海域》的背后,是鲜血,汗水和眼泪的海洋。
《生化奇兵》的作者Ken Levin

您会犯错误,陷入僵局并哭泣。 这是正常现象-这意味着您正在超越自己。

来自编辑


Source: https://habr.com/ru/post/zh-CN420689/


All Articles