Как и зачем создавать собственный игровой движок
Время на прочтение
9 мин
Количество просмотров 26K
Игра с нуля — интересный челлендж для разработчика. Но если хотите пройти его на сложности 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) все равно была куча ошибок, которые я решал, стиснув зубы. Как только игра вышла, я сразу начал улучшать движок для следующего проекта, исправлять раздражающие баги и добавлять новые функции.
И так раз за разом: учишься, создаешь игру, запускаешь, и все по новой. До тех пор, пока движок не станет действительно хорош.
Не стал вдаваться в технические подробности, как внедрить в движок каждую отдельную систему. Это зависит от конкретных вариантов использования, есть сотни способов — и каждый из них правильный. Понять, что вам подходит — ВОТ в чем суть разработки движка, с таким настроем стоит браться за создание собственных проектов.
Вот и все, что я хотел рассказать в этой статье. Скорее всего, она вас либо мотивировала на разработку собственного движка, либо окончательно отпугнула от этой идеи. Оба варианта хороши, если вы поняли, чего хотите сами.
С нуля создадим собственный игровой движок с помощью библиотеки SFML и C++, чтобы разобраться, как происходит создание ядра.
В этом проекте мы создадим собственный игровой движок на C++. Движок будет очень простым, но готовым к расширению возможностей. Конечная игра с использованием этого кода тоже крайне проста: наш персонаж сможет перемещаться влево и право, а из графики – только бэкграунд и фигурка персонажа.
Подготовка Visual Studio
Создадим новый проект в Visual Studio. Обратите внимание, что проект требует библиотеку SFML, поэтому если вы не настраивали окружение для нее, прочтите сначала небольшое руководство по настройке.
Настройка VS:
- Откройте Visual Studio и выберите File | New Project. В левом меню отметьте язык C++ и шаблон HelloSFML. Назовите проект Simple Game Engine.
- Выберите правой кнопкой мыши файл HelloSFML.cpp в окне Solution Explorer (под Source Files), далее – Rename и назовите файл Main. Это подходящее имя, так как файл будет содержать основную функцию.
- Откройте Main.cpp, удалите все содержимое файла.
- Переместите файл библиотеки SFML.dll из каталога Диск:SFMLbin в Диск:Visual Studio StuffProjectsSimple Game EngineSimple Game Engine. Если названия в путях отличаются, вероятно, вы сделали отличную от руководства настройку.
Теперь можно приступить к коду. Исходный код и дополнительные ресурсы будут доступны на этой странице.
Проектируем собственный игровой движок
Самое важное – запуск движка, который будет происходить в файле Main.cpp, но им мы займемся немного позже.
Класс персонажа
Bob – простой класс для представления фигурки персонажа, управляемой игроком. Код класса будет легко расширяться, а что самое главное – его несложно переписать под любой другой игровой объект, который вы захотите добавить. Для этого потребуется заменить текстуру и описать поведение нового объекта в методе update().
Bob.h
Займемся заголовками класса. Выберите правой кнопкой Header Files в Solution Explorer и нажмите Add | New Item. В окне Add New Item выберите Header File (.h), затем в поле Name введите Bob. Нажмите Add и добавьте код заголовка класса:
#pragma once #include <SFML/Graphics.hpp> using namespace sf; class Bob { // Все private переменные могут быть доступны только внутри объекта private: // Позиция Боба Vector2f m_Position; // Объявляем объект Sprite Sprite m_Sprite; // Добавдяем текстуру Texture m_Texture; // Логические переменные для отслеживания направления движения bool m_LeftPressed; bool m_RightPressed; // Скорость Боба в пикселях в секунду float m_Speed; // Открытые методы public: // Настраиваем Боба в конструкторе Bob(); // Для отправки спрайта в главную функцию Sprite getSprite(); // Для движения Боба void moveLeft(); void moveRight(); // Прекращение движения void stopLeft(); void stopRight(); // Эта функция будет вызываться на каждый кадр void update(float elapsedTime); };
Здесь мы объявили объекты типа Texture и Sprite. Дальше мы свяжем эти объекты и любое действие на экране с объектом Sprite будет сопровождаться изображением Боба:
Кликните правой кнопкой, чтобы сохранить
Bob.cpp
Теперь приступим к описанию методов.
Выберите правой кнопкой мыши Source Files в Solution Explorer и откройте Add | New Item. В окне Add New Item кликните по C++ File (.cpp), а в поле Name укажите Bob.cpp. Теперь добавьте в файл код:
#include "stdafx.h" #include "bob.h" Bob::Bob() { // Вписываем в переменную скорость Боба m_Speed = 400; // Связываем текстуру и спрайт m_Texture.loadFromFile("bob.png"); m_Sprite.setTexture(m_Texture); // Устанавливаем начальную позицию Боба в пикселях m_Position.x = 500; m_Position.y = 800; } // Делаем приватный спрайт доступным для функции draw() Sprite Bob::getSprite() { return m_Sprite; } void Bob::moveLeft() { m_LeftPressed = true; } void Bob::moveRight() { m_RightPressed = true; } void Bob::stopLeft() { m_LeftPressed = false; } void Bob::stopRight() { m_RightPressed = false; } // Двигаем Боба на основании пользовательского ввода в этом кадре, // прошедшего времени и скорости void Bob::update(float elapsedTime) { if (m_RightPressed) { m_Position.x += m_Speed * elapsedTime; } if (m_LeftPressed) { m_Position.x -= m_Speed * elapsedTime; } // Теперь сдвигаем спрайт на новую позицию m_Sprite.setPosition(m_Position); }
В конструкторе мы установили значение переменной m_Speed на 400. Это значит, что Боб пересечет экран шириной в 1920 пикселей за 5 секунд. Также мы загрузили файл Bob.png в Texture и связали его с объектом Sprite. В переменных m_Position.x и m_Position.y установлено начальное положение Боба.
Функция update обрабатывает два If. Первое If проверяет, нажата ли правая кнопка (m_RightPressed), а второе следит за левой (m_LeftPressed). В каждом If скорость (m_Speed) умножается на elapsedTime. Переменная elapsedTime рассчитывается в функции Start движка (класс Engine). Им мы и займемся далее.
Пишем класс Engine
Класс Engine будет контролировать все остальное.
Engine.h
Добавим заголовок. Откройте окно Add New Item (так же, как для класса Bob), выберите Header File (.h) и в поле Name введите Engine.h. Добавьте в файл следующий код:
#pragma once #include <SFML/Graphics.hpp> #include "Bob.h"; using namespace sf; class Engine { private: RenderWindow m_Window; // Объявляем спрайт и текстуру для фона Sprite m_BackgroundSprite; Texture m_BackgroundTexture; // Экземпляр Боба Bob m_Bob; void input(); void update(float dtAsSeconds); void draw(); public: // Конструктор движка Engine(); // Функция старт вызовет все приватные функции void start(); };
Класс библиотеки SFML, RenderWIndow, используется для рендера всего, что есть на экране. Переменные Sprite и Texture нужны для создания фона. Также в заголовке мы создали экземпляр класса Bob.
Engine.cpp
В Engine.cpp мы опишем конструктор и функцию start. Создайте файл класса так же, как для Bob.cpp, и добавьте в него код:
#include "stdafx.h" #include "Engine.h" Engine::Engine() { // Получаем разрешение экрана, создаем окно SFML и View Vector2f resolution; resolution.x = VideoMode::getDesktopMode().width; resolution.y = VideoMode::getDesktopMode().height; m_Window.create(VideoMode(resolution.x, resolution.y), "Simple Game Engine", Style::Fullscreen); // Загружаем фон в текстуру // Подготовьте изображение под ваш размер экрана в редакторе m_BackgroundTexture.loadFromFile("background.jpg"); // Связываем спрайт и текстуру m_BackgroundSprite.setTexture(m_BackgroundTexture); } void Engine::start() { // Расчет времени Clock clock; while (m_Window.isOpen()) { // Перезапускаем таймер и записываем отмеренное время в dt Time dt = clock.restart(); float dtAsSeconds = dt.asSeconds(); input(); update(dtAsSeconds); draw(); } }
Функция конструктора получает разрешение экрана и разворачивает игру на весь экран с помощью m_Window.create. В конструкторе же загружается Texture и связывается с объектом Sprite.
Пример фонового изображения
Скачайте пример изображения или используйте любое другое на свое усмотрение. Переименуйте файл в background.jpg и поместите в каталог Simple Game Engine/Simple Game Engine.
Игровой цикл
Следующие три функции будут описаны каждая в своем файле, но при этом они должны быть частью Engine.h. Поэтому в начале каждого файла укажем директиву #include «Engine.h», так что Visual Studio будет знать, что мы делаем.
Обрабатываем пользовательский ввод
Создайте файл Input.cpp и добавьте в него код:
#include "stdafx.h" #include "Engine.h" void Engine::input() { // Обрабатываем нажатие Escape if (Keyboard::isKeyPressed(Keyboard::Escape)) { m_Window.close(); } // Обрабатываем нажатие клавиш движения if (Keyboard::isKeyPressed(Keyboard::A)) { m_Bob.moveLeft(); } else { m_Bob.stopLeft(); } if (Keyboard::isKeyPressed(Keyboard::D)) { m_Bob.moveRight(); } else { m_Bob.stopRight(); } }
Функция input обрабатывает нажатия клавиш через константу Keyboard::isKeyPressed, предоставляемую SFML. При нажатии Escape m_Window будет закрыто. Для клавиш A и D вызывается соответствующая функция движения.
Обновляем игровые объекты
Теперь опишем простую функцию update. Каждый игровой объект будет иметь собственную функцию update.
Создайте файл Update.cpp и добавьте в него код:
#include "stdafx.h" #include "Engine.h" using namespace sf; void Engine::update(float dtAsSeconds) { m_Bob.update(dtAsSeconds); }
Поскольку у нас пока только один объект «Боб», мы вызываем только функцию m_Bob.update.
Отрисовка сцены
Это последняя функция класса Engine. Создайте файл Draw.cpp и добавьте в него код:
#include "stdafx.h" #include "Engine.h" void Engine::draw() { // Стираем предыдущий кадр m_Window.clear(Color::White); // Отрисовываем фон m_Window.draw(m_BackgroundSprite); m_Window.draw(m_Bob.getSprite()); // Отображаем все, что нарисовали m_Window.display(); }
Экран очищается методом clear, затем отрисовывается фон. Первым делом должен быть отрисован фон, чтобы потом поверх него можно было отрисовать Боба.
Запускаем движок в main()
Теперь вернемся к нашему Main.cpp. Время добавить в него немного кода:
#include "stdafx.h" #include "Engine.h" int main() { // Объявляем экземпляр класса Engine Engine engine; // Вызываем функцию start engine.start(); // Останавливаем программу программу, когда движок остановлен return 0; }
Несколько слов в конце
Наш собственный игровой движок получился очень простым: он умеет только двигать главный объект и закрывать программу. Он не умеет обрабатывать столкновения, работать с интерфейсом и еще много чего. Однако он отлично описывает то, как строится ядро игрового проекта с нуля. К тому же, как мы уже выяснили, класс Bob расширяется и адаптируется под другие объекты, так что дайте волю фантазии и попробуйте поэкспериментировать с окружением.
Больше о разработке игр:
- Разработка игр – это просто: 12 этапов изучения геймдева
- 15 материалов по разработке игр
- 7 курсов, чтобы начать делать игры
Что есть помимо Photoshop, FL Studio, 3ds Max, ZBrush и Unity.
Оглавление
Чтобы я хотел упомянуть перед тем как вы приступите читать:
- Данная статья является развитием моей предыдущей статьи, однако версия на Реддите получилась скудной, поэтому и не обязательной к ознакомлению.
- Данная статья не призывает вас пересаживаться целиком и полностью на свободное и бесплатное программное обеспечение. Глупо пропагандировать, что опенсорс — мастхэв, а проприетарщина — зло.
- Будьте готовы, что некоторые из этих программ сырые, недоделанные, без подробной документации и видеотуториалов.
- Многие программы переведены на русский язык. Если для вас это важно, то обязательно посмотрите в настройках можно ли поменять язык интерфейса.
- При использовании чужих ассетов не забудьте поблагодарить авторов, упомянув их имена или ники в своих играх.
Конструкторы игр
Простенькая программа для создания текстовых игр и визуальных новелл. Вам почти не придётся программировать, всё создаётся в виде схемы из блоков и связей между ними. Готовая игра представляет собой страницу HTML.
Однако помимо создания игр Twine можно использовать и как удобный инструмент для наглядной визуализации своего сценария, если вы задумали множество разветвлений, выборов диалогов, концовок и т.д.
Два конструктора, специально заточенных под создание 2D-игр в жанре Квест. От вас не потребуется больших знаний в области программирования, всё создаётся в «два клика».
Конструктор №1 для создания игр в жанре «Визуальная новелла». Прост в использовании и изначально настроен для создания стандартных романов. Однако знание языка программирования Python позволит вам создавать более сложные игровые механики. Именно на Ren’Py созданы такие известные игры как Бесконечное лето и Doki-Doki Literature Club.
Конструктор помощнее для создания 2D-игр в самых различных жанрах. Вместо программирования логика игры строится на основе простых «событий» и «реакций на события». Немного напоминает другой, но проприетарный конструктор ClickTeam Fusion.
Конструктор 3D-игр, всё также без программирования позволяющий создавать свои первые творения. Появился совсем недавно, сейчас доступна альфа-версия этого продукта.
Если вы пока ничего не понимаете в программировании, то познать основы вам поможет Scratch, где код строится максимально дружелюбно при помощи мышки и визуальных блоков. А после Scratch можно перейти и на языки программирования, например, Pascal, Python или C#
Игровые движки
Просто хороший 2D-движок с языком Lua. Больше нечего даже добавить, всё прекрасно описано на официальном сайте.
Более молодой 2D-движок в сравнении с Defold. Китайский аналог Unity. Можно программировать как на JavaScript, так и на TypeScript. В этом году выйдет Cocos Creator 3.0 — отдельная версия для разработки 3D-игр.
Российский игровой движок для создания 2D и 3D-игр. Раньше был конструктором игр, однако разработчик пересмотрел подход и года два назад на свет выкатил полностью переделанный продукт. Летом этого года движок и вовсе стал свободным и бесплатным. Довольно симпатичный движок, но пользователи отмечают низкую производительность движка и разработанных на ней игр.
Самый быстро развивающийся свободный движок для создания 2D и 3D-игр. Среди достоинств выделяют наличие «настоящего» 2D (2D в Unity — это имитация из 3D), маленький вес движка и разрабатываемых на нём игр, низкий порог вхождения и импорт сцен из Blender. Из недостатков выделяют медленный Python-подобный язык GDScript (однако вы можете скачать версию Mono, где есть C#) и слабую систему частиц. Сейчас в разработке находится новая версия движка Godot 4.0 с поддержкой Vulkan.
Мощный игровой движок для создания 3D-игр. Некст-ген, многозадачность, VR, все дела. Раньше назывался Xenko, а ещё раньше назывался Paradox. Из недостатков можно выделить очень слабое коммьюнити и вялое развитие движка.
Остальное
Construct Classic и Game Editor
Устаревшие конструкторы 2D-игр, которые уже давно не развиваются. Как и GDevelop, логика в этих конструкторах также строится легко на основе «событий» и «реакций на события». Вам остаётся лишь выбрать из списков сами события и реакции.
Blitz3D и DarkBasic Pro
Устаревшие игровые движки для создания 2D и 3D-игр. Языки программирования являются расширенными версиями Basic. Если вы не горите желанием изучать сложные игровые движки, то рекомендую начать с Blitz3D. Blitz3D в отличие от DarkBasic Pro является более оптимизированным движком и позволяет формировать рельеф по картам высот.
Я собрал в одном архиве учебники и уроки по Blitz3D на русском языке, пользуйтесь и учитесь. Ещё держите статью с архивом о редакторах уровней, заточенные под Blitz3D, но они могут помочь с разработкой не только под этот движок, особенно если вы вооружитесь мощным конвертером fragMOTION.
Кстати, в этом же архиве лежат две программы, которые легко и просто генерируют 3D-модели различных растений и деревьев.
Armory 3D — это игровой движок, который интегрируется в Blender, а EasyRPG — это свободный аналог RPG Maker 2000/2003. Это две разные программы, но объединяет их одна особенность: вы можете пощупать их, но для полноценного производства игр они пока не пригодны. Можете ещё глянуть R48 вместо EasyRPG Editor.
Lazarus — это свободный аналог Delphi, в качестве языка программирования используется Object Pascal. Lazarus, от слова, вообще не предназначен для создания игр, однако вы можете глянуть GLScene или Castle Game Engine.
DevelNext — это, по сути, тот же Delphi, только красивее, с PHP и большим количеством инструментов и возможностей для создания игр.
Они не являются конструкторами игр и не являются игровыми движками. Это две среды разработки, которые предназначены для разработки самых различных приложений. Однако я всё же решил их упомянуть по двум причинам:
1. В них можно легко делать визуальные новеллы, квесты и прочие point-and-click игры. Эти среды предоставляют чрезвычайную гибкость, а потому вы можете придумать для своих игр уникальные и необычные игровые механики.
2. Эти среды умеют то, чего не умеют игровые движки. Мне, например, однажды приспичило для своей хоррор игры сделать возможность вывода документа на печать, если игрок найдёт секрет в игре и у него есть принтер. Godot Engine не умеет работать с принтерами, зато это можно реализовать в Lazarus, а в Godot написать функцию запуска стороннего приложения.
Аудио редакторы
Удобный аудиоредактор, в котором вы можете нарезать звуки, как-то их совмещать, компоновать, накладывать фильтры, записывать свой (или не свой) голос. Функционал расширяется плагинами.
Однако если Audacity вам не хватает, можете воспользоваться этим редактором для профессиональной обработки звука и записи.
Редактор для создания и обработки звуков в более наглядной и увлекательной форме.
Редактор для создания ретро-звуков для своих игр, будь это звуки прыжка, удара или ещё какого эффекта. Если вы не знаете, какой конкретно звук вам нужен, то можете нажать кнопку Randomize.
Музыка
Секвенсор и рабочая станция для создания музыки в самых различных жанрах. Наигрывать мелодии можно со своей midi-клавиатуры. Некоторые синтезаторы частично скопированы с FL Studio.
Секвенсор и трекер в одном флаконе от русского разработчика и музыканта. Предназначен для создания электронной музыки.
Предлагаю послушать пример, сочинённый в SunVox.
Удобные инструменты для написания ретро-музыки.
Графические редакторы
Редактор, который станет для вас аналогом Фотошопа. По функциональности почти не будет уступать, если вы установите плагин Layer Effects. Может импортировать формат Фотошопа .psd. Запускается быстро, работает шустро.
Не верьте тем кто говорит, что после Фотошопа невозможно пересесть на Гимп. Освоиться в последних версиях Гимп очень легко, у вас уйдёт на это буквально день-два своей жизни.
И раньше я действительно порекомендовал бы вам GIMP, но Krita умеет всё, что умеет GIMP, только больше и удобнее. Тем более она тоже читает .psd, заточена ещё для художников, а разработчикам игр дали удобные инструменты для создания бесшовных текстур.
Японский графический редактор, ориентированный только на художников и завлекающий своей простотой. Это означает, что в MediBang вы не сможете, например, подретушировать фотографию, как в GIMP или Krita, для этого попросту не хватает инструментов.
Ещё мне понравилось прилипание кисти (на англ. «snap», эта фишка изображена на гифке), чтобы быстро рисовать ровные прямые линии или идеальные круги, не пытаясь выверять движения мышки или стилуса на микроскопическом уровне.
Здесь уже выходила статья с перечислением редакторов для создания пиксель-арта. Однако там не была упомянута Pixelorama, созданная в Godot Engine Хорошая минималистичная программа, имеются кисти разных форм, можно создавать покадровую анимацию, можно рисовать в онлайне.
В отличие от предыдущих растровых редакторов, Inkscape является векторным редактором, т.е. изображения строятся не пикселями, а математическими формулами. Это обеспечивает высокое качество изображения при любом масштабировании, однако в векторном редакторе вам будет крайне проблематично создавать изображения с огромным количеством мелких деталей и различных неравномерных цветов.
Забавный редактор, позволяющий рисовать в стиле ASCII-арт.
Моделирование
Самый известный и мощный свободный 3D-редактор. Если вы когда-то в прошлом воротили нос от Blender, то сейчас попробуйте дать ему второй шанс, потому что с версии 2.8 в редакторе переделали интерфейс, он стал дружелюбным к новым пользователям. Также новый рендер Eevee позволит добиться хорошей картинки куда быстрее рендера Cycles.
Функционал пополняется аддонами. Я, например, недавно узнал об интересном аддоне SSGI, добавляющий к Eevee фейковое глобальное освещение.
Интересный факт: мультфильм Следующее поколение (Next Gen) полностью создан в Blender.
Редактор, который стоит скачать только ради одной фишки — удобного создания новых мешей (можно один, а можно несколько симметричных) на поверхности других уже созданных мешей. Таким макаром очень удобно создавать всякие фрактальные штуки. Всё остальное в редакторе либо уже есть в Blender, либо сильно кастрировано и не доделано.
Редактор для быстрого и лёгкого создания 3D-моделей. Но и качество самих моделей будет заметно хуже, особенно если моделируете живых существ. Идеальная программа для быстрого создания наброска/болванки или low-poly графики.
Тоже 3D-редактор, только вместо полигонов вы строите сцену из вокселей, т.е. кубиков. Готовую сцену можно потом экспортнуть в стандартные форматы 3D-моделей. Можно использовать как инструмент прототипирования: сначала прикидываете что-нибудь в MagicaVoxel, а потом основную работу проделываете в Blender. В старых версиях есть возможность анимировать, в новых эту функцию вырезали.
Для авторетопологии. Если вы пока не могёте в ретоп или лень, а количество полигонов в модели нужно уменьшить, то этот инструмент для вас.
Скульптинг
В Blender тоже есть скульптинг, но перед этим познакомьтесь с метасферами (metaball), они значительно облегчат ваш труд.
Sculptris
ZBrush на минималках. Содержит в себе минимальный набор инструментов, но этого будет достаточно, чтобы лепить модели почти любой сложности, причём как на ПК, так и на планшете. К сожалению, в июне этого года прекращена поддержка Sculptris в пользу ZBrushCoreMini, который тоже бесплатен, но уже не для коммерческого использования.
Уже не такой минималистичный, как Sculptris, но всё же мощное средство скульптинга.
Текстурирование
Простая программа для создания PBR-текстур у спрайтов: карты рельефа, отражения и т.д. В нём же можно проверить как будет работать освещение.
Ещё один инструмент для создания PBR-текстур, только уже для 3D-моделей.
Главная фишка этого инструмента заключается в том, что можно регулировать высоту текстур: например, если в вашем материале есть различные углубления, зазоры, трещины и т.д, то там можно расположить одну текстуру, а всё что на поверхности будет иметь другую текстуру. Обладателям Unreal Engine 4 также открыт доступ к Megascans. Осторожно, Mixer требователен к ресурсам компьютера.
Свободный аналог Substance Painter от разработчика движка Armory3D. В этом редакторе текстуры рисуются прямо на модели или его развёртке. Различные фильтры и прочие функции помогут частично автоматизировать процесс. ArmorPaint может разукрашивать 3D-модель по частям, а не целиком, как в Quixel Mixer.
Генерация людей
Mixamo Fuse
Лёгкое создание 3D-моделей людей без ручного моделирования. Можно создавать самых разнообразных людей: мужчин, женщин, подростков, стариков, мультяшек, зомби, эльфов и т.д. Вашего готового человечка можно потом экспортировать в .obj. Скачать программу можно отсюда, без Adobe и Steam.
В отличие от Mixamo Fuse, MakeHuman предоставляет куда больше настроек внешности виртуального человека. Плюс программа любезно сделает скелет для анимации всего тела и лица.
Аддон для Блендера, всё также позволяющий генерировать людей.
Редактор для создания анимешных персонажей. Программа, кстати, сделана в Unity. Экспортировать модели можно только в формат .vrm, но это дело поправимое, если в Блендере вооружиться импортёром glTF.
Анимация
Не только у 3D-моделей можно добавлять кости для анимации, но и у картинок (причём с несколькими слоями). Экспортируйте итоговый результат в форматы jpg, png и gif.
Программа от российских разработчиков для создания реалистичных анимаций, которая учитывает центры тяжести, параболические траектории и т.д. Cascadeur пока бесплатен даже для коммерческого использования, но всё может поменяться после полного релиза, так что пользоваться с осторожностью, сильно не привыкать.
Частицы
Гибкий редактор эффектов и частиц на основе нодов.
Ещё один редактор, но позволяющий создавать 3D-эффекты и частицы.
Редакторы карт
Про некоторые редакторы карт я уже говорил, когда затрагивал Blitz3D.
Поддерживает создание ортогональных, изометрических и гексагонных карт.
Мощный редактор, заточенный под создание карт с видом сбоку.
Sony LevelEditor
Обычно в игровых движках уже имеется собственный редактор уровней и террейнов, но вот пять лет назад Sony опубликовала в свободный доступ свой отдельный редактор. Скачать бинарник можно отсюда.
Перехожу к сайтам и ассетам.
Обычно его используют школьники и студенты для конспектов, а мне пригодился, чтобы быстро создать несколько записок с рукописным текстом для игры. Нужно войти или зарегистрироваться, чтобы генерировать текст.
Как только зайдёте на сайт, наверху есть вкладка Animations, нажимайте туда и вас перебросит на огромную коллекцию готовых гуманоидных анимаций. Чтобы скачать анимацию, нужно зарегистрироваться.
Нужно зарегистрироваться, после чего можно выбрать одну игру из уже готовых и покопаться в ней. В качестве языка программирования используется microScript (вдохновлённый Lua). В этом же конструкторе можно нарисовать спрайты к игре в стиле пиксель-арт.
3D-модели, текстуры, HDRI. Текстур и HDRI уже огромная куча, а вот 3D-моделей кот наплакал.
Генераторы нормалей
Спрайты для какой-нибудь RPG
Только 3D
2D, 3D, звуки
Только 2D
Звуки
Музыка
Как всегда новички увидев очередной конструктор игр, говорят что он им не нравится, и они бы сделали лучше (на самом деле им не нравится расположение какой то кнопки).
Сейчас я не буду говорить что написание конструктора для новичка сложно, а просто расскажу как это можно сделать.
Писать компилятор можете на любом языке, или даже на конструкторе игр.Весь смысл в том, что мы создадим две программы.На первой пользователь будет делать свою игру и сохранять параметры в .ini файл, а на второй он будет ее запускать.
Ок.Принцип мы поняли (я надеюсь), осталось только подумать конструктор каких игр мы хотим сделать.Решив не изобретать велосипед я выбрал Конструктор TDS игр (вы можете выбрать любой другой тип конструктора).
- Откройте Game Maker 7 Pro.
- Создайте новую комнату.
- Создайте обьект player и откройте для него какой то спрайт. (я использовал спрайт Fyelo)
- Добавьте обьект wall и нарисуйте для него спрайт стены
- Создайте обьект konstruktor и добавьте в событие step этот скрипт
if mouse_check_button_pressed(mb_left)
{
if !collision_circle(mouse_x,mouse_y,13,all,0,1)
{
instance_create(mouse_x,mouse_y,player)
}
}
if mouse_check_button_pressed(mb_right)
{
if !collision_circle(mouse_x,mouse_y,13,all,0,1)
{
instance_create(mouse_x,mouse_y,wall)
}
}
- Поставьте в вашу комнату обьект konstruktor.
Отлично.У нас готов наш «редактор карт».
Реперь напишем компилирующую часть.
- Создайте пустой текстовой файл, а потом переименуйте его в DA0DA.jpg
- Создайте новый Game Maker файл с именем «game.gmk» и скомпилируйте его, как game.exe.
- Переименуйте Game.exe в 7С4АCD.jpg.
- Создайте обьект kompilator и в событии нажатия кнопки «K» напишите этот код.
file_copy(‘DA0DA.jpg’,’game_values.ini’)
file_copy(‘7С4АCD.jpg‘,’game.exe’)
ini_open(‘game_values.ini’);
ini_write_real(‘player’,’x’,player.x);
ini_write_real(‘player’,’y’,player.y);
ini_close();
- Теперь наш компилятор компилирует .ini файл. (там пока что нет стен, но итак сойдет)
- Войдите в «game.gmk» и создайте там комнату
- Создайте обьект player
- Создайте событие step и напишите в нем этот скрипт
direction = point_direction(x,y,mouse_x,mouse_y);
image_angle = direction;
if keyboard_check(vk_up)
|| keyboard_check(ord(«W»))
{
repeat(3){y-=place_free(x,y-1)}
}
if keyboard_check(vk_down)
|| keyboard_check(ord(«S»))
{
repeat(3){y+=place_free(x,y+1)}
}
if keyboard_check(vk_right)
|| keyboard_check(ord(«D»))
{
repeat(3){x+=place_free(x+1,y)}
}
if keyboard_check(vk_left)
|| keyboard_check(ord(«A»))
{
repeat(3){x-=place_free(x-1,y)}
}
if mouse_check_button_pressed(mb_left)
{
b = instance_create(x+lengthdir_x(13,direction),y+lengthdir_y(13,direction),bullet)
b.direction = direction
}
- создайте обект bullet и в событии Create напишите этот код
speed = 20
- Создайте обьект Control
- Создайте событие Game Start и напишите туда этот код
var xx,yy
ini_open(‘game_values.ini’);
xx=ini_read_real(‘player’,’x’,0);
yy=ini_read_real(‘player’,’y’,0);
ini_close();
instance_create(xx,yy,player)
Вот и ВСЕ
Теперь вы понимаете как создаются конструкторы игр на конструкторах игр.Теперь вы сами можете добавить в свой конструктор игр врагов, стены и все что реализуемо в Game Maker.
А вот мой конструктор с пулями и врагами — Скачать
Skip to content
Создание игр
-
Войти
-
Регистрация
- Конструкторы
- Студии
- Вакансии
- Мероприятия
- Обсуждения
- Обучение
- Посты
- Движки
- Конструкторы
- Софт
- Проекты
- Игры
- Детям
Задайте вопрос
Вы должны быть авторизованы для публикации. Войдите или зарегистрируйтесь.
Конструкторы для создания игр
Конструкторы для создания игр без программирования. Конструкторы с поддержкой языков программирования. Бесплатные конструкторы 2D и 3D игр для компьютеров, планшетов и мобильных телефонов. В отличие от движков, это близкие к ним продукты, которые имеют упрощённый функционал для разработки игр.
VCS Game Maker
Wicked Engine
Java Universal Role Playing Engine (J.U.R.P.E.)
Mosi
sok-stories 1.3
Flickgame
Adventuron Classroom
RPGWizard
CYOA Factory
Crey
iFVN — AVG文字游戏制作工具
3D Game Studio
Fighter Creator
MakeCode Arcade
GDevelop
Clickteam Fusion 2.5
3D Rad
Twine
RPG Paper Maker
OpenSpace3D
Посты
- Все
- Геймдев
- Конкурсы
- Новости
- Проекты
- Разное
- Уроки
- Юмор
Этапы разработки игры
0
2 марта 2023 в 23:07 |
Геймдев
Rovio удаляет игру Angry Birds из Google Play
0
22 февраля 2023 в 01:47 |
Новости
Бесплатные программы для создания игр
0
20 февраля 2023 в 10:37 |
Геймдев
Наследие Хогвардса на Unreal Engine 4
0
8 февраля 2023 в 13:42 |
Новости
Представлены новые скриншоты игры «Смута»
0
23 января 2023 в 22:20 |
Новости
Все новости
Последние обсуждения
Как создать свою игру
3
Последний ответ 2 марта 2023 в 15:57
В какой программе создан Майнкрафт
2
Последний ответ 25 декабря 2022 в 21:46
Идеи для игр
11
Последний ответ 3 марта 2023 в 11:35
На чём пилите игры?
4
Последний ответ 20 апреля 2022 в 08:43
Своё творчество
3
Последний ответ 4 апреля 2022 в 22:29
Все обсуждения
Обратите внимание
-
Промо
Конкурс на лучший Таймкиллер
-
Промо
12 бесплатных программ для создания игр без программирования
-
Промо
Какие специалисты работают над созданием игры
-
Промо
Бесплатные движки для создания игр
Этапы разработки игры
0
2 марта 2023 в 23:07 |
Геймдев
Вакансии
Все
Управляющий офисом
Kefir
Ассистент
KIBERone Волгоградская область
5 000 – 15 000
Художник 2D-спрайтов
Podscriptom
10000-15000
Тестировщик игр
Podscriptom
от 45 000
#подборки
- 27 янв 2023
-
0
Игры, в которых можно попробовать себя в роли геймдизайнера
Подборка игровых конструкторов для разных платформ.
Иллюстрация: Игра Super Mario Maker / Dreams / Fortnite Creative / Levelhead / Annie для Skillbox Media
Считает игры произведениями искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.
С развитием игровой индустрии и ростом аудитории видеоигр всё больше людей задумываются о пробе пера. Однако тонкости геймдизайна могут отпугнуть новичков ещё на старте. К счастью, существует отдельный сегмент игр, в которых можно проявить свои творческие навыки и заодно понять, стоит ли развиваться как геймдизайнер профессионально.
Редакция «Геймдев» Skillbox Media составила подборку игровых конструкторов, в которых можно освоить тонкости создания виртуальных миров, найти свою аудиторию, а в некоторых случаях — ещё и заработать денег.
Страница игры
Платформа: Nintendo Switch
Навыки программирования: не требуются
Поддержка сторонних ассетов: отсутствует
Графика: 2D, 3D
Официальная документация: встроена в игру в виде уроков (режим Yamamura’s Dojo)
Super Mario Maker 2 позволяет создавать уровни для платформеров на основе ассетов из оригинальной серии Super Mario — от классической Super Mario Bros. до Super Mario 3D World. В конструкторе есть обширный инструментарий, который позволяет не только проектировать головоломки и сражения с боссами или раскидывать монеты по уровню, но даже заложить в дизайн двухмерного окружения определённый авторский посыл.
В 2020 году Nintendo выпустила крупное обновление с новым режимом, который дал игрокам возможность создавать собственные миры. В них можно размещать несколько уровней и таким образом собирать полноценные игровые эпизоды.
На первый взгляд может показаться, что в создании уровней в Super Mario Maker 2 нет ничего сложного: достаточно расставить препятствия, врагов и другие приглянувшиеся элементы. Но огромное количество внутриигровых ассетов нередко приводит новичков в замешательство.
Пользователь начинает добавлять всё и сразу, делая уровень либо слишком лёгким, либо непроходимым. Чтобы найти баланс, нужно учитывать желаемую сложность, стиль прохождения и чередование механик. Если подходить к процессу осознанно, то со временем нарабатываются навыки грамотного геймдизайна — а Super Mario Maker 2 даёт большой простор для практики.
Своими творениями можно поделиться с сообществом, загрузив их с помощью сетевой функции «Вселенная уровней» (Course World). Как правило, хорошие работы не остаются без внимания, а сам автор продвигается в рейтинге дизайнеров за счёт заработанных баллов.
Известны случаи, когда работы авторов в Super Mario Maker 2 вызывали большой резонанс. Например, пользователь Metroid Mike 64 создал неофициальное продолжение серии — Super Mario Bros. 5. Автор поставил себе задачу сделать игру такой, словно её разработала сама Nintendo. За семь лет дизайнер сконструировал 40 уровней в восьми мирах, придерживаясь классической стилистики Super Mario Bros. Твит с информацией о проекте нашёл огромный отклик у пользователей и даже привлёк внимание IGN, Polygon и Eurogamer. Через месяц после выхода проекта в первый уровень сыграли более 53 тысяч человек, около пяти тысяч из которых прошли всю игру.
Альтернатива для тех, у кого нет возможности ознакомиться с редактором Nintendo из-за эксклюзивности. Главный герой — робот-курьер GR-18 — нуждается в подготовке, и игрок должен тренировать его, создавая испытания. Разработчики предлагают более 100 ассетов и редактируемые объекты для сборки локаций, а инструментарий позволяет сделать не только классический сайдскроллер, но и метроидванию.
Для пользовательских уровней разработана комплексная система продвижения. Созданные уровни попадают в отдел маркетинга (Marketing Department), и их можно раскручивать с помощью внутриигровой валюты, которую игрок зарабатывает, проходя уровни, созданные другими пользователями.
Кроме того, заработанную валюту можно тратить на чаевые другим талантливым строителям, помогая их работам набирать популярность. Когда уровень набирает достаточно прохождений, он попадает в так называемую башню (The Tower) — подборку лучших проектов. Игра поддерживает кросс-плей, поэтому уровни отображаются всем пользователям независимо от того, на какой платформе они создавались.
Levelhead: Platformer Maker завоевала пять наград и дошла до финала в голосовании за лучшую игру GameMaker Award 2020.
Страница игры
Платформы: PS4, PS VR, PS5
Навыки программирования: не требуются
Поддержка сторонних ассетов: отсутствует, но есть возможность создавать собственные с помощью внутриигровых инструментов
Графика: 3D
Ссылка на официальную документацию
На сегодняшний день Dreams — один из самых масштабных конструкторов, где пользователь может не только создать игру любого жанра с нуля, но и моделировать объекты, рисовать, снимать машинимы и даже писать собственную музыку или делать ремиксы к уже существующим трекам.
Проекты в Dreams можно делать в команде, распределив роли и загрузив базовую пустую сцену в облако. Так каждый участник будет выполнять свою задачу, периодически обновляя сцену по мере добавления контента.
Чтобы понять размах возможностей редактора, достаточно взглянуть на работы других авторов, которых в рамках платформы называют мечтателями.
Глядя на проекты в Dreams — с открытыми мирами, разнообразными механиками и детально проработанным окружением, сложно представить, как можно реализовать нечто похожее, не написав ни одной строки кода. Но команда Media Molecule позаботилась о том, чтобы создание игр оказалось по силам даже юным пользователям без каких-либо профильных знаний.
Логика в Dreams построена на визуальном программировании: у каждого элемента сцены есть свои переключатели, которые можно настраивать и по необходимости связывать с другими элементами. В игре они выглядят как карточки, которые соединены друг с другом проводами.
Мечтатели делают не только оригинальные игры, но и фан-проекты по мотивам известных тайтлов. Например, в подборку ниже вошли ремейки Fallout 4, Resident Evil, P.T. и Dead Space.
На церемонии Bafta Games Awards 2021 команда Media Molecule получила награду за технические достижения.
Проекты в рамках экосистемы Roblox создаются в отдельном приложении Roblox Studio. В нём есть как готовые шаблоны (например, полоса препятствий, гонки и арена), так и возможность сделать игру с оригинальной механикой или сюжетом.
Roblox поддерживает импорт пользовательского контента, включая аудио (MP3, OGG), изображения (PNG, JPG, TGA, BMP), видео (WEBM) и 3D-модели (FBX, OBJ, но размером не более 10 000 полигонов). Все загруженные ассеты проходят модерацию. Авторы могут монетизировать свой контент, продавая предметы, доступ к играм и различные инструменты для редактора.
Разработка игр в Roblox требует навыков программирования: помимо редактирования уровней в 3D-вьюпорте, сложным операциям необходимо прописывать логику на Lua. Но, учитывая огромное количество руководств в Сети и простоту языка Lua, необходимость уметь писать скрипты вряд ли станет камнем преткновения для интересующихся. Юные пользователи успешно создают тысячи проектов, а аудитория платформы с каждым годом быстро растёт.
Согласно статистике, к концу 2021 года количество уникальных пользователей в день на платформе Roblox достигло 50 миллионов, а уже в третьем квартале 2022-го — превысило 58 миллионов.
В творческом режиме (Fortnite Creative) пользователи могут создавать миры на собственных островах. При запуске режима игрок попадает в лобби, где будет находиться портал на личный остров (отмечен жёлтым свечением). В настройках портала можно выбрать шаблон из списка готовых режимов или создать мир с нуля.
После приземления на остров можно заняться созданием игры. Вместо привычной кирки основным инструментом становится телефон, который изменяет, копирует и перемещает готовые элементы окружения, а также устанавливает устройства — интерактивные внутриигровые предметы, они же расходуемые материалы.
Сейчас в творческом режиме Fortnite доступно несколько пустых островов с различными ландшафтами для разработки проекта с нуля и 31 шаблон для создания не только классических аркад и экшенов, но и нестандартных сессий — например в формате музыкального представления. Конечно, как и в Dreams, дело не обходится без переосмыслений и ремейков известных игр.
Подключившись к программе поддержки авторов Epic Games, пользователи получают доступ к монетизации своих работ. Если при покупке товара за реальные деньги игрок введёт в специальном окне код автора, последний получит 5% от суммы. Поддержка и регистрация партнёрских учётных записей в России сейчас закрыты.
В 2022 году Тим Суини упоминал, что половина всего игрового времени в Fortnite приходится на пользователей творческого режима.
Страница игры
Платформа: ПК
Навыки программирования: не требуются, но для продвинутых пользователей есть возможность писать скрипты на Lua
Поддержка сторонних ассетов: отсутствует, но есть возможность создать собственные с помощью внутриигровых инструментов
Графика: 3D
Ссылка на официальную документацию
Core — ещё одна стилизованная метавселенная, в которой можно не только делать свои игры и играть в чужие, но и интегрировать изображения NFT со своим аватаром, чтобы сделать его более эффектным. Как и в предыдущих конструкторах, помимо пустого шаблона, в Core есть готовые фреймворки с картами, которые можно изменять. Редактор находится в разделе Create.
Игра сделана на движке Unreal Engine 4. Примечательно, что интерфейс во многом похож на Unreal Editor: все ассеты можно перетаскивать в сцену прямо из меню по аналогии с Content Browser, объекты редактируются во вьюпорте с помощью 3D-курсора, а параметры задаются в Properties. Если у пользователя возникнет потребность в каких-то уникальных инструментах для проекта, можно импортировать готовые решения из вкладки Community Content или написать скрипт самостоятельно.
Для авторов в Core доступна монетизация, реализованная в виде программы перков. В метавселенной существует отдельная валюта — Core Credits, которую можно покупать за реальные деньги. На них игроки приобретают постоянные, временные и единоразовые усилители (перки) в пользовательских играх. Авторы получают 50% с этих покупок. Если сравнивать с отчислениями в Fortnite (5%) и Roblox (24,5%), это довольно щедрый жест от разработчиков.
В 2020-м Epic Games инвестировала в Core 15 млн долларов. А в 2021 году в коллаборации с известным музыкальным продюсером и диджеем deadmau5 было создано пространство 0B3RHASL1, в рамках которого проводились виртуальные концерты, игровые мероприятия и даже конкурс для авторов.
Платформы из списка выше станут хорошим решением для пользователей, которые хотят попробовать себя в создании игр, но не знают, с чего начать.
Благодаря доступности и интуитивному интерфейсу подобные конструкторы подойдут и для самых юных игроков, желающих познакомиться с основами геймдизайна и найти выход своим творческим порывам. Кто знает, возможно, со временем кто-то из них станет геймдизайнером проекта уже за пределами площадки, изобретёт новый игровой режим или вовсе создаст свою метавселенную.
Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.
Участвовать
Научитесь: Профессия Геймдизайнер с нуля до PRO
Узнать больше
-
Обзоры
30
-
Вопросы
2
-
Статьи
1
Программы для создания игр без программирования
В этой подборке собраны лучшие конструкторы для создания 2D и 3D игр. С их помощью легко создать шутер, стратегию, квест, гоночный симулятор без навыков программирования.
8
Функционал
Удобство
Интерфейс
Скачать
Игровой редактор для создания квестов, приключенческих игр и интерактивной фантастики. Программа с открытым исходным кодом предоставляется бесплатно.
После запуска редактора рекомендуется просмотреть созданные другими пользователями игры. Во вкладке «Play» можно загрузить квест из каталога. Программа автоматически скачает игру и предложит ее запустить. Разобравшись с механикой, разработчик может приступить к созданию своего проекта во вкладке «Creat», на выбор предлагается текстовый квест или интерактивная книга.
Доступные инструменты: создание комнат, объектов, работа со скриптами, плеер для отображения кнопок, иконок, интерактивных окон, настройка интерфейса, выбор цвета и размера текста, шрифта. Меню игрока: количество очков здоровья, денег, вещей в инвентаре и других объектов.
Интерфейс программы переведен на английский и немецкий язык. Софт работает только под управлением операционной системы Windows. Скачать дистрибутив на жесткий диск можно на официальном сайте. Пользователи других OS могут воспользоваться онлайн-версией продукта, доступной после регистрации.
7.3
Функционал
Удобство
Интерфейс
А это приложение будет интересно тем, кто хотел бы создать квест или головоломку. Это, пожалуй, лучшее решение для выпуска игр стиля point&click. Используйте представленные варианты локаций, выбирайте героев, видоизменяйте их, расставляйте предметы, придумывайте загадки, прописывайте команды и подсказки. Правда, бесплатно доступна только демо-версия этой программы для создания игр на компьютер в 3D, но почему бы не попрактиковаться?
7.7
Функционал
Удобство
Интерфейс
Очень простой игровой 2D редактор. Подойдет для тех, кто только знакомится с компьютером и осваивает первые программы. Софт рассчитан на детей 4-8 лет. Принцип создания игры основан на соединение визуальных блоков. Объекты и персонажи рисуются в графическом редакторе с помощью компьютерной мыши или планшета. Кроме рисунков, в игру можно добавить звуки и музыку, создав простой симулятор музыкальных инструментов. Экран разделен на три части: элементы, рабочая область, результат.
Доступные блоки: движение, добавление звука, события, кнопки, переменные, изменение фона.
В графическом редакторе можно создавать слои и группировать их, использовать инструменты: кисть, ластик, завивка, морфинг. Изображение отображается по горизонтали и вертикали, готовые картинки загружаются через меню «Файл».
Для пользователей доступна онлайн-версия и десктопный редактор Scratch offline Editor. Программа полностью бесплатна. Готовые проекты можно загрузить в каталог на официальном сайте.
8
Функционал
Удобство
Интерфейс
Название говорит само за себя. Софт не предполагает знания языков программирования и будет вполне понятен новичкам в этом деле (правда, возможность использования скриптов реализована).
При помощи этой программки вы сможете создавать двухмерные игры разных жанров — от аркад до экшенов. В меню находятся уже готовые варианты объектов, сценариев, локаций, звуков, а также интегрированные редакторы спрайтов (движущейся графики). Здесь же предусмотрены и уроки по сотворению первых в вашем портфолио образцов гейм-индустрии. Ну, а если вы являетесь более продвинутым пользователем, можете воспользоваться также интегрированным языком программирования Game Maker Language (GML) — он предназначен для разработки более функциональных и интересных игр.
Что касается языка интерфейса, то меню у этой программы для создания игр на ПК на русском нет, зато есть возможность установить русификатор.
9
Функционал
Удобство
Интерфейс
Пожалуй, самый мощный игровой конструктор, не предполагающий знания скриптов и языков программирования. Созданные в нём игры можно устанавливать не только на компьютер с Виндой, но также на Айфоны, Айпады и Андроиды, а еще — интегрировать в браузеры и социальные сети (Facebook).
Интерфейс проги несложен, но требует знания английского. Работать главным образом придётся с объектами, действиями и событиями. В меню можно найти более 20 вариаций поведений (для автомобилей, оружия, ударов, движения платформ и так далее). Кроме того, здесь реализован эффект частиц на HTML5, чем могут похвастать не многие программы для создания флеш игр.
Данное ПО располагает интегрированным движком Box 2D Physics, благодаря которому доступно качественное моделирование законов физики и применение интересных эффектов. Те, кто «шарит», может подключить к Construct 2 расширения, как например, Javascript Plugin SDK, который способен модифицировать код при экспорте.
7.7
Функционал
Удобство
Интерфейс
Еще одна среда для разработки простых компьютерных игр, которая не требует от пользователя знания кодов и языков программирования. Вам придется работать со схемами и сценариями, представленными в виде блоков. При этом разрешается перетаскивать объекты и характеристики мышкой. Несмотря на то, что в блоках предусмотрены десятки вариантов, авторы Stencyl позаботились и о тех, кому этого может не хватить. Так, разрешается прописывать в блоках свой код. Правда, для этого понадобится разбираться в программировании.
Пользователям, которые работали в Photoshop, понравится графический редактор Scene Designer, предназначенный для рисования игровых миров. Его инструментарий поразительно напоминает меню популярного фоторедактора.
8.7
Функционал
Удобство
Интерфейс
Добавляйте и изменяйте объекты в 3D пространстве, прописывайте сценарии и правила, рисуйте анимации и эффекты. Авторы CraftStudio продумали всё, чтобы создание игр на PC с нуля в реальном времени было понятным и увлекательным. При этом все инструменты для моделирования и анимаций встроены в программу и понятно обозначены. То же самое можно сказать и о визуальном редакторе сценариев. Что самое интересное — вы не обнаружите проблем с совместимостью форматов или их конвертацией. Для более продвинутых пользователей предусмотрен текстовый редактор Lua Scripting.
8.3
Функционал
Удобство
Интерфейс
Это приложение можно смело советовать начинающим пользователям, ведь оно имеет относительно простой интерфейс и поддерживает возможность добавления объектов простым перетаскиванием. В основе игрового процесса лежит принцип взаимодействия уникальных актеров со своими атрибутами и моделью поведения. Программа позволяет добавлять различные элементы — звуковые файлы и изображения.
Отметим универсальность утилиты, она может адаптировать работы для разных платформ — iOS, Android, Windows, Kindle и даже HTML5. Стоимость ежемесячной подписки — 25 долларов. Доступен 15-дневный пробный период.
7.3
Функционал
Удобство
Интерфейс
Одна из лучших программ для создания 2D визуальных новелл и комиксов, манги. Поклонники жанра наверняка знакомы с играми, созданными с помощью этого графического редактора: Moonlight Walks, Literary club, Everlasting Summer, Doki-Doki.
Знание языков программирования не требуется. Для создания визуальной сцены пользователю необходимо загрузить арт, добавить поле с текстом, кнопки. Цвет, шрифт, фон, звуки, возникающие при взаимодействии с предметом, можно менять произвольно. Ren’Py не поддерживает графическую анимацию. С помощью функции импорта файлов можно загружать изображения в формате GIF, но они не будут анимированными.
После завершения работы над проектом с помощью компилятора создается исполнительный файл. Дополнительно можно создать один или несколько видеороликов, — зацикленных сцен из игры. Редактор предоставляется бесплатно, с открытым исходным кодом, написанным на языке Python.
6.3
Функционал
Удобство
Интерфейс
Интересует создание игр на PC с нуля? В этом случае вам поможет 3D Rad. Эта софтинка предназначена для простого и быстрого изобретения аркад, шутеров, квестов, стратегий, головоломок.
Пользователю достаточно выбрать понравившиеся компоненты (то бишь, объекты) и установить, как они будут взаимодействовать между собой. При этом программа разрешает импортировать в проект модели из других приложений (хотя, надо признать, собственных вариантов для различных объектов в данном меню предостаточно). Также допускается добавление звуков и саундтреков в файлах форматов WAV и OGG. 3D Rad отличается реалистичной физикой, качественной обработкой графики, поддержкой режима мультиплеера, а также возможностью интеграции готового продукта в web-страницы.
8.7
Функционал
Удобство
Интерфейс
А вот пример программы для создания игр на компьютер в 3D-графике. Она позволяет делать видеоигры и игровые web-приложения в трёхмерном изображении. При этом платформа, на которой будет запускаться игра, не ограничивается средой Windows. Кроссплатформенный движок Unity предполагает создание продуктов для Windows (в том числе для 8-й версии), Mac OS, Linux, Android, iOS, и Blackberry. Кроме того, допускается поддержка приставок Xbox 360 PlayStation 3 и Wii.
Функции ПО позволяют использовать готовые скрипты, текстуры, модели, звуки, а также перетаскивать объекты и подключать онлайн-опции. Важно также отметить, что во время работы в Unity 3D игровой движок целиком интегрируется со средой разработки.
7.3
Функционал
Удобство
Интерфейс
Еще один бесплатный конструктор двухмерных игр для Windows, а также Mac, Linux, IOS и Android. Как и в аналогичных программах, вам придётся выбрать объекты, задать им параметры и обрисовать их реакцию на те или иные события в геймплее.
Если у вас уже есть интересные картинки, анимации или звуки, которые можно было бы использовать в игре, вы сможет их импортировать. Ну а для кого не в новинку создание игры на компьютер, скачать бесплатно Game Editor также имеет смысл. Ведь, кроме стандартных объектов и реакций, можно придумать свои, прописав их на специальном скриптовом языке программы (который, к слову в разы проще С++ и JavaScript).
7
Функционал
Удобство
Интерфейс
Еще один инструмент для произведения двухмерных игр в приключенческом жанре. Для того, чтобы понять какой проект может получиться в итоге, рекомендуем проинсталлировать демо-игру, она идет в комплекте с программой. Принцип создания работ базируется на изменении игровых комнат, в которых располагаются объекты. Герой действует по заранее установленным скриптам, они добавляются с помощью отдельного редактора. Приложение поддерживает современные мультимедийные форматы файлов, например, в игровой процесс можно импортировать собственные звуки и даже видеоролик. Доступна функция компиляции исполнимого файла проекта.
8.3
Функционал
Удобство
Интерфейс
Arcade Game Studio или ARGS — это образец простой программы для создания игр без программирования. С её помощью вы сможете создать нечто в олдскульном стиле времен 80-90-х. Лучше всего подходит для разработки платформеров, раннеров, а также вертикальных и горизонтальных (вид сверху) шутеров. Если вам о чём-то говорят такие названия, как Pac-Man, Commando или Ghosts ‘n’ Goblins, значит, вы обратили внимание на правильное приложение. К слову, в ARGS вы найдете несколько полноценных классических аркад, которые можно изменить на свой лад.
9
Функционал
Удобство
Интерфейс
Clickteam Fusion позволит вам создать игры на разных платформах: Windows, iOS, Android. Кроме того, вы сможете выпустить собственные веб-приложения с поддержкой HTML5. К вашим услугам физический движок Box2D, с помощью которого вы сможете управлять гравитацией, направлять движение мелких деталей и компонентов. Если вы не сильны в рисовании и проектировании, разработчики предлагают библиотеку с анимацией и шаблонами объектов. Кроме того, вы сможете пользоваться инструкциями на каждом этапе разработки. В дополнение ко всему, установив программу, вы станете участником сообщества Clickteam, сможете обращаться в поддержку и общаться на форуме.
8.3
Функционал
Удобство
Интерфейс
Бесплатный игровой движок российского производства, над котором работает международная команда программистов. Neoaxis позволяет разрабатывать симуляторы, экшены, стратегии, гонки. Поддерживается работа с 3D объектами.
Изначально Neoaxis был конструктором игр, после того как разработчик полностью переписал код, программа превратилась в фреймовик. Движок поддерживает все популярные интегрированные средства разработки: Microsoft Visual Studio, MonoDevelop, SharpDevelop.
Игроделу предоставляется доступ к встроенным редакторам игрового мира и объектов, десяткам инструментов для создания реалистичных спецэффектов. Физика мира генерируется автоматически на основе заданных параметров. Среда разработки выглядит сложной для освоения, но благодаря русскому сообществу, начать работу будет легко. Подробные туториалы и видеоролики помогут быстро разобраться со всеми функциями программного обеспечения.
Основной минус продукта: тормозит во время генерации игровых сцен и может требовать много ресурсов.
7.7
Функционал
Удобство
Интерфейс
Фреймворк с открытым исходным кодом, написанный на языке Lua. Используется в основном для создания простых 2D игр под две самые популярные мобильные платформы: Android, iOS и десктопные операционные системы Linux, Windows, Mac. Есть поддержка Steam, Яндекс.Игры, Facebook, Nintendo Switch.
Встроенный редактор позволяет создавать 2D и 3D объекты, анимацию, спрайты для казуальных игр. В распоряжение разработчика есть инструменты, помогающие внедрить монетизацию в уже готовый продукт с помощью программного кода HTML5.
Процесс обучения можно начать прямо в программе, выбрав один из уроков. Игра загрузится из облачного репозитория. Задавать положение объекта в пространстве можно с помощью мыши или цифровых настроек в меню «Propertios». Основные возможности: панорамирование, зумирование, вращение.
Объекты соединяются между собой методом msg.post через URL-ссылки. Для каждой сцены программа создает скрипт, его можно отредактировать в любой момент. Фреймовик предоставляется бесплатно, скрины, шаблоны и 2D/3D объекты доступны в интернет-магазине.
8
Функционал
Удобство
Интерфейс
Фреймворк с открытым исходным кодом от китайской компании YAJI Software. Позволяет быстро собрать простенькую аркадную игру из готовых элементов. Для создания игровых сцен используется графический редактор с монтажным столом. В последних версиях поддерживаются 3D текстуры, — для корректной работы потребуется скачать патч. Софт предоставляется в виде exe-файла. Для создания первого проекта необходимо вначале скачать и установить Dashoard, затем Zip-архив с последней версией программы.
В разделе «Сервис» находятся подробные инструкции по работе с движком и советы по адаптации разработки к различным операционным системам; обучающие видеоролики, демоверсии игр. Шаблоны можно продать или скачать в разделе «Интернет-магазин», стоимость копии игры колеблется от 2 до 30 долларов, некоторые предоставляются бесплатно.
Теперь вы знаете, какие из программ могут вам помочь в разработке собственной игры. И пусть это будет далеко не Battlefield или Lineage, ну так и Alien Shooter или Plants vs. Zombies нашли свои миллионные фан-клубы! А уж что-то наподобие последних двух с выше представленным ПО можно изобрести. Так что дерзайте и да прибудет с вами сила!
Данные программы рассчитаны на разный возраст и навыки работы с компьютером. Можно выбрать совсем простую программу, в которой вся механика сводится к перетаскиванию блоков или сложный редактор игрового мира с проработанной физикой объектов. Знания C +, JavaScript, HTML, Python, будут несомненным плюсом. Благодаря многочисленным туториалам, учить язык программирования можно прямо в процессе создания игры.