Как сделать игру без движка
Перейти к содержимому

Как сделать игру без движка

  • автор:

Создание игры без навыков программирования

Создание игры без навыков программирования

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

Разработка компьютерных игр

Однако не все знают, что сейчас эта проблема постепенно отходит на второй план. Благодаря совершенствованию различных сред разработки (игровых движков) появляется все больше вариантов создания простых игр без написания кода. В этой статье преподаватели ВШБИ НИУ ВШЭ, авторы образовательных программ “Менеджмент игровых проектов” и “Основы создания игр”, расскажут как создать игру без навыков программирования.

Что нужно для создания игры

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

Что нужно для создания игры

Для тех, у кого нет достаточных знаний языков программирования (C++, С# или Java), существуют инструменты для самостоятельной разработки игр. Как правило, такие программы-конструкторы содержат все необходимые элементы, позволяющие воплотить любой игровой сценарий.

Вы можете научиться свободно пользоваться такими программами и в дальнейшем перейти к более сложным проектам. Для этого просто запишитесь на образовательные программы “Менеджмент игровых проектов” и “Основы создания игр” ВШБИ НИУ ВШЭ. Наши преподаватели из ведущих игровых студий поделятся опытом и расскажут обо всех нюансах разработки.

Что нужно для создания игры

Программы для создания игр

На сегодняшний день существует множество приложений, которые позволяют начинающим геймдизайнерам создавать собственные игры без программирования. Большинство из них — универсальные 2D- и 3D-движки, предназначенные для разработки игр для ПК и мобильных устройств. С помощью такого конструктора можно сделать простенькую аркаду или головоломку, шутер или квест.

Наиболее популярными в данный момент являются Unity 3D и Unreal Engine. Оба обладают богатым функционалом, постоянно совершенствуются и поддерживаются разработчиками. Ниже перечислим их ключевые особенности.

Unreal Engine

Поддерживает C#, UnityScript, Boo

Подходит для 2D- и 3D-графики

Подходит для 2D- и 3D-графики

Есть возможности для создания фотореалистичной графики

Богатые возможности для создания фотореалистичной графики

Движок бесплатный. Для коммерческого использования необходима разовая покупка или подписка.

Движок бесплатный. Взимается процент с продаж игры.

Магазин готовых ассетов, которые можно использовать в проекте.

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

Подходит для разработки игр в любом жанре.

Подходит для разработки игр в любом жанре.

Какой движок выбрать

Бытует мнение, что Unity проще для освоения новичками, однако за последние годы юзабили Unreal Engine сильно улучшилось. На данный момент это уже вопрос привычки. Более того, у обоих движков богатая фан-база и огромное количество учебных пособий в открытом доступе на YouTube. Вы легко сможете найти ответы на любой вопрос.

На Unity сделаны такие популярные игры, как Hearthstone и Ori and the Blind Forest, а также мобильные хиты – Pokemon Go, Super Mario Run и другие. На Unreal Engine делают как успешные AAA-тайтлы, например Gears of War 4, так и инди-хиты Hellblade: Senua’s Sacrifice или ARK: Survival Evolved.

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

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

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

В образовательные программ “Менеджмент игровых проектов” и “Основы создания игр” ВШБИ НИУ ВШЭ в Москве входит комплекс базовых знаний по разработка игр во всех популярных на данный момент конструкторах.

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

Еще больше информации вы найдете на канале МИП ВШБИ на YouTube. Подписывайтесь и не пропускайте свежие записи с открытых мероприятий ВШБИ НИУ ВШЭ.

Как и зачем создавать собственный игровой движок

Игра с нуля — интересный челлендж для разработчика. Но если хотите пройти его на сложности Nightmare, можно еще и сделать собственный игровой движок, заточенный специально под проект. Подводных камней много, рассказываем, что важно знать при разработке такого гейм-дизайнерского софта, и что в него добавить.

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

Зачем?

Начнем с главного вопроса, который стоит задать себе, если вы решили разработать собственный движок: зачем это вам?

Резонными причинами могут быть, например, такие:

  • Хотите создать игру с использованием новой технологии, которую не поддерживают другие движки. Или поддерживают, но реализация слишком сложна и костыльна. Это может быть масштабная симуляция (Factorio), нестандартный проект, который не вписывается в готовые шаблоны (Noita, Miegakure), и множество других идей. В таких случаях нет иного выхода кроме как писать собственный движок под проект.
  • Хотите оптимизировать рабочий процесс под игры, которые создаете. Если для проекта не нужен полный объем возможностей коммерческого движка, есть смысл создать кастомизированный вариант с подходящими для конкретной игры редакторами и функциями. Если движок не затачивается под конкретный проект, стоит задуматься, так ли нужно самописное решение или все-таки достаточно готовых вариантов?
  • Не хотите в долгосрочной перспективе зависеть от чужих технологий. Если вы хотите иметь полный контроль над проектом, готовы самостоятельно исправлять ошибки (а не сидеть в ожидании багфикса от создателей) и не бояться, что очередное обновление сломает игру, то собственный движок — подходящий вариант! И не придется зависеть от прихотей крупных корпораций
  • Вам интересно разобраться, как устроены и работают игровые движки. Это отличная причина — по правде говоря, самый веский повод заняться разработкой собственного движка.

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

  • Вам кажется, что вы придумаете движок покруче, чем Unity или Unreal (или Godot, или GameMaker). Не выйдет. Разработать подходящий для специфических нужд софт можно (см. предыдущий список), но в одиночку или маленькой командой невозможно создать универсальный движок, который будет конкурировать с известным универсальным ПО. Особенно при первой попытке.
  • Думаете, что иначе вы «ненастоящий программист»? Использование готового движка не делает гейм-разработчика хуже. Для того они и придуманы! Это просто инструмент для создания игр. 99% проектов можно разработать при помощи уже существующего софта — в этом нет ничего постыдного. Ведь главное — это сама игра!
  • Если вы хотите таким образом сэкономить время или деньги — забудьте! Создавать движок с нуля долго, а время = деньги. Использовать готовый софт выгоднее, чем пытаться разработать собственный. В долгосрочной перспективе это может стать выигрышной стратегией, но только если движок будет основой для нескольких прибыльных проектов, и при этом значительно удобнее в работе, чем коммерческие. Такое ПО разработать сложно, особенно если это первый опыт (и почти невозможно, если речь о 3D).

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

Я начинал с флэш-игр в 90-00х, и ни один движок того времени не поддерживал импорт флэш-анимаций. Единственным выходом было создать собственный софт. Намного приятнее и быстрее закидывать swf-файлы в папку с ресурсами и сразу использовать анимации в игре без промежуточных шагов типа экспорта в списки спрайтов.

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

Что?

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

Разные движки выполняют за вас разное количество работы. Некоторые просто отображают графику на экране (Flash, Pico-8). Другие сами по себе — целая игра с возможностью кастомизации или узко заточены под определенный жанр (RPGMaker, Ren’Py). А между ними — бесчисленное количество вариантов.

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

Базовые функции движка.

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

Инициализация системы.

Приводит программу в боевую готовность после запуска — открывает окно, загружает данные. С этим (и не только!) справится стандартная библиотека SDL, проще ее и использовать.

Контроль частоты кадров

Ограничивает частоту сменяемости кадров для плавного изображения и оптимизации работы.

Ввод

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

Рендеринг

Большинство (ну как минимум 75%) игр так или иначе используют графику, и за нее отвечает как раз движок. В 2D-игре минимальному рендеру достаточно отображать на экране текстурированные четырехугольники. Шейдеры, буферы вершин, однобуферная прорисовка, меши, материалы и так далее — это прекрасные опции, которые можно добавить позднее, если понадобится. Если хочется заморочиться с OpenGL или Vulkan и кастомизировать рендерер — на здоровье! Но помните, нет ничего постыдного в том, чтобы использовать для рендеринга готовые библиотеки типа Ogre3D. Выбор зависит от целей и потребностей разработчика, а также от того, какие задачи интереснее решать самостоятельно.

Математические и прочие утилиты

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

Дополнительные функции

Еще несколько систем, которые лучше добавить в движок ближе к делу, когда они непосредственно понадобятся для игры:

Управление игровыми объектами и сценами

Можно кодить и вручную, но практичнее предусмотреть систему для обработки отдельных игровых объектов и коллекций. Это один из ключевых механизмов в движке, ведь он управляет логикой игры. Из каких компонентов состоят объекты, на какие типы событий реагируют, как происходит взаимодействие, что со структурой памяти, используется ECS? (Кстати, «чистый» неадаптированный ECS лучше применять только для специфических кейсов.) Эти и не только вопросы должна покрывать система управления объектами и сценами. Для таких задач доступны готовые библиотеки (особенно для чистого ECS), но, поскольку эта структура сильнее остальных влияет на игровой код, я склоняюсь к принципу «сделай сам». Использование существующего решения вынудит постоянно думать о том, как вписать логику игры в рамки. А надо наоборот — адаптировать движок под выражение задуманной игровой логики.

Аудио

Звуковые эффекты и музыка здесь разделены, хотя и прячутся под одним названием. Основные необходимые функции — это запуск и остановка звуковых циклов и воспроизведение звуковых эффектов от начала до конца. Этим аудио не ограничивается, но даже с двумя базовыми опциями можно далеко продвинуться. Минус в том, что стандартные звуковые фреймворки (FMod and Wwise) — коммерческие и с кучей лицензионных ограничений. Однако большинство ресурсов с открытым кодом раздражают неудобством (передаю привет OpenAL). Сам я использую FAudio — на мой вкус, простая и комфортная в использовании база для построения сложных звуковых механик.

Загрузка и управление файлами

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

Нетворкинг

Окей, нетворкинг (онлайн-мультиплеер) — это ОЧЕНЬ опционально. Если не планируется режим p2p, то и не заморачивайтесь. Однако эту систему чрезвычайно сложно встроить в движок, который разработан не с расчетом на многопользовательские игры. Поэтому, если вы планируете или допускаете добавление мультиплеера, подготовьте почву заранее, потому что иначе придется переделывать все системы.

Это базовый набор систем, которые входят в игровой движок. Другие варианты типа обнаружения столкновений, физики, сериализации, анимации и UI уже опциональны. Они распространены, поэтому входят в большинство движков, но для создания игр не обязательны. Например, предотвращение столкновений можно обеспечить при помощи математических утилит и прописать алгоритм в коде игры. Простейшую гравитацию и ускорение можно настроить без физических движков типа Box2D or Bullet. А полная сериализация вообще лишняя, если нужно попросту сохранить чекпойнт.

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

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

Как?

Итак, вы взвесили за и против, поняли, чего хотите, и решили все-таки взяться за создание движка. И как же это сделать?

Сразу к делу: делайте игру параллельно с разработкой движка. Это правило нельзя нарушать. Изучите основы как можно скорее и сразу же начинайте создавать на этой базе игру. Движок — ничто без игры.

Это необходимо, потому что функционал движка должен соответствовать потребностям сделанных на нем игр. Нельзя понять, как построить хорошую анимационную систему, если проект не требует сложной анимации. Слабые места движка проявляются в процессе написания игры. Может быть, нужна древовидная система, благодаря которой дальние объекты не будут рендериться, пока не приблизятся на определенное расстояние? Я не знаю, и вы не узнаете, пока не соберете игровой уровень, который будет страшно зависать. И даже тогда проблема может оказаться не в обновлении объектов — чтобы понять, надо проверить.

Не программируйте того, что не нужно. Если единственный UI в игре — кнопка Play в главном меню, поздравляю! Не придется создавать мудреный пользовательский интерфейс. В The End Is Nigh нет ни физического движка, ни детектора столкновений. Там даже нет камеры, потому что она там не нужна. Я использовал электронную таблицу .csv, чтобы собрать карту мира, вместо всяких сложных редакторов. Делается легко и нормально работает.

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

Что касается языков программирования — выбирайте, каким лучше владеете. Разработка движка — сама по себе непроста, а если делать это параллельно с изучением С++, обе эти задачи станут в два раза сложнее. C# идеально подойдет для создания движка. Медленнее, чем на С++, но не критично. Более медленный язык типа Python может вызвать затруднения, если в игре много движущихся объектов… но для некоторых игр пойдет. Используйте, что удобно.

И еще — с первой попытки идеально не получится. Моей первой игрой на самописном движке стала Closure, и в ней полный бардак (забавно, что ее номинировали на награду «Техническое совершенство» на фестивале независимых игр в 2010 году). Системы рендеринга и обновления вдвоем обрабатывали всю игру. Добавлять новые объекты было крайне трудоемко, приходилось дописывать кучу кода и работать с кривыми редакторами анимации, так что в итоге осталось с дюжину интерактивных предметов. У некоторых из них было несколько вариаций, кардинально менявших поведение объекта — это было проще, чем добавлять новые. Так что прожекторы, зеркала и турели по сути один и тот же объект!

Но с ошибками приходит и опыт. Движок Closure написан кое-как, но оказался достаточно хорош, чтобы запустить игру на PS3. Идея переписать некоторые части движка была заманчивой, но это лишь отложило бы выход игры. Вместо этого я писал заметки о том, что получилось плохо, чтобы учесть ошибки в следующий раз. Особенно о том, что мешало непосредственно созданию игры. То же и с The End is Nigh. В ее движке (который, кстати, НАМНОГО лучше, чем в Closure) все равно была куча ошибок, которые я решал, стиснув зубы. Как только игра вышла, я сразу начал улучшать движок для следующего проекта, исправлять раздражающие баги и добавлять новые функции.

И так раз за разом: учишься, создаешь игру, запускаешь, и все по новой. До тех пор, пока движок не станет действительно хорош.

Не стал вдаваться в технические подробности, как внедрить в движок каждую отдельную систему. Это зависит от конкретных вариантов использования, есть сотни способов — и каждый из них правильный. Понять, что вам подходит — ВОТ в чем суть разработки движка, с таким настроем стоит браться за создание собственных проектов.

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

С чего начать делать игру? Пошаговая инструкция

Это статья для новичков в геймдеве. Для тех, кто хочет сделать игру, но не знает с чего начать.

Я постараюсь, по шагам, объяснить весь процесс от желания до релиза. Погнали!

Кто я такой?

Александр Дударев E-mail: [email protected]

Я гейм-дизайнер с 10-летним стажем. Работал в многих компаниях, например в Playgendary. Делал разное: и казуалки для мобилок, и танковый шутер для PC.

Теперь я инди-разработчик. Живу за счёт продажи своих игр. Выпустили 4 игры для PC и Консолей. Сейчас разрабатываю игру They Are Here: Alien Abduction Horror — хоррор от 1-го лица, про похищение пришельцами.

They Are Here: Alien Abduction Horror

Шаг 1. Запасись энтузиазмом

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

Как пополнять запас энтузиазма? Смотри документалки, читай истории успеха разработчиков. Это мотивирует!

Например, вот классная документалка о инди-играх Indie Game: The Movie

Смотри по сторонам: на другие игры, фильмы, кино, на новые технологии. Желание изучить что-то новое или сделать что-то похожее — это то, что нужно.

Шаг 2. Собери команду или сделай всё сам!

Одному — проще. Проще придумать идею и принимать решения. Не надо спорить и описывать задачи. Сделать игру одному — возможно. Я например сделал 4 игры один.

С командой — лучше. Лучше получается качество. Твои решения критикуются, и результат улучшается. Можно распределить обязанности и сделать игру быстрее. Последнюю игру я делаю в команде со своей женой. Она отвечает за историю, критикует мои решения, помогает с артом, ищет стримеров.

Короче — есть команда, круто! Нет команды — делай всё сам, это не трудно.

Типичный инди-разработчик

Шаг 3. Сформулируй цель разработки

Очень важно понять — для чего тебе всё это?

Ну например:

1. Трудоустройство в геймдев компанию.

Продукт — портфолио. Приоритет — качество исполнения.

Вопросы: На какую должность хотим устроиться? В какую компанию(и)? Какими играми занимается компания(и)? Чему нужно научиться?

2. Научиться делать игры, освоить навык.

Продукт — опытный образец. Приоритет- новые знания.

Вопросы: Какой навык освоить? Как сделать какую-то конкретную штуку?

3. Рассказать о чём то важном.

Продукт — манифест. Приоритет — донести идею до масс.

Вопросы: Поймут ли мою идею? Как сделать продукт более массовым?

4. Сделать игру о которой мечтал.

Продукт — мечта. Приоритет — воплотить своё видение.

Вопросы: Что я хочу видеть? Чем можно пренебречь? Как закончить проект?

5. Построить свой бизнес.

Продукт — актив. Приоритет — получить доход.

Вопросы: Какие игры лучше продаются? Сколько времени займет разработка? Как сократить это время?

Цель может быть не одна. Цели могут меняться от игры к игре.

Короче — ты должен ответить на вопрос — зачем я делаю эту игру?

А рально, зачем?

Шаг 4. Вспомни, что ты умеешь или любишь

Например, я и моя жена — фанаты фильмов ужасов про пришельцев. Типа «Знаки», «Мрачные небеса», «Секретные материалы». Поэтому нам проще работать над идеями и сценарием для They Are Here

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

Тян одобряет отталкиваться от умений и увлечений

Короче — твои умения и увлечения — это твои преимущества. Учитывай их при выборе платформы, движка, жанра игры. А пока, просто подумай над этим.

Шаг 5. Выбери платформу

Если просто, то есть 2 пути: Мобилки или ПК + Консоли.

  • Хардкорные геймеры.
  • Играют по несколько часов. Дома. Чтобы погрузиться в игру.
  • Ценится реалистичная или стильная графика.
  • Упор на интересную историю или глубокий геймплей.

  • Меньше конкуренция, чем на мобилках. Особенно на консолях.
  • Легче получить игроков и отзывы.
  • Можно хорошо заработать портировав игру на консоли, с помощью издателя.
  • Не надо возится с аналитикой и монетизацией.
  • С детства понятная платформа (ПК / Консоль) и аудитория (Геймеры).
  • Аудитория любит авторские, творческие, интересные игры.
  • Будет плюсом, если сам играешь на компе или приставке.

  • Плохо заходят простенькие игры (головоломки, аркады). Геймеры хотят получить опыт, вжиться в роль. Залипнуть надолго. Игра не должна выглядеть как что-то на пару минут.
  • Игры дольше в производстве. Но можно хитрить — делать маленькие игры, которые выглядят как большие, а также использовать готовые ассеты.
  • Нужно поработать над интересной идеей. Найти отличительные черты (USP), которые выделят проект.
  • Нужно продумать интересную историю или геймплей.
  • Более сложный геймдизайн.
  • Большая требовательность к качеству графики.

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

Если решишься, узнай подробнее про:

  • Геймдизайн компьютерных игр.
  • Нарратив, сторителлинг.
  • Как питчить игры.
  • Фичи игры / USP.
  • Что такое вертикальный срез.
  • Steam. Регистрация аккаунта разработчика. Оформление страницы. Тэги. Правила и рекомендации.
  • Маркетинг и продвижение инди-игр на Steam (рекомендую http://howtomarketagame.com/) Как сделать крутой постер, трейлер, скриншоты, ГИФки.
  • Портирование игр на консоли.
  • Издатели игр на консолях.
  • Конкурсы и фестивали инди-игр.
  • Работа с инфлюенсерами (ютуберами, стримерами).
  • Реалистичная графика.
  • Стилизованная графика.
  • Сервисы аналитики тэгов и жанров (SteamDB, Steamspy, SteamCharts, Game Data Crunch).
  • Сервисы рассылки ключей (Keymailer, Woovit)

Шаг 6. Узнай про геймдизайн и производство игр

Интересуйся тем Как делают игры (классный подкаст в твои наушники)

На чём создавать игры: что есть что в мире геймдева

Так много разных инструментов для создания игр, что голова идёт кругом. Разбираемся, что это вообще такое и что выбрать для себя.

Евгений Кучерявый

Евгений Кучерявый

Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Сохранитесь и подпишитесь: наш Telegram-канал «Чекпоинт» — уютное место, где мы рассказываем об играх и о том, как они создаются.

Unity, Unreal Engine, Godot, Game Maker Studio, Source, RPG Maker, CryEngine, Creation Engine, C++, C#, JavaScript, Swift, Java, Objective-C, Lua, Python, PyGame, PHP, Scratch, DirectX, PhysX, OpenGL, Havok, Cocos2D…

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

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

Что есть что

Движки для разработки игр

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

Вот скриншот интерфейса движка Unity:

В левом верхнем углу — игровая сцена, на которую можно добавлять объекты, двигать их, убирать и так далее. Ниже расположено игровое окно — в нём можно увидеть, как будет выглядеть готовая игра. Можно даже нажать на кнопку Play и поиграть.

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

Также у движка есть поддержка скриптов и API . Скрипты помогают вам писать команды, которые будут выполняться игрой всё время или после каких-то действий игрока. API же помогает упростить написание скриптов. То есть вы не проводите сложных математических расчётов, чтобы изменить положение или вращение объекта, — вы просто пишете команду вроде «Юнити, поверни объект А на 5 градусов по оси X».

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

Плюсы

Готовый движок

  • Всё уже сделано за вас — вам нужно только использовать готовые инструменты, чтобы реализовать свои идеи.
  • Есть сообщество — другие разработчики, которые пользуются этим же движком, могут вам помочь. Кто-то пишет статьи или снимает ролики для YouTube, ну и просто на StackOverflow можно задать вопрос.
  • Большинство движков позволяют в пару кликов портировать игру на другую платформу. Иногда нужно повозиться — например, адаптировать управление под тачскрин или геймпад.
  • Есть бесплатные варианты — скачал, и сразу в бой.
  • У многих движков есть магазины с готовыми скриптами, моделями, эффектами и прочими полезностями.

Самописный движок

  • Максимальная свобода.
  • Заточенность под ваши нужды: вы сами решаете, что будет в вашем движке.
  • Хорошая оптимизация: отсутствие лишних модулей делает игру легче.
  • Интуитивность: вы будете ориентироваться в движке с закрытыми глазами.

Минусы

Готовый движок

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

Самописный движок

  • Долго.
  • Дорого.
  • Требует больших знаний.
  • Ошибки в проектировании могут похоронить не только игру, но и сам движок.
  • Дополнительные затраты на портирование.
Список современных движков:
  • Unity;
  • Unreal Engine 4;
  • CryEngine 3;
  • Source, Source 2;
  • Creation Engine;
  • Godot;
  • Cocos2D;
  • Game Maker Studio 2;
  • RPG Maker и другие.

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

Языки программирования

Дальше идут языки программирования — с их помощью вы будете писать для компьютера условия и команды: если А, сделай Б, а если В, сделай Д. Несмотря на то что движки берут на себя огромную часть работы, программировать придётся много.

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

Если вы уже выбрали какой-то конкретный движок, то и язык нужно выбирать подходящий. Например, в Unity поддерживаются C# и JavaScript
(его модификация, которая называется UnityScript), а в UE4 — С++.

Список языков:
  • C#;
  • C++;
  • Java;
  • Python;
  • Swift;
  • Objective-C;
  • JavaScript;
  • PHP;
  • Lua и другие.

Фреймворки

Вы можете использовать язык, чтобы написать игру без движка. Например, на JavaScript создаются браузерные игры, на C++ или C# — игры для компьютеров, на Java — для устройств на Android, и так далее.

Для этих языков есть либо библиотеки для работы с графикой, либо целые фреймворки для создания игр. Фреймворк — это каркас, почти готовое приложение. Разработчик просто дописывает для этого каркаса какие-то дополнительные функции, подгоняя его тем самым под свои нужды.

Разработчики игры Celeste решили отказаться от движков в пользу фреймворка XNA от Microsoft для языка C#. В итоге у них получился платформер с очень крутым управлением.

Физические библиотеки берут на себя работу (сюрприз!) с физикой: ускорение свободного падения, закон сохранения энергии, импульсы, векторы — самые безобидные примеры.

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

Список графических библиотек:
  • OpenGL;
  • WebGL;
  • DirectX.
Список физических библиотек:

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

Что из этого выбрать

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

Критерии выбора движка следующие:

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

Если хотите, почитайте отзывы, но они могут вас запутать. Так, многие не любят Unity, но разработчиков на нём становится всё больше.

Source

Например, на Source сделаны практически все игры от Valve вроде Half-Life и Portal.

Шутеры на Source получаются очень приятными, но и для других жанров он тоже подходит. Например, на нём была сделана Dark Messiah of Might and Magic.

Минус этого движка в том, что на самом деле вы будете создавать не игры, а моды на уже существующие игры от Valve. Также вы не сможете портировать игры на мобильные устройства или приставки, а обзор возможен только от первого лица (о вариантах обзора можно почитать здесь: «Камера в играх: как рассказать историю и показать мир»).

Unity

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

  • Mario Kart Tour;
  • Life is Strange: Before the Storm;
  • Superliminal;
  • Mobile Legends: Bang Bang;
  • Outlast и другие.

Большое преимущество движка — поддержка C#. Это мощный, но простой язык, поэтому вы достаточно быстро сможете заскриптовать первые проекты. Сам движок тоже несложный, поэтому его используют многие инди-разработчики.

Существует мнение, что в Unity невозможно сделать хорошую графику. За последние годы разработчики движка доказали, что это не так:

Пока список игр, созданных в Godot, небольшой и крупных или нашумевших в нём очень мало.

Этот движок лучше пробовать тем, у кого есть опыт в программировании, — сообщество Godot ещё невелико, поэтому количество обучающих материалов удручает.

Unreal Engine 4

Первая игра на Unreal Engine появилась ещё в 1998 году. С тех пор их выходило ещё очень много — от первых игр из серии Harry Potter до Star Wars: Jedi Fallen Order.

Вот лишь некоторые примеры:

  • Fornite;
  • Mortal Kombat Mobile;
  • Gears of War 4;
  • Batman: Arkham City, Arkham Asylum и Arkham VR;
  • DmC: Devil May Cry.

Также на UE4 идёт разработка S.T.A.L.K.E.R. 2. С полным списком можно ознакомиться здесь.

Минус этого движка в том, что он поддерживает в качестве языка скриптов только C++, который новичкам может показаться слишком сложным. Компенсируется это тем, что спрос на специалистов по Unreal Engine 4 больше, чем на разработчиков на других движках.

Стоит отметить, что 2D-игры на UE4 делать достаточно сложно, так как он предназначен для 3D.

Заключение

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

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

И если вы выбрали Unity или Unreal Engine 4, то у нас по ним есть отличные курсы с кучей проектов, челленджей и общением с другими студентами.

Application Programming Interface — интерфейс программирования

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

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