Геймдизайнер с нуля: как начать делать игры без опыта

Делаем игру немного умнее

Игра почти готова. Жаль, что играть вам не с кем. В качестве последнего этапа я покажу, как управлять оппонентом с помощью простой ИИ. Оппонент будет пытаться держаться параллельно мячу, когда тот летит в его сторону. Если оппонент ловит мяч, он перемещается случайным образом и бросает мяч в случайном направлении. Чтобы сделать ИИ чуточку человечнее, я добавлю задержки во все, что делается на поле. Это не особо умный ИИ, но все же против него будет можно играть.

При разработке системы такого рода хорошо мыслить состояниями. ИИ оппонента имеет три возможных состояния: following (следует), aiming/shooting (прицеливание/бросок) и waiting (ожидание). Начнем только с объекта AI:

В зависимости от состояния AI (ИИ) я хочу, чтобы он выполнял разные действия. По аналогии с мячом я создам функцию update, которую смогу вызывать в requestAnimationFrame, чтобы AI действовал в соответствии со своим состоянием:

Состояние FOLLOWING достаточно простое. Оппонент перемещается в вертикальном направлении мяча, и AI переходит в состояние WAITING, чтобы добавить некоторое замедление реакции. Эти два состояния показаны на рис. 15.

При разработке системы такого рода хорошо мыслить состояниями.

Рис. 15. Простое состояние FOLLOWING

Используя код с рис. 15, AI выбирает между следованием за мячом и ожиданием доли секунды. Теперь добавляем код в функцию update уровня всей игры:

Запустив игру, вы увидите, что оппонент следует за перемещениями мяча — не такой уж и плохой ИИ, состоящий менее чем из 30 строк кода. Конечно, если оппонент поймает мяч, он ничего делать не будет. Поэтому на излете отведенного мне часа пора заняться обработкой действий для состояния AIMING. Я хочу, чтобы ИИ заставлял вашего оппонента случайным образом перемещаться несколько раз, а затем кидать мяч в случайном направлении. На рис. 16 добавлена закрытая функция, которая именно это и делает. Добавление функции aimAndFire к выражению case с AIMING создает полнофункциональный ИИ, против которого интересно играть.

Рис. 16. ИИ прицеливается и бросает мяч

Blender

Blender — бесплатный пакет для создания трехмерной (3D) компьютерной графики, содержащий средства моделирования, анимации, рендеринга, постобработки видео, а также создания игр. Функций Blender вполне достаточно для работы как обычным пользователям, так и профессионалам. В программе есть все основные инструменты, используемые в профессиональных ЗD-редакторах.

В сравнительно небольшой объем Blender помещено полноценный редактор со всеми основными функциями и набором текстур, моделей и обработчиков событий. Дополнительные возможности в Blender реализуются за счет подключения плагинов — как официальных, созданных авторами редактора, так и разработанных пользователями.

Основные возможности Blender:

  • Поддержка разнообразных геометрических примитивов (включая полигональные модели, систему быстрого моделирования в режиме SubSurf, кривые Безье, поверхности NURBS, метасферы, скульптурное моделирование и векторные шрифты).
  • Универсальные встроенные механизмы рендеринга и интеграция с внешним рендерером YafRay.
  • Инструменты анимации, среди которых инверсная кинематика, скелетная анимация и сеточная деформация, анимация по ключевым кадрам, нелинейная анимация, редактирование весовых коэффициентов вершин, ограничители, динамика мягких тел, динамика твердых тел, система волос на основе частиц и система частиц с поддержкой коллизий
  • Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта и экспорта файлов, автоматизации задач.
  • Базовые функции нелинейного редактирования и комбинирования видео.
  • Game Blender — подпроект Blender, предоставляющий интерактивные функции, такие как определение коллизий, движок динамики и программируемая логика.

Stencyl

Еще одна среда для разработки простых компьютерных игр, которая не требует от пользователя знания кодов и языков программирования. Вам придется работать со схемами и сценариями, представленными в виде блоков. При этом разрешается перетаскивать объекты и характеристики мышкой. Несмотря на то, что в блоках предусмотрены десятки вариантов, авторы Stencyl позаботились и о тех, кому этого может не хватить. Так, разрешается прописывать в блоках свой код. Правда, для этого понадобится разбираться в программировании.

Пользователям, которые работали в Photoshop, понравится графический редактор Scene Designer, предназначенный для рисования игровых миров. Его инструментарий поразительно напоминает меню популярного фоторедактора.

CraftStudio

Добавляйте и изменяйте объекты в 3D пространстве, прописывайте сценарии и правила, рисуйте анимации и эффекты. Авторы CraftStudio продумали всё, чтобы создание игр на PC с нуля в реальном времени было понятным и увлекательным. При этом все инструменты для моделирования и анимаций встроены в программу и понятно обозначены. То же самое можно сказать и о визуальном редакторе сценариев. Что самое интересное — вы не обнаружите проблем с совместимостью форматов или их конвертацией. Для более продвинутых пользователей предусмотрен текстовый редактор Lua Scripting.

Особые упоминания

Каждый список должен на чём-то заканчиваться, и этот не исключение. Ниже представлено всё, что по каким-то причинам не попало в основные пункты. Если ничего из предложенного выше вам не приглянулось, обязательно взгляните на эти варианты.

Моды для Minecraft

Если ваши дети играют в компьютерные игры, они уже могут быть знакомы с Minecraft. Моддинг – это модифицирование оригинальной игры, и в этом плане Minecraft особенно популярен. Моды могут быть удобным средством изучения программирования – или, по крайней мере, мотивировать к нему. Модами для Minecraft занимается очень много людей. Минус в том, что пишутся они на Java, а этот язык не подходит для детей младшего возраста. Впрочем, при должном интересе к игре, попробовать стоит. Узнать больше можно тут.

GameSalad

Это инструмент визуального программирования, наподобие Stencyl и Construct2. Использовался для создания коммерческих игр, доступна бесплатная версия, платные открывают доступ к другим платформам. Лично я GameSalad не пользовался.

Codea

Codea – приложение для разработки игр для iPad на самом iPad. Стоит $10, использует Lua и предоставляет собственную, простую в изучении библиотеку. Есть редактор кода, отладчик и средства для подключения к компьютеру. Можно подключиться к Mac и сделать вполне пригодную для выпуска игру. Набирать текст на iPad совсем невесело, так что беспроводная клавиатура практически необходима. Включает массу примеров и отлично подходит для детей, у которых имеется iPad (особенно, когда это всё, что у них есть).

Kodu или Project Spark

или

Это игра про создание игр. По факту, это игра, которую можно модифицировать, превращая во что угодно. Kodu – язык визуального программирования от Microsoft. Project Spark – модифицированная версия Kodu, вышедшая для XBox One. Это далековато от обычного программирования, но многие идеи (как и конечный результат!) те же самые.

Code Combat

Интересная концепция – браузерная игра, где персонаж управляется программированием. По мере продвижения по игре вас учат более сложным вещам. По сути, вы учитесь программировать, играя в игру. Изначально создавалась для обучения Javascript, но потом были добавлены и другие языки. Я убеждён, что она полностью бесплатна, так что вам ничего не стоит попробовать.

Alice

Alice – это средство для обучения программированию с интегрированной средой разработки. Вот собственные слова авторов:

Alice поддерживается Университетом Карнеги – Меллон и абсолютно бесплатна.

RPGMAKER

RPGMaker Ace – это продукт, схожий с GameMaker, предназначенный для создания конкретного типа игр, относящихся к жанру jRPG. Его лозунг, буквально: «Достаточно простой для ребёнка, достаточно мощный для разработчика». С помощью RPGMaker сделано несколько коммерческих игр. Отлично подойдёт вашему ребёнку, если он поклонник жанра. Стоит $70, но часто бывает на распродажах в Steam.

Ритм

Существует такое понятие, как ядро геймплея (или ядерные механики, ядерный цикл) — это повторяющиеся механики, с которыми игроку придется сталкиваться все время. Часто можно встретить такую схему: игрок убивает врага, прокачивается и идет убивать врага посильнее, чтобы прокачаться еще лучше и снова пойти на нового врага.

Однако если вся игра будет строиться только вокруг прокачки, то это однообразие действий быстро надоест. Представьте, что вы слушаете музыку, в которой нет ничего, кроме трех повторяющихся нот. Интереса хватит на пару минут, но потом уже станет тошно.

Чтобы этого не случилось, в игру нужно добавить ритм или динамику: это чередование действий, которые должен выполнить персонаж. Например, сначала немного сражений, потом исследование локации, решение головоломки, снова поединок, разговор с ключевым для сюжета персонажем и так далее.

Если человек будет занят одним делом слишком долго, ему быстро надоест, и он не захочет больше играть.

В Fable: The Lost Chapters игрок мог пойти рыбачить, если ему надоедало сражаться с монстрами и бандитами.

Настройка интерфейса

В стандартном интерфейсе проекта шесть элементов рабочей области:

  1. Верхняя панель инструментов — в ней находятся стандартные вкладки File, Edit, Help, как во многих других интерфейсах, а также вкладки Assets, GameObject, Components и Window.
  2. Scene — окно сцены, в котором выстраивается игровое пространство (элементы игрового мира, текстуры, фигурки персонажей и прочее).
  3. Games — это окно игры, в котором можно посмотреть глазами пользователя, как будут двигаться элементы и работать игровые механики.
  4. Hierarchy — окно иерархии, в нем перечислен список всех элементов (GameObject), которые помещены в окно Scene.
  5. Project — это система папок, в которых хранятся ассеты по категориям (текстуры, шрифты, звуки и т.д.).
  6. Inspector — окно для изменения элементов игры, их размера, цвета, положения в пространстве и других характеристик.

Четвертый этап — звук

Звук и саундтрек в играх — очень важная часть, которая, однако, очень часто игнорируется начинающими разработчиками. Подумайте, у игрока, как и у любого человека, есть всего несколько основных органов чувств, а чем больше органов чувств в игре задействовано, тем лучше погружение игрока в процесс.Сколько органов чувств задействовано у игрока?Обоняние? Нет. Осязание? Иногда, что связанно с некоторыми системами управления в играх

Зрение? Вот на зрении всё и строиться, это основа.Поэтому такая высокая важность графики и визуальных элементов. И по сути дела кроме зрения в играх можно задействовать еще только одно чувство — слух.Если вы раньше играли в компьютерные игры, то у вас наверняка есть любимые, а так-же есть какой-то любимый OST (Музыка из игр)

И игра вам могла запомниться именно за счёт музыки. Про мой любимый OST я писал вот тут:Звуки — это еще один удар по органам чувств, звук сопровождающий действие может как-бы усиливать эффект от этого действия. Просто выстрел и вылет пули — скучно. Верный звук перезарядки, выстрела, столкновения пули с поверхностью (разные для разной поверхности), падение гильзы на пол и прочее существенно усиливают погружение игрока в процесс.Вы же знаете про всякие специальные звуки и фразы в таких играх как Unreal Tournament и насколько сильно они увеличивают фан от игры.Другими словами — верные звуки и музыка делают игру атмосферной, эмоциональной, человечной и куда более интересной.У меня был небольшой опыт когда я делал игру Lonely Dude.Тогда для этой игры мой знакомый написал уникальный OST, а остальные звуки я просто взял из бесплатных источников.Что я хочу сказать? Для простой игры совершенно необязательно сильно заморачиваться со звуком, достаточно просто поместить в игру звуки для основных действий (выстрел, взятие бонуса, завершение уровня, прыжок и т.п.) и это уже существенно усилит общее впечатление от игры. Музыку написать конечно существенно сложнее, но иногда можно купить трек за каких-то $1-5, ну или посидеть с такими программами как FL Studio, дабы написать пару простых треков для своей игры.Бесплатные звуки вы можете найти вот тут: https://soundbible.com/Или на других подобных сайтах.

Game Maker

Из простого редактора текстур и моделей (первые версии программы) Game Maker превратился в полнофункциональную среду разработки приложений. Последняя на сегодняшний день восьмая версия позволяет работать с 2D и 3D объектами, использовать стандартные и созданные пользователями библиотеки (для этого нужно использовать Lib Maker) и многое другое.
Game Maker – это самая, наверно, дружелюбная программа-конструктор игр из представленных сегодня. Для создания кода можно использовать как мышь («графический» вариант программирования), так и более классическую клавиатуру (то есть вбивать код вручную). Поддерживается импорт моделей из различных редакторов, к примеру, из популярного 3D Max.
Однако, несмотря на очевидные плюсы, есть и минусы. Один из них – ограниченная поддержка 3D, введенная с шестой версии программы. До шестой версии основными играми, созданными с помощью Game Maker, были платформеры, но после появилась возможность создавать полноценные трехмерные игры. Другой минус – необходимо минимальное знание принципов программирования. В основе каждого действия, созданного на основе Game Maker, лежит реакция объекта на какое-то событие, а значит, прежде, чем приступать к работе, нужно понять, что такое триггеры, скрипты и спрайты (последние нужны, к примеру, для того, чтобы сделать огонь и траву). Ну и, конечно, лучше бы уметь работать с текстурами, моделями и анимацией.

Скачать Game Maker

Уровень сложности создания Android-игр

Самое главное – это вполне реальная возможность создать свою игру самому, не тратя на нее тысячи долларов и обходясь без помощи опытных дизайнеров и программистов.

Да, огромные приложения с 3D-графикой делаются популярными и богатыми компаниями, где работают настоящие титаны с превосходными навыками. Но не всегда такие игрушки добиваются популярности, тогда как даже простое и элементарное приложение, разработанное новичком, имеет все шансы завоевать любовь миллионов пользователей со всего мира.

Что же необходимо знать и уметь человеку, решившему внести свое изобретение в игровую сферу? Для начала, это иметь хотя бы минимальные знания в языке программирования, которые с легкостью можно получить на курсах информатики или с помощью специальных учебников. Оптимальный вариант – язык Java. В виде альтернативы вполне можно представить программные коды, способные заменить конкретные действия в игре, но тогда вы должны хорошо владеть английским языком.

Также развеем заблуждение о том, что для создания приложения необходимо полностью знать Photoshop, иметь дизайнерский вкус и отлично рисовать. Но не стоит путать, например, новое приложение для общения с полноценной игрой. Если вы решили создать первое – там главное только текст и клавиши управления, но если настоящую игру – без художественных элементов не обойтись. И фишка в чем: эти элементы находятся в конструкторе. То есть, собственноручно рисовать вам придется очень редко.

Плавно переходим к конструкторам, поскольку они являются базой всей игры и только с помощью них новичок может создать свое творение. Выбор таких специальных программ огромен, о чем поговорим ниже.

Теперь подводим небольшие итоги. Если вы решили создать свою игру, то для этого требуется:

  • Идея, образное представление, о чем будет игра, знание ее основного сюжета;
  • Минимальное владение языком Java, ведь полностью без программирования (без нужных знаний) не обойтись;
  • Установленная на компьютере программа для создания продукта;
  • Свободное время, внимательность и желание трудиться.

2 Место

Unreal Engine – является довольно мощным движком для создания игр. Эта платформа даёт возможность создания 2D и 3D игр. Неотъемлемой частью таких современных и мощных движков является кроссплатформенность, и в Unreal Engine она довольно хорошо реализована. Можно создавать игр для всех популярных платформ как для смартфонов (Android, IOS), так и для компьютеров под управлением (Windows, MacOS).

Для данного движка на официальном сайте и в сети интернет есть довольно много документации и информации о работе с ним. Поэтому если вы мало знакомы с Unreal Engine вы сможете с легкостью найти всю нужную для старта информацию, а также при возникновении каких-либо проблем в ходе разработки, вы сможете обратиться на форму и обсудить либо найти решение проблемы.

Unreal Engine является полностью бесплатным движком для создания игр, который вы можете скачать с официального сайта.

Очень важно, если вы профессиональный разработчик и планируете создать довольно сложный и большой проект, тогда вам стоит обратить внимание на эту платформу, так как она имеет полностью открытый код и очень хорошо оптимизированную, современную графику. Что касается написания скриптов, то в движке используется язык программирования C++. Открытый код позволит вам добавить с движок свои библиотеки и фреймворки, что дает почти не ограниченные возможности в создании игр

Открытый код позволит вам добавить с движок свои библиотеки и фреймворки, что дает почти не ограниченные возможности в создании игр.

Хочу заметить, что, будучи не опытным в сфере создания игр, а также если вы не знаете основ программирования на С++, тогда не стоит начинать знакомство с разработкой игр с этого движка.  Так как Unreal Engine является профессиональным инструментом для создания игр.

Что бы понять всю силу и возможности движка, можете просмотреть уже созданные на нем популярные проекты, такие как Gears of War 4, We Happy Few, Final Fantasy VII, Dead Island 2, Taken 7 и еще длинный список примеров возможностей.

Плюсы:

·         Огромное количество инструментов.

·         Создание абсолютно любого жанра игр.

·         Кроссплатформенность.

·         Оптимизация.

·         Большое количество видео уроков и инструкций.

·         Собственные форумы, обсуждения в разработке игр.

·         Движок является полностью бесплатный.

·         Встроенный магазин дополнений.

·         Возможность создания мульти плеера в играх.

·         Высокий уровень графики.

·         Почти не ограниченные возможности в создании игр.

·         Открытый код

Минусы:

·         Не подходит для начинающих.

·         Довольно требователен к компьютеру.

·         Сложный интерфейс.

Ren’Py

Проекты на этом движке: Long Live the Queen, A Hate Story, Analogue.
Ren’Py

Плюсы Ren’Py:

  • Кроссплатформенный движок, который позволяет делать игры под любые устройства;
  • Удобен в использовании и наглядно показывает, что писать код во время разработки не так страшно, как кажется;
  • Лучшее решение для квестов и визуальных новел.

Минусы Ren’Py:

  • Есть ограничения в поддержке различных механик;
  • Ориентирован в первую очередь на 2D проекты, поэтому с 3D работать сложно;
  • Изначально был заточен под конкретные жанры, соответственно, какой-то шутер от первого лица или стратегию в реальном времени на нем сделать практически нереально.

Godot

Движок разработан двумя программистами из Аргентины — Хуаном Линетски (Juan Linietsky) и Ариэлем Манзур (Ariel Manzur) в 2007 году. Несколько лет Godot был основой для внутреннего ПО некоторых латиноамериканских компаний. До того как исходный код движка выложили в открытый доступ, его итерации выходили под разными названиями: Larvotor, Legacy, NG3D и Larvita. Godot до сих пор активно поддерживается благодаря пожертвованиям на Patreon от сообщества, заинтересованного в развитии технологии.

Kingdoms of the Dump — игра, созданная на Godot

Достижения:

  • согласно данным портала itch.io, Godot занимает пятое место среди самых популярных игровых движков, оставив позади себя RPG Maker и Unreal Engine 4;
  • на Godot сделано более 5 000 проектов;
  • в начале 2021 года разработчики получили грант на 120 тысяч долларов от волгоградской студии «KEFIR!».

Преимущества:

  • подходит для 2D-игр;
  • в отличие от Unity, поддерживает систему измерения в пикселях и облегчает создание пиксель-арта;
  • мультиплатформенный редактор (Windows, macOS, Linux) работает в двух режимах — 32 и 64 бита;
  • скрипты реализованы проще, чем в других движках: помимо собственного GDScript, есть полная поддержка C# 8.0, C++, а также визуальное программирование;
  • гибкая система анимации объектов, встроенная в движок;
  • наличие подробной документации в сообществе, а также много полезной информации на reddit.

Недостатки:

  • 2D-физика и тени реализованы хуже, чем в других бесплатных движках;
  • могут возникнуть трудности с перемещением и изменением объектов на уровне;
  • 3D-движок не может конкурировать с более мощными альтернативами;
  • не поддерживает консоли;
  • ограниченная интеграция со сторонним API;
  • отсутствие знаковых хитов.

Игры на движке: Kingdoms of the Dump, The Garden Path, Until Then, Ex Zodiac, GDQuest.

Я заинтересовался Godot, когда искал альтернативу Unity/UE4 c открытым исходным кодом, и начал с ним работать в октябре 2019 года. До этого я делал игры на GameMaker, потом перешёл на Unity, чтобы сделать первую 3D-игру, и продолжал на нём работать, пока не попробовал Godot. Теперь я работаю только на нём. В процессе разработки нередко возникают проблемы с исправлением багов. Некоторые ошибки появляются в самых неожиданных местах, и сложно найти корень проблемы. Ситуацию усложняет скудное и запутанное описание к ним

Я 3D-художник, для меня важно, чтобы 3D-сцены отлично выглядели. Поэтому хотелось бы, чтобы в следующих версиях улучшили возможности графики: физически корректный рендеринг, связанный с динамическим и статическим глобальным освещением, эффекты окружающей среды и постобработки

При этом должны быть хорошая производительность и оптимизация. Об этом стоит задуматься, ведь наличие 4K-дисплея у игрока скоро станет нормой».

Леонардо «Leocesar3D» Велозу (Leonardo «Leocesar3D» Veloso), инди-разработчик (Human Diaspora).

Интервью в марте 2021 года

Human Diaspora

«Каждый день я сталкиваюсь с молодыми людьми, убеждёнными в том, что Unity и UE4 — это единственные движки, которые стоит изучать. Они игнорируют тот факт, что экосистема геймдева разнообразна: игры создаются как на популярных, так и на собственных движках. <…> Godot не конкурирует с другими инструментами, ведь он создан не для прибыли. Мы заинтересованы в том, чтобы мотивировать разработчиков поработать на нём. Это поможет не только развеять мифы о разработке игр, но и увеличит количество людей, активно работающих над улучшением технологии, которая навсегда останется бесплатной для всех».

Райан Хьювер (Ryan Hewer), CEO Little Red Dog Games (Precipice).

«What is the best game engine: is Godot right for you?», апрель 2020 года

Precipice

Game Editor

Game Editor — бесплатный конструктор для создания несложных двухмерных игр для операционных систем Windows, Mac, Linux, IOS, Android. Создаваемые игры представляет собой набор игровых объектов, каждому из которых задается реакция на определенное событие, что определяет их поведение в игре.

За внешний вид объектов отвечают встроенные наборы анимаций. Есть возможность использования своих графических и аудио элементов. Помимо стандартных реакций объектов можно использовать и свои, написанные на специальном скриптовом языке Game Editor.

Основные возможности Game Editor:

  • Простой и легкий для восприятия интерфейс.
  • Готовое приложение можно экспортировать на Windows, Linux, Android, IOS.
  • Созданную игру можно сразу протестировать, в любой момент остановить ее и снова начать редактировать.
  • Возможность использования графических файлов в форматах JPEG, GIF, PNG, BMP, PCX, TGA, XPM, XCF и TIF.
  • Возможность использования аудио файлов в форматах Ogg Vordis, MID, MOD, S3M, IT и ХМ.

Ввод с клавиатуры

Итак, вы можете передвигать игрока, но он не будет перемещаться без команд. Добавьте некоторые элементы управления к игроку слева. Вам нужны два способа управления этим игроком: с клавиатуры (на ПК) и сенсорным вводом (на планшетах и смартфонах).

Чтобы обеспечить согласованность между сенсорным вводом и вводом от мыши на различных платформах, я буду использовать отличную инфраструктуру унификации — Hand.js (handjs.codeplex.com). Прежде всего я добавлю скрипт в HTML в раздел head:

Рис. 9 демонстрирует применение Hand.js и jQuery для управления игроком при нажатии клавиш на клавиатуре A и Z или при касании сенсорных элементов управления.

Рис. 9. Добавление элементов управления с поддержкой сенсорного ввода и ввода с клавиатуры

Цель

Цель — это то, чего добивается игрок или какая перед ним поставлена задача. Иногда главный герой должен спасти мир или защитить родину на войне, но бывают и такие игры, где нужно найти выход из психиатрической лечебницы или отомстить за убийство семьи.

Какой бы ни была цель, игрок должен понимать, почему ее нужно достичь

То есть он должен видеть, что это важно для его персонажа и что у него есть мотивация. Например, если он мстит за жену и детей, то нужно показать, что они действительно были близки — проводили время вместе и радовались

Тут хорошо работают контрасты: когда сначала показывают счастливого героя в кругу семьи, а потом его же, но уже в депрессии из-за утраты.

Даже если речь идет о спасении мира, то это тоже должно касаться персонажа — а следовательно, и игрока — лично. Высокие побуждения героя никого не впечатлят, потому что это избито. Нужно что-то большее, чем всеобщее благо, — собственные интересы.

Например, иногда персонаж понимает, что если умрут все, то вместе с ними и он. Или же им движет жажда славы или наживы, а может, герой просто следует за своей любовью и параллельно успевает всех спасти. Как бы то ни было, необходимо показать чувства, которые знакомы игроку, чтобы он мог ассоциировать себя с главным героем.

ВАЖНО!

Игру нужно рассчитывать на определенную аудиторию — кому-то интересно играть за вора, который хочет стать лучшим в своем деле, но кому-то больше по душе боевые действия для захвата мира.

Unity

Проекты на этом движке: Pokemon Go, West of Loathing, , Ori and the Blind Forest.

Программирование и киберкультура для школьников: Minecraft, Dota 2 и Unity

Учить детей играть в Minecraft и Dota 2 еще со школы? А почему нет? В какое прекрасное время мы живем!…

Unity

Плюсы Unity:

  • Есть инструменты для быстрого создания прототипа будущей игры;
  • Можно достичь высокого уровня производительности в проекте;
  • Универсальное решение, которое используется как для маленьких проектов, так и для ААА-тайтлов.
  • Проект имеет закрытый исходный код, если вы столкнетесь с каким-то багом, то придется ждать обновления Unity;
  • Редактор кода и отладчик часто работают плохо и отнимают кучу времени у создателя;
  • Не такой низкий порог вхождения, как в других движках. Чтобы сделать на нем игру, придется многое выучить.

Сколько занимает создание игры?

Вопрос сложный, всё зависит от ваших навыков, от того, что это за игра и других факторов.Иногда простую игру на телефон опытный человек может сделать за пару недель, иногда игры среднего качества делаются небольшой командой из нескольких человек за 6-12 месяцев, ну а крупные проекты делаются большими студиями и разработка может занимать 1-2 и больше лет, при этом над игрой трудиться команда из 100 и более человек.По примерным данным создание одной крупной игры занимает порядка 2-3 лет для команды из 200 человек, если мы говорим про серьезные проекты типа GTA 5.При этом не забывайте что бывают и исключения из правил. Notch написал первую версию Minecraft за неделю и эта версия уже имела большую часть базовых структур. но в итоге разработка заняла несколько лет, хотя в отличие от GTA, над Майнкрафт работала очень маленькая команда, а доходы от Майнкрафт были очень серьезными.Хотя это больше исключение, а не правило. Сейчас конкуренция существенно выше и подобные супер успешные и супер дешёвые проекты появляться всё реже.На эту тему я позже писал большую статью:

Сколько по времени делают игры?

Что такое программирование?

Итак, когда речь идёт об игровой разработке, скорее всего имеется в виду программирование. Что это такое? Проще всего сказать, что это искусство объяснять компьютеру, что он должен делать. В контексте разработки игр это значит делать вещи, вроде «если игрок нажимает кнопку «вверх», сделать то» или «если здоровье падает до нуля, сделать это».

Как вам программировать игры – это уже вопрос непростой, и с ним вам предстоит помучиться. Ещё важнее понимать, что здесь всё зависит от вашего ребёнка. Все мы думаем по-разному и по-разному выражаем свои идеи. Кто-то может выбрать стиль, совершенно непривлекательный для другого.

По большому счёту, существует три способа говорить компьютеру, что делать (зачастую дело сводится к их комбинации):

Визуальное программирование

Распространённый подход среди новичков, да и среди разработчиков вообще (к примеру, в популярном коммерческом движке Unreal Engine 4 есть интерфейс визуального программирования Blueprints). Вы формируете игровой экран, перетаскивая элементы, впоследствии связывая их подобием блок-схемы. Если ваш ребёнок мыслит визуальными образами, это лучший выбор.

Construct – один из инструментов визуальной разработки игр

Скриптовые языки

Здесь вы объясняете компьютеру задачу с помощью небольших текстовых файлов. Зачастую вы всё равно пользуетесь визуальным редактором, как на картинке выше, но даёте компьютеру понять, что нужно делать, не заполняя текстовые поля и не выстраивая схемы, а с помощью кода.

Пример скриптового языка LUA в библиотеке LÖVE

Этот кусочек текста указывает компьютеру загрузить изображение «whale.png» и вывести его на экран.

Традиционные языки программирования

Наконец, многие игры пишутся на традиционных языках: C++, Java, C# и других. Сразу скажу прямо, что не советую юным игроделам начинать с традиционных, или, если точнее, компилируемых языков по ряду причин.

Главный вопрос, который может у вас возникнуть: чем отличаются скриптовые и компилируемые языки? В основном различия касаются технических подробностей, выходящих за пределы данной статьи, но в целом всё сводится к комплексности. Работа с компилируемым языком затрагивает множество вещей, о которых не нужно думать в скриптовых языках: компиляция (превращение написанного вами текста во что-то, понятное компьютеру), линковка (тут в двух словах и не объяснить) и многое другое.

Более важным различием выступает назначение. Скриптовые языки в основном направлены на решение конкретных задач для упрощения жизни разработчика. Если вкратце, скриптовые языки гораздо проще в изучении и использовании.

В конечном итоге вы часто будете встречать средства разработки, совмещающие визуальное программирование и скриптовые языки.

Третий этап — графика

Графика обычно делается параллельно с процессом разработки и написания кода, и обычно ей занимается отдельный человек. Очень трудно совмещать работу не только программиста, но и дизайнера, однако иногда это удаётся сделать в одиночку, к тому-же некоторые проекты не требует очень качественной графики, либо-же берутся уже готовые картинки и спрайты.

Читайте: Где брать спрайты для игр?

Графика и рисование это очень затратный процесс.По моему опыту, если вы делайте игру в одиночку, на графику может уходить 40-60% общих затрат времени. По сути дела для инди разработчика одиночки хорошая графика может удвоить общее время на создание игры. И если удвоение с 1 месяца до 2 это не страшно, то удвоение с 2 до 4 лет, это очень много.Поэтому крайне рекомендуется для начинающих разработчиков использовать все возможные способы получить бесплатную графику (может быть взять художника/дизайнера в долю) или же в качестве первых игр сделать графическое оформление минимальным.В крайнем случае, можно заказать графику отдельно на стороне, с помощью аутсорса.

Однако, если вы хотите сделать всё сами, то есть множество способов научиться рисовать. Я тоже учусь (недавно купил планшет) и для обучения рисованию могу посоветовать вам некоторые хорошие ютуб каналы:

Хорошие YouTube каналы про Геймдев и Графику

Совет №4. Следуйте принципу «Каждому по способностям»

Успели помучить друзей своими прототипами? Уже получается собрать целый уровень, не запутавшись в движке? Пора сделать полноценную игру

И здесь важно вновь не потонуть в море собственных амбиций

В геймдеве (и не только) существует такое понятие, как минимально жизнеспособный продукт — то есть набор механик, которого достаточно для запуска. В случае шутера, например, это перестрелки. Все прочие механики — стелс, кат-сцены, разрушаемость — можно добавить позже.

Не пытайтесь сделать всё и сразу. Minecraft тоже когда-то была всего лишь виртуальным конструктором — и посмотрите, во что она выросла.

Геймдизайнер и ведущий канала Extra Credits Джеймс Портнов рекомендует опираться на то, что вы умеете делать лучше всего. Хорошо рисуете? Создайте игру с оригинальным стилем. Не умеете рисовать, зато умеете кодить? Сделайте проект с упором на механики.

Концепт

После того как у вас появились какие-то мысли — сядьте и опишите концепцию игры. Сначала это могут быть лишь тезисы, которые потом превратятся в логично изложенные мысли. Если же сделать это не удалось – пересмотрите свою идею и избавьтесь от противоречий.

Определите то, что должно привлекать потенциальных игроков, то есть саму её философию. Например, предложите стать единоличным правителем маленькой островной страны, или же руководить истребителем прямо из кабины пилота, своевременно переключая необходимые тумблеры.

Теперь к особенностям вашей игры. Скорее всего, масса экспериментаторов уже пробовали себя в вашем жанре, но всё равно нужно придумать что-то своё, иначе интерес к проекту будет отсутствовать. Вот небольшой пример:

Пример

Концепт: симулятор маленького магазина.Особенность: вы лично договариваетесь с поставщиками, привлекаете новых клиентов и отчаянно пытаетесь выжить в суровых реалиях.
Объясняете какие факторы влияют на успех, а также говорите о ключевых особенностях игровой механики.
Не пытайтесь добавить пункты, которые вы не хотите реализовывать. Ваша игра должна быть тем, за что вы бы сами хотели заплатить.
Последний этап – положите все черновики в папочку, а затем и в ящик стола. Спустя пару недель вернитесь к ним, так как, возможно, вы потеряете и желание, и запал, а этот через этот этап лучше пройти ещё до начала проекта, чем бросить всё в наполовину готовом состоянии.

Заключение

Теперь у вас есть полноценная веб-игра, которая работает на ПК, смартфонах и планшетах. Эту игру можно усовершенствовать по многим направлениям. Например, сейчас она будет плохо выглядеть в портретном (книжном) режиме на смартфоне, поэтому вам нужно держать смартфон только в альбомном режиме, чтобы игра работала корректно. Это лишь небольшая демонстрация возможностей разработки игр для Web и не только.

Michael Oneppo — креативный технолог и бывший менеджер программ в группе Microsoft Direct3D. В последнее время работает в качестве главного технического директора в технологической некоммерческой компании Library For All и ведет исследования по программе NYU Interactive Telecommunications Program для получения степени магистра.​

Выражаю благодарность за рецензирование статьи эксперту Магомету Амину Ибрагиму (Mohamed Ameen Ibrahim).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector