Как и зачем создавать собственный игровой движок / Хабр
Игра с нуля — интересный челлендж для разработчика. Но если хотите пройти его на сложности 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) все равно была куча ошибок, которые я решал, стиснув зубы. Как только игра вышла, я сразу начал улучшать движок для следующего проекта, исправлять раздражающие баги и добавлять новые функции.
И так раз за разом: учишься, создаешь игру, запускаешь, и все по новой. До тех пор, пока движок не станет действительно хорош.
Не стал вдаваться в технические подробности, как внедрить в движок каждую отдельную систему. Это зависит от конкретных вариантов использования, есть сотни способов — и каждый из них правильный. Понять, что вам подходит — ВОТ в чем суть разработки движка, с таким настроем стоит браться за создание собственных проектов.
Вот и все, что я хотел рассказать в этой статье. Скорее всего, она вас либо мотивировала на разработку собственного движка, либо окончательно отпугнула от этой идеи. Оба варианта хороши, если вы поняли, чего хотите сами.
7 простых утилит для игровой разработки без программирования для новичков
Технологии
Валентин Шакун
мечтает сделать игру про караваны
Профиль автораСегодня игровая разработка доступна как никогда: в сети можно найти сотни руководств и десятки движков под любые запросы.
Из-за этого новичкам сложно найти подходящий вариант — многие просто устанавливают самые популярные программы.
За последние пять лет я создавал небольшие прототипы — то есть наброски, реализующие разные механики, — на разных игровых движках. А еще участвовал в джемах — конкурсах по созданию прототипов за короткий промежуток времени — и помогал в разработке пока не вышедшей игры на Unity.
В этом тексте я собрал самые простые для освоения движки для создания первых проектов. В список попали утилиты с большим количеством обучающего материала и максимально низким порогом входа.
Важное уточнение: в некоторых разделах указаны сложности в работе с 3D — под этим подразумевается отсутствие официальной поддержки трехмерных игр. Впрочем, это не мешает некоторым разработчикам добиваться эффекта псевдотрехмерности в любом движке. Прямо как в первой Doom.
Почему лучше выбрать готовый движок
Игровые движки, доступные на рынке, — это чаще всего готовые наборы утилит, которые помогают сразу приступить к разработке игры. Зачастую они бесплатны, а брать с вас деньги начнут лишь тогда, когда вы захотите использовать движок в коммерческих целях — то есть решите выпустить игру в магазине.
Большие игровые движки постоянно дорабатываются разработчиками — выходят новые версии и утилиты. Вокруг них складываются большие сообщества авторов игр, которые делятся советами и руководствами между собой. Нередко при движках существуют еще и магазины ассетов — предметов, которые используются в играх, будь то 3D-модель или текстура.
Разработчики дают лицензировать свой движок по-разному: кто-то одномоментно берет фиксированную сумму за коммерческое использование, а кто-то предпочитает забирать процент с доходов игр, выпущенных на движке. Последний вариант наиболее выгоден для независимых разработчиков, которые хотят продавать игры, но не располагают большими деньгами для лицензирования.
Альтернатива готовым движкам — это написать свой. В случае с собственным движком никому не надо платить за его использование, да и знать вы его будете лучше всех. Но новичку такой вариант не подойдет: написание движка может занять несколько лет и требует знаний в математике, программировании и графических технологиях.
Атмосфера и минимализм: 15 уютных видеоигр для расслабления
Если вы хорошо знакомы, например, с языком C++ и графическими библиотеками вроде OpenGL, можно попробовать написать собственный движок, но разработка игры затянется, ведь утилиту придется постоянно дорабатывать. На старте все потребности учесть невозможно.
Даже у больших издателей проприетарные движки, то есть разработанные внутри компании, постоянно обновляют из-за недостатка функций. Например, Electronic Arts, известная по Battlefield и Mass Effect, постоянно пытается приспособить Frostbite под разные жанры.
Для разработки первой игры лучше выбрать один из готовых движков — ничего стыдного в этом нет. Тем более что крупные разработчики тоже ими не брезгуют: весомая доля известных проектов выпущена на Unreal Engine или Unity.
Unity
Цена: бесплатный для разработчиков с прибылью меньше 100 000 $ ( 100000 Р) за последний год, далее нужно платить за одну из подписок от 399 $ ( 399 Р) в год. Для консольной разработки нужно оформить подписку Unity Pro за 1800 $ ( 1800 Р) в год либо получить ключ бесплатно от платформодержателя
Сильные черты: универсальность, встроенный магазин ассетов, конструктор шейдеров
Недостатки: оптимизация игр часто хромает, не подходит для больших проектов
Игры на движке: Escape from Tarkov, Cuphead
Unity появился аж в 2005 году, и это до сих пор один из любимых движков в инди-среде наравне с более продвинутым Unreal Engine 4. Главное преимущество движка — большое сообщество и множество официальных и неофициальных «обучалок». Создатели программы даже запустили портал Unity Learn с курсами о разных аспектах работы с движком.
Unity практически не ограничивает пользователя: в движке можно работать с 2D и 3D, VR и любыми жанрами от «три в ряд» до шутеров от первого лица.
Сегодня порог вхождения в Unity низок: первый прототип можно собрать очень быстро благодаря встроенному магазину ассетов и инструментам визуального программирования — утилитам, которые позволяют настраивать логику игровых механик без необходимости писать код.
Новичкам особенно удобна система Shader Graph для создания сложных шейдеров — специальных эффектов отображения объектов.
Источник: unity.comUnity подходит для мобильной разработки и инди. В нем можно быстро создавать прототипы, что особенно кстати для разработки гиперказуальных проектов — игр для смартфонов с очень простыми механиками и высокой степенью вовлечения, например Helix Jump или Flappy Bird.
К тому же на Unity несложно портировать проект, то есть оптимизировать его для работы на других платформах. Но с недавнего времени для консольной разработки придется оплачивать подписку Unity Pro за 1800 $ ( 1800 Р) в год.
Unity часто винят в плохой оптимизации и визуальной бедности: тот же Unreal Engine 4 часто используют 3D-художники для того, чтобы выставить свет и красиво настроить сцену. В Unity же нужно время, чтобы достичь такой картинки.
А еще обновления Unity нередко «ломают» проекты или отдельные его части вроде текстур.
Unreal Engine
Цена: бесплатный, при доходе от миллиона долларов за все время существования игры Epic Games забирает 5%
Сильные черты: графика, встроенное визуальное программирование, открытый исходный код
Недостатки: высокие требования к навыкам разработчика
Игры на движке: Fortnite, Star Wars: Jedi Fallen Order, Mortal Kombat 11
Unreal Engine и Unity — «большая двойка» игровых движков. Но в UE по умолчанию гораздо более продвинутая картинка, чем у конкурентов, и заточен он под 3D. А система визуального программирования Blueprint упрощает работу для новичков, которые не хотят писать код: благодаря ей в движке очень удобно собирать небольшие прототипы. К тому же в официальном магазине каждый месяц проводятся бесплатные раздачи ассетов для коммерческого использования.
Новая версия движка, Unreal Engine 5, — потенциальный прорыв для всей индустрии. Благодаря системе Nanite художникам больше не нужно беспокоиться об оптимизации ассетов под разные системы: движок сделает это самостоятельно. А технология Lumen автоматически обрабатывает источники света — раньше на подобные системы приходилось тратить немало ресурсов.
В последнее время Epic Games делает все, чтобы у пользователей Unreal Engine был доступ к самым продвинутым технологиям — взять хотя бы конструктор людей MetaHuman, который позволяет за пару секунд создать реалистичную модель человека.
Неудобство UE в том, что он во многом ориентирован на профессионалов. Визуальное программирование Blueprint тратит больше ресурсов системы, чем код на C++, поэтому большой проект совсем без программирования сделать не получится.
В местном интерфейсе новичок легко запутается, да и красивая картинка может вызвать проблемы, ведь ее придется оптимизировать под самые разные устройства.
Unreal Engine — хороший выбор для тех, кто хочется сразу погрузиться в профессиональный геймдев и в перспективе работать над высокобюджетными проектами. Разработка на нем требует большей технической подкованности, чем на других движках, так что он больше подойдет тем, кто уже немного знаком с особенностями создания игр. Например, для тех, кто уже работал в Unity, в документации UE есть отдельный гайд.
Цена: бесплатная версия не позволяет опубликовать проект, инди-лицензия стоит 259 Р в месяц, корпоративная — 1389 Р в месяц
Сильные черты: программирование необязательно, drag-and-drop-разработка
Недостатки: почти не работает с 3D, бедный встроенный магазин ассетов
Игры на движке: Katana Zero, Hyper Light Drifter
GameMaker Studio — один из самых известных игровых движков наравне с Unity и Unreal Engine. На нем сделаны многие инди-хиты вроде Undertale, а еще у него очень низкий порог вхождения: для GameMaker необязательно умение программировать, и все взаимодействия можно настраивать буквально «перетягиванием».
Впрочем, писать код в нем тоже можно — создатели даже разработали специальный язык, GML (Game Maker Language). У него меньше возможностей, чем у того же C#, а некоторые его особенности не встречаются в других языках, зато он очень прост в освоении и подойдет как опытным программистам, так и новичкам.
GameMaker Studio не просто хорошо оптимизирован — в нем немало инструментов для работы над играми в любых жанрах. Так что это хороший выбор для тех, кто хочет погрузиться в геймдизайн и не тратить время на «математику» и поиск расширений.
Он не понравится тем, кто хочет работать с 3D: движок не поддерживает его официально, а разработчики не планируют что-то с этим делать. Да и магазин ассетов GameMaker гораздо беднее, чем у конкурентов.
С недавних пор использовать GameMaker для разработки можно бесплатно, но придется оплатить подписку для публикации своей игры. То есть вы можете опробовать все его возможности бесплатно перед тем, как тратиться на подписку.
Цена: бесплатный для коммерческого использования
Сильные черты: хорошая оптимизация и поддержка всех платформ
Недостатки: относительная неизвестность, отсутствие 3D
Игры на движке: Family Island, Marginalia Hero
Defold — один из главных конкурентов Unity, но используют его намного реже. Он рассчитан на двухмерные игры, которые программируются на языке Lua и запускаются почти на всех платформах — от HTML5 (веб-страницы) до Nintendo Switch. Поэтому он быстро работает и компилирует маловесные билды, в отличие от того же Unity.
У Defold нет встроенного визуального программирования, но есть фанатский плагин, который его добавляет. Также в сети опубликовано много обучающего материала по нему, но меньше, чем у конкурентов.
Как и любой молодой движок, Defold постоянно развивается, так что все недостатки могут исправить в будущем. Сейчас же это необычная альтернатива Unity для тех, кто хочет попробовать себя в программировании, но не желает погружаться в трудности семейства C, общепринятого в «большой» индустрии.
Цена: бесплатный для коммерческого использования, можно поддержать разработчиков на «Патреоне»
Сильные черты: постоянное развитие, множество поддерживаемых языков программирования
Недостатки: пока с трудом работает с 3D и не поддерживает консоли
Игры на движке: Rogue State Revolution, Kingdoms of the Dump (в разработке)
Godot — это «выбор на перспективу», который примечателен постоянными обновлениями. Он максимально открыт — за движок не надо платить, а на GitHub лежит его исходный код, в котором может покопаться любой желающий. А еще в Godot большой выбор языков программирования соседствует с визуальным скриптованием: сегодня утилита поддерживает C, C# и собственный GDScript, который напоминает Python.
Открытый исходный код движка позволяет участвовать в его разработке всем желающим: например, исправлять баги или предлагать новые функции.
Главная проблема движка в его «перспективности»: Godot разрабатывают уже 14 лет, но в нем до сих пор не очень удобно работать в 3D, а сообщество намного меньше в сравнении с другими продуктами. Ну и разрабатывать консольные игры в нем сложно из-за того, что там нельзя издавать игры, сделанные на полностью открытом ПО без лицензии. К счастью, сооснователь компании-разработчика движка как раз открыл студию для портирования игр с Godot на консоли.
Вместо «Симс», «Героев» и «Казаков»: 15 видеоигр, которые заменят любимые игры детства
Godot вполне может оказаться очень востребованным на рынке через несколько лет, когда в нем появятся все те функции, которые давно есть у конкурентов. Тогда у Godot появятся все шансы стать главным «противником» Unity.
Цена: бесплатный для разработки веб-игр, 100 $ ( 100 Р) в год для ПК и 200 $ ( 200 Р) для ПК, веба и телефонов
Сильные черты: очень простое визуальное программирование, drag-and-drop-разработка
Недостатки: не подходит для 3D и больших проектов
Игры на движке: Super Dangerous Dungeons
Stencyl — это максимально простой 2D-конструктор. Его часто используют для того, чтобы обучать детей программированию. В первую очередь он предназначен для мобильных игр и небольших прототипов в духе флеш-игр. Из-за этого работать над большими проектами в нем довольно сложно, зато можно делать небольшие игры в духе популярной Super Dangerous Dungeons.
Также в движке есть Code Mode — возможность писать собственный код на языке Haxe, который синтаксисом напоминает C#.
Недостатки Stencyl похожи на проблемы других простых движков — здесь нет 3D и поддержки консолей. Скорее всего, все это и не появится, так что стоит сразу определить для себя, нужны ли вам эти особенности. Если нет, и вы хотите просто побыстрее выпустить маленькую игру и не возиться с кодом или просто набросать прототип перед переходом на «большой» движок, Stencyl — хороший выбор. Это что-то вроде аналога игровых конструкторов в духе Super Mario Maker, где вы можете сосредоточиться на геймдизайне и картинке, а не технической составляющей.
Цена: бесплатный с ограничениями, персональная версия стоит 525 Р в месяц или 4199 Р в год
Сильные черты: работает в браузере, не требует программирования
Недостатки: не подходит для 3D и консолей
Игры на движке: Hypnospace Outlaw, Mighty Goose
Construct очень похож на Stencyl — это тоже простой, пусть и более известный конструктор двухмерных проектов, который используют в обучении детей. Как и Stencyl, Construct — это хороший инструмент прототипирования. Если функций местного визуального программирования не хватит, то прямо в блочную систему можно встроить код на JavaScript.
Даже проблемы у движков общие: Construct тоже не подходит для крупных проектов, не работает с 3D и на консолях. На нем можно собрать игру под Xbox, но производительность там оставляет желать лучшего.
Зато Construct основан на JavaScript, поэтому игры на нем могут запускаться на всех остальных платформах, а попробовать движок можно прямо в браузере — не надо скачивать никаких дистрибутивов. Причем всего за пару минут там можно создать первый прототип простым перетаскиванием блоков и выбором действий.
Какие курсы по геймдизайну стоят своих денег?
А еще движок постоянно развивается, так что вполне возможно, что в будущих версиях он станет ближе к GameMaker Studio. Пока что это хороший способ сделать первый шаг в игровой разработке или приобщить к ней ребенка.
Какой игровой движок выбрать
Движок | Цена | Плюсы | Минусы |
---|---|---|---|
Unity | Бесплатно при малой выручке, 1800 $ ( 1800 Р) в год для консольной разработки | Универсальность | Оптимизация |
Unreal Engine | Бесплатно при малой выручке | Красивая картинка, визуальное программирование | |
GameMaker Studio | Бесплатно без возможности публикации или от 259 Р в месяц | «Перетягивание» вместо программирования | Нет 3D. Бедный магазин ассетов |
Defold | Бесплатно | Скорость, простое программирование | Небольшое сообщество по сравнению с конкурентами |
Godot | Бесплатно | Перспективность | Не хватает важных функций из других движков |
Stencyl | До 200 $ ( 200 Р) в год | Простой конструктор под мобильные игры | Для большого и сложного проекта лучше выбрать что-то другое |
Construct | Бесплатно с ограничениями, 525 Р в месяц или 4199 Р в год | Большое сообщество, простой конструктор | Те же, что и у Stencyl |
Цена
Бесплатно при малой выручке, 1800 $ ( 1800 Р) в год для консольной разработки
Плюсы
Универсальность
Минусы
Оптимизация
Unreal Engine
Цена
Бесплатно при малой выручке
Плюсы
Красивая картинка, визуальное программирование
Минусы
Сложнее остальных, нет 2D
GameMaker Studio
Цена
Бесплатно без возможности публикации или от 259 Р в месяц
Плюсы
«Перетягивание» вместо программирования
Минусы
Нет 3D. Бедный магазин ассетов
Defold
Цена
Бесплатно
Плюсы
Скорость, простое программирование
Минусы
Небольшое сообщество по сравнению с конкурентами
Цена
Бесплатно
Плюсы
Перспективность
Минусы
Не хватает важных функций из других движков
Stencyl
Цена
До 200 $ ( 200 Р) в год
Плюсы
Простой конструктор под мобильные игры
Минусы
Для большого и сложного проекта лучше выбрать что-то другое
Construct
Цена
Бесплатно с ограничениями, 525 Р в месяц или 4199 Р в год
Плюсы
Большое сообщество, простой конструктор
Минусы
Те же, что и у Stencyl
Как построить двигатель
В основе любой мощной уличной машины лежит мощный двигатель, созданный для работы.
Видео по теме
Сердцем любой мощной уличной машины является мощный двигатель. Без мощной мельницы ваша машина будет показываться и никуда не денется, а это не самая лучшая репутация в местном круизном центре. Но, поскольку многие автомобили поставлялись с завода с тусклым двигателем, вам решать превратить свой уличный крейсер в уличный хулиган.
За прошедшие годы Car Craft написала бесчисленное количество историй о о том, как построить двигатель мощностью в миллион лошадиных сил и как заставить свой V8 выдавать невероятный крутящий момент. Иногда, однако, эти истории слишком технологичны и/или требуют модов, которые слишком дороги для среднего автопроизводителя. Таким образом, эта техническая функция возвращается к основам. В нем содержится широкий спектр процедур сборки двигателя, советы и рекомендации по сборке. Данный совет является общей информацией и применим к большинству двигателей V8 американского производства, выпускаемых крупными производителями автомобилей, такими как Chevrolet, Chrysler/Dodge, Ford, Buick, Olds и Pontiac.
Важно помнить, что успешная сборка вашего первого двигателя — это не ракетостроение — это просто вопрос тщательной работы и пристального внимания к деталям. Просто помните, что если у вас есть вопрос по сборке или вы не уверены в спецификации крутящего момента, не гадайте, найдите правильный ответ. Разнообразные источники могут дать ответы на ваши вопросы по двигателестроению. Их можно найти в таких местах, как страницы журнала Car Craft, руководство по двигателю (например, Chilton) для автомобиля того года/типа, которым вы владеете, или связавшись с производителем соответствующей детали. Например, если вы не знаете, как отрегулировать зазор клапана на вашем новом уличном/полосном распределительном валу, позвоните в службу технической поддержки компании-производителя кулачков и спросите у компании из первых рук. Задавание вопросов первым помогает исключить ошибки, потраченное впустую время и потраченные впустую деньги.
Суть сборки вашего первого двигателя в том, чтобы сделать это правильно . Помните, что если вы не собираете двигатели каждый день, чтобы зарабатывать на жизнь, вам, вероятно, потребуется больше времени, чтобы собрать двигатель, чем в гоночной мастерской. Тем не менее, приз самому быстрому моторостроителю не присуждается, так что не торопитесь. Выделите один день на построение нижней части. Затем вернитесь на следующий день (с ясным умом и новым энтузиазмом), чтобы установить кулачок, головки и коромысла. Разделение процесса сборки двигателя делает проект (и весь ваш проект по сборке дорожных машин) простым и приятным. В конце концов, вся цель проекта маслкара — развлекаться.
А пока посмотрите на сопровождающие фотографии и подписи, а также A-B-C сборки двигателя
- Шаг 1: Выбирайте бюджетные, надежные модификации, обеспечивающие отличные дорожные характеристики.
- Шаг 2: Решите, как ваш автомобиль будет управляться большую часть времени, и соответственно выберите компоненты двигателя.
- Шаг 3: Проведите хонингование блока цилиндров с установленной нажимной пластиной, если это возможно.
- Шаг 4. Простой процесс механической обработки в домашних условиях включает в себя нарезание резьбы во всех отверстиях под болты на блоке цилиндров.
- Этап 5. Декинг блока цилиндров позволяет получить более ровную и плоскую поверхность деки, что способствует лучшей герметизации цилиндра
- Шаг 6: Промойте блок цилиндров, коленчатый вал и шатуны мыльной водой.
- Шаг 7: Покрасьте блок цилиндров снаружи высокотемпературной краской.
- Шаг 8: Выровняйте-расточите главный блок цилиндров.
- Шаг 9: Затяните болты основной крышки постепенно в правильной последовательности с помощью динамометрического ключа профессионального качества.
- Шаг 10: Установите коренной подшипник в блок цилиндров насухо.
- Шаг 11: Осторожно установите коленчатый вал на место, стараясь не повредить коренные подшипники.
- Шаг 12: Чтобы правильно совместить распределительный вал с коленчатым валом, совместите шестерни цепи привода ГРМ так, чтобы две маленькие точки находились рядом друг с другом.
- Шаг 13: При использовании гидравлического распределительного вала затяните гайку коромысла до нулевого зазора, а затем затяните гайку еще на один оборот.
- Шаг 14: Установите циферблатный индикатор в отверстие подъемника (этот циферблатный индикатор плотно удерживается в отверстии подъемника с помощью уплотнительных колец, установленных на валу индикатора).
- Шаг 15: Для регулировки распределительного вала начните с использования циферблатного индикатора (стрелка A), чтобы определить, когда поршень № 1 находится в верхней мертвой точке (ВМТ). Затем установите градусное колесо (стрелка B) на конец коленчатого вала. Установите градусный указатель кулачка (стрелка C) так, чтобы он совпал с нулевой отметкой на градусном колесе.
- Шаг 16: Всегда покупайте высококачественные прокладки от известного производителя.
- Шаг 17: Чтобы убедиться, что датчик остается надежно прикрепленным к масляному насосу (и в надлежащей фазе с ним), приварите их прихваточным швом.
- Шаг 18: Первые 10 минут обкатки двигателя являются самыми важными. Поддерживайте обороты двигателя в диапазоне 2000–2500 об/мин и постоянно контролируйте состояние двигателя (например, давление топлива и масла, а также угол опережения зажигания).
- Шаг 19: Настоятельно рекомендуется отбалансировать детали двигателя, составляющие вращающийся узел.
Trending Pages
Доступ запрещен: NHTSA инструктирует автопроизводителей игнорировать закон штата Массачусетс о доступе к данным
Эксклюзивное интервью! Как Роберт Дауни-младший заново изобретает классические автомобили
Рекомендуемые истории MotorTrend
Как установить высокоэффективную топливную систему Muscle Car
Johnny Hunkins|
Ночи дорожного убийства возвращаются в Вудворд! Все, что вам нужно знать
Майкл Галими | 00Z»> 15 июня 2023 г.
Ford Mustang Секретное оружие Dark Horse — аэродинамическая труба со скоростью 200 миль в час
Мэтью Чудзински|
Выставка передвижных автомобилей вторгается в старую школу NASCAR Track: Огромная галерея из 3-го дня Power Tour
Майкл Галими|
Лучший Tri-Five Chevy
Джонни Ханкинс|
До максимума: HOT ROD Power Tour Круизы, заполните zMax Dragway до предела!
Майкл Галими|
Trending Pages
Доступ запрещен: NHTSA инструктирует автопроизводителей игнорировать закон штата Массачусетс о доступе к данным на, Stuffs zMax Dragway до предела!
Эксклюзивное интервью! Как Роберт Дауни-младший заново изобретает классические автомобили
Как собрать автомобильный двигатель с нуля
by Cayden Conor
Создание автомобильного двигателя с нуля требует времени и терпения, и вам также понадобится опытный механик, который поможет вам в этом предприятии. Сборка автомобильного двигателя — это больше, чем просто сборка деталей. В зависимости от типа двигателя существуют различные допуски и настройки момента затяжки гаек и болтов, которые необходимо соблюдать. Существует множество различных типов двигателей, хотя наиболее популярными являются 4-цилиндровые, 6-цилиндровые и 8-цилиндровые двигатели. Двигатели также подразделяются на типы, например, карбюраторные или инжекторные, с одним верхним распредвалом, с двойным верхним распредвалом или обычные распредвалы. Независимо от того, какой у вас двигатель, все основные компоненты одинаковы.
Шаг 1
Замочите новые подъемники в моторном масле не менее чем на пять или шесть часов, а лучше на ночь. Пока подъемники замачиваются, выровняйте все новые детали, гайки и болты и возьмите все инструменты, которые вам понадобятся, чтобы собрать двигатель.
Шаг 2
Установите поршневые кольца на поршень. Убедитесь, что вы расположили три кольца в шахматном порядке. Если разрыв колец выровнен, у вас будет прорыв газов при запуске двигателя, и двигатель будет постоянно жечь масло. Нанесите на стенки цилиндра средство для обработки масла STP. Хотя можно использовать и другие масла, STP является густым и вязким и прилипает к стенкам не только во время работы, но и остается там во время запуска, защищая новый двигатель до тех пор, пока масляный насос не сможет все правильно смазать.
Шаг 3
Переверните блок и установите верхнюю половину коренных и шатунных подшипников. Покройте видимую сторону всех подшипников средством для обработки масла STP. Установите кривошип на место, затем установите нижнюю половину коренных подшипников на крышки подшипников. Установите крышки коренных подшипников. Это удержит кривошип. Обратитесь к руководству по эксплуатации двигателя, чтобы узнать расстояние между коренными подшипниками и значения крутящего момента.
Шаг 4
Переверните блок обратно. Поместите шатунные подшипники в крышки подшипников на одном из узлов поршень-шток. Обратите внимание на маркировку на верхней части поршня. Это скажет вам, в какую сторону поршень входит в блок. С помощью компрессора для колец вдавите кольца в поршень и установите поршень в отверстие цилиндра. Аккуратно постучите по поршню резиновым молотком, пока он не войдет в отверстие. Направляйте шток на шейку кривошипа, постукивая по поршню. Повторите этот шаг для семи других поршней.
Шаг 5
Переверните блок. Поместите подшипники в крышки подшипников, нанесите на них масло для обработки STP и установите в соответствии со спецификациями двигателя по зазору и крутящему моменту. Установите распределительный вал. Покройте кулачок пропиткой маслом STP, затем осторожно вставьте распределительный вал в блок. Обязательно установите кнопку кулачка. Установите цепь привода ГРМ и крышку привода ГРМ. Перед установкой крышки убедитесь, что установочные метки правильно совмещены. Установите масляный насос и масляный поддон.
Шаг 6
Установите подъемники. Они уже должны быть покрыты маслом, так как к этому моменту должны были впитаться. Покрасьте впускной камбуз. Это поможет маслу легче скользить обратно в блок. Установите головки. Убедитесь, что прокладки головки находятся на месте и не закрывают ни одно из отверстий в водяной рубашке. Они работают только в одном направлении, но могут подходить для нескольких способов. Затяните головки, используя спецификации для двигателя конкретного года, над которым вы работаете.
Шаг 7
Установите толкатели и коромысла. Обратитесь к руководству по эксплуатации двигателя, чтобы узнать характеристики крутящего момента на коромыслах. Если вы строите двигатель с верхним расположением распредвала, вам не нужно будет устанавливать толкатели. Кулачок кулачка давит прямо на подъемник. Установите впускной коллектор. Вы можете нанести немного RTV на прокладки, чтобы удерживать их на месте.
Шаг 8
Установите крышки клапанов. Теперь вы готовы установить двигатель в машину. Остальные аксессуары (топливный насос, карбюратор и распределитель или система впрыска топлива) могут быть установлены после того, как двигатель будет надежно закреплен болтами в моторном отсеке.
Вещи, которые вам понадобятся
- Набор 1/4-дюймовых головок (метрических и стандартных)
- 1/4-дюймовая трещотка
- 1/4-дюймовый пневматический пистолет
- 1/4-дюймовые удлинители различных длины
- Набор головок 1/2 дюйма (метрических и стандартных)
- Трещотка 1/2 дюйма
- Пневматический пистолет 1/2 дюйма
- Удлинители 1/2 дюйма различной длины
- Набор из 3 шт. 8-дюймовые торцевые головки (метрические и стандартные)
- 3/8-дюймовая трещотка
- 3/8-дюймовый пневматический пистолет
- Удлинители 3/8 дюйма различной длины
- Устройство для установки поршня
- Обычная отвертка
- Крестообразная отвертка
- Набор стандартных ключей
- Набор метрических ключей 9002 7 Клещи
- Клещи для водяных насосов
- Разводной ключ
- Двигатель подъемник
- Стенд двигателя
Писатель Био
Кайден Конор пишет с 1996 года.