Реализация многопоточной архитектуры игрового движка

Онлайн сервисы для создания игр

Factile

Factile – сервис для разработки многопользовательских игр типа «Своя игра», «Слабое звено» или «Кто хочет стать миллионером». Оно представляет собой конструктор из готовых шаблонов, вам остается только придумать вопросы и назначить награду. После генерации викторины становится доступна ссылка, по которой будут подключаться участники.

После регистрации сервис перекинет вас к выбору тарифа. Если не планируете покупать подписку, используйте бесплатный доступ.

Когда вы выберите тариф, система перенесет вас в окно создания викторины.

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

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

Русского перевода нет, но браузер Хром переводит большинство элементов управления.

ProProfs

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

Сайт ProProfs также не имеет русского языка, но это легко исправить с помощью машинного перевода. Однако не все игровые модули поддерживают кириллицу.

Как пользоваться сервисом:

  1. Чтобы начать проект, пройдите регистрацию на сайте. После чего нажмите на главном экране кнопку «Создать свою первую викторину»;
  2. Выберите вариант «Создать личную викторину»;
  3. Выберите шаблон (модуль).

В программе доступны следующие модули:

  • паззл;
  • кроссворд;
  • угадывание слов;
  • ответы на вопросы;
  • тесты.

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

Подписка на самый дешевый тарифный план ProProfs стоит 25$ в месяц (примерно 1700 рублей).

Gamefroot

Gamefroot – онлайн сервис для создания 2D мини-игр. В его основе – полноценный игровой движок на базе HTML5.

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

Есть в Gamefroot и специальный модуль для написания скрипта с пояснением алгоритмов и логики.

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

Для работы с сервисом регистрация необязательна. Однако авторизованным пользователям открываются дополнительные шаблоны и элементы.

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

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

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

Работа со скриптами

За поведение игровых объектов отвечают присоединенные к ним компоненты (Components). Базовый компонент любого объекта — Transform, он отвечает за положение элемента в окне Scene, возможность поворачивать и масштабировать его. К базовому компоненту можно добавить, например, Renderer, который меняет цвет, или RigidBody, который отвечает за массу и физику объекта. Но кроме базовых компонентов, объектам можно задавать особые условия, и для этого как раз используются скрипты.

Создать новый скрипт можно в окне Project, кликнув мышкой на Assets –> Create –> C# Script.

Двойным кликом мыши скрипт открывается в текстовом редакторе. Скрипты, как и все остальное в Unity, прописываются на С#, так что для создания сложных проектов разработчикам все же придется освоить этот язык.

Базовые элементы скриптов — это:

  • using — элемент в коде, который подключает библиотеки;
  • public class — в этой строке обычно прописан класс MonoBehaviour, он содержит набор функций, необходимых для работы скрипта;
  • void — те самые функции, с их помощью прописываются действия, происходящие в игре.

Рассмотрим, например, функцию start. Любое действие в ней произойдет только один раз, когда запустится игра. Пропишем здесь print (“Hi”).

И можно заметить, что в консоли это слово выводится один раз.

Функция update — повторяющаяся, ее можно использовать, например, для передвижения объекта. Для этого в скрипте задается переменная int i = 0, она выводится на экран с помощью функции print (i) и увеличивается на одну единицу за каждый шаг с помощью i++.

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

Ren’Py

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

Плюсы Ren’Py:

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

Минусы Ren’Py:

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

PlayCanvas

PlayCanvas – игровой движок полного спектра с возможностями 3D. Его графическая инфраструктура поддерживает WebGL 3D, физический рендеринг, функции краткого освещения (с тенями), световые карты, сетки, движок графического процессора для частиц со встроенным редактором PostFX, что позволяет интегрировать 3D-материалы из самого любимого 3D-программного обеспечения на рынке. 3D-физика возможна благодаря движку Ammo.js 3D. Суть в том, что PlayCanvas работает в облаке, поэтому вы можете создавать браузерные игры (все основные поддерживаемые браузеры) из своего браузера.

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

Isogenic Game Engine

Внешне Isogenic Game Engine может показаться не таким уж и привлекательным, но поверьте нам этой информацией, которой мы собираемся поделиться. Это мощный движок игрового движка, способный структурировать большие, сложные и визуально привлекательные многопользовательские игры. Используйте возможности 2D & Isometric для создания игровых миров. Супер-физический алгоритм и функциональность гарантируют, что ваши игры будут удивительными каждый раз, когда пользователи играют в нее. Просмотрите документацию, чтобы узнать, почему крупные бренды, такие как BBC, используют Isogenic для своих личных платформ.

Defold

Defold – еще один бесплатный кроссплатформенный движок для игровых программ. Он имеет визуальный редактор, предназначенный для создания 2D-игр с использованием языка Lua. Фреймворк отличается простыми инструментами для управления GUI и GO, подчиняемым редактором, широкими возможностями по работе с анимацией. Поддерживается командная разработка, для этого предусмотрена система доступа к проекту разрешенных пользователей.

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

Плюсы Defold

К преимуществам фреймворка относятся:

  • кроссплатформенность;
  • производительность;
  • полная бесплатность;
  • простота использования;
  • развитое сообщество.

Минусы Defold

Недостатками SDK можно назвать:

  • своеобразный подход к организации объектов;
  • ограниченные возможности работы с 3D.

CRYENGINE

CryEngine — не самый заточенный под пользователя движок, что объясняет тот факт, почему лишь немногим студиям (кроме создателей в лице Crytek) удалось освоить его. Это также не самый лучший оптимизированный движок в мире — многие разработчики подтверждают, что ошеломляющая графика, которую он может создать, дается очень нелегко.

Но ничего из этого не имело значения еще в 2004 году, когда Crytek пересмотрела соображения относительно эталонной серии Far Cry, только чтобы продвинуть её еще дальше в 2007 году, вместе с выходом первой части Crysis. Золотые дни CryEngine, возможно, прошли, но технология остается популярной у некоторых разработчиков, включая Arkane Studios, которые использовали ее для Prey.

Чтобы привлечь внимание независимых производителей, последняя итерация движка представила новую модель pay-what-you-want («плати, сколько хочешь»)

И его наследие уходит глубже, чем вы можете себе представить: CryEngine является важной частью послужного списка Ubisoft, так как в каждой части серии Far Cry, начиная со второй, используется сильно модифицированная версия CryEngine под названием Dunia

И его наследие уходит глубже, чем вы можете себе представить: CryEngine является важной частью послужного списка Ubisoft, так как в каждой части серии Far Cry, начиная со второй, используется сильно модифицированная версия CryEngine под названием Dunia

libGDX

libGDX – популярный в среде разработчиков мобильных программ кроссплатформенный фреймворк, использующий C++ и Java. Он полностью бесплатен и поддерживает популярные современные ОС. Это инструмент для продвинутых девелоперов, так как без развитых навыков программирования в нем никак. Зато он поддерживает работу с 2D и 3D, умеет работать с подключаемыми модулями и библиотеками.

SDK предлагает встроенную библиотеку элементов UI, которые можно использовать в составе своей программы. Проекты, созданные в libGDX, имеют модульную архитектуру, благодаря чему можно собирать игры на основе основного модуля ядра с подключением специфичных отдельных модулей для каждой платформы (Windows, Android, Linux и т.д.).

Плюсы libGDX

Плюсы фреймворка – это:

  • бесплатность;
  • кроссплатформенность;
  • виджеты и библиотеки для разработки UI;
  • подключаемые внешние расширения и модули;
  • производительность.

CryEngine 4

Последняя версия движка от немецкой компании Crytek для шутеров от первого лица.

Самый удачный пример использования – Far Cry.

С 2016 года движок стал распространяться по схеме «заплати, сколько не жалко», но только для игрового использования.

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

  • наличие огромных территорий, причем не коридорных;
  • локации создаются без швов;
  • поддержка инверсной кинематики персонажей и транспорта, его взаимодействия с окружающей средой;
  • имитация различных нетвёрдых объектов: ткань, вода;
  • огромный арсенал с уникальными характеристиками каждого вида оружия;
  • скриптовый и командный интеллект;
  • можно изменять параметры ИИ, не имея знаний в области программирования;
  • интерактивное музыкальное сопровождение – музыка соответствует ситуации;
  • полная поддержка звуковой системы 5.1;
  • воспроизведение звуков природы с учётом среды, отражения и поглощения звука;
  • реалистичный эффект жары и пожара;
  • прозрачность стекол – можно видеть, что находится в зданиях;
  • эксплуатация карт высот для получения многоуровневой среды с видимым расстоянием до 2000 м;
  • невероятные возможности работы с освещением и тенями, что отлично демонстрирует Crysis;
  • объемный густой туман и дым для придания атмосферы;
  • наличие необычных физических эффектов (например, нанокостюма).

Рис. 10 – Красоты последней версии CryEngine

Плюсы:

  • многие элементы и объекты созданы в 3ds Max и Maya, отчего их легко редактировать;
  • без знаний C++ можно легко управлять ИИ и интерактивным саундтреком в зависимости от ситуации;
  • реалистичные лица и анимация персонажей;
  • модульность открывает необъятные возможности перед программистами.

Минусы:

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

https://youtube.com/watch?v=pzXwlbi6nA0

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

Как стать гейм-разработчиком

Для того, чтобы стать разработчиком или программером, который создает self made games для браузеров на Python или PHP, предстоит выбрать тот или иной путь развития. После того, как юзер определился, на каком языке работать, ему необходимо получить определенные знания.

Существуют следующие варианты развития событий:

  1. Поступление в ВУЗ для получения высшего образования. Сегодня университеты набирают как гейм-создателей, так и обычных программистов. Срок обучения в среднем составляет 5 лет. В процессе человека научат основам программирования на различных языках. По выпуску выдается диплом государственного образца.
  2. Самообразование. Наиболее долгое решение, но для многих оно является верным. Юзеру предстоит самостоятельно изучать основы программирования на выбранном языке. В интернете полно соответствующей литературы. Никаких сертификатов человек не получит, зато сможет сконцентрироваться только на важных для себя сферах.
  3. Обучение на курсах. Относительно новое решение для тех, кто не готов поступать в ВУЗ. В Москве и других регионах образовательные центры предлагают курсы как по программированию на языках, так и по созданию игр. В конце выдается специальный сертификат.

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

Какую игру лучше всего создать

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

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

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

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

Добавление объекта

Объекты на экран Scene можно добавить из Asset Store. Для этого на панели инструментов нужно кликнуть на вкладку Window –> General –> Asset Store.

В строке поиска можно по названиям найти нужные компоненты, например, сет Free Platform Game Assets.

Как и другие ассеты, он загружается с помощью кнопки Import.

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

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

Шаг 2. Перенести в область Scene

Panda 3D

Фреймворк, разработанный Disney для 3D-аттракционов в парке развлечений. Исходный код Panda 3D выложили в открытый доступ в 2002 году. Со временем инструмент оброс впечатляющей функциональностью для создания коммерческих продуктов с 3D-графикой. Для работы с движком требуется знание Python и C++. В настоящий момент движок используется в проектах, связанных с тренировкой ИИ, а также вычислениями на удалённых серверах.


Disney’s Pirates of the Caribbean Online (2007) — онлайновая RPG, созданная на Panda 3D

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

  • большой набор инструментов и тулсетов (анализ производительности, конвертация моделей, плагин для браузера);
  • поддержка популярных физических движков (Bullet, NVIDIA PhysX, ODE);
  • наличие дополнительных возможностей (ИИ, процедурная анимация, графические ассеты, скелетная анимация и так далее);
  • низкий порог вхождения для тех, кто знает Python.

Недостатки:

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

Игры на движке: Disney’s Toontown, Disney’s Pirates of the Caribbean Online, Autumn Moon Entertainment: Ghost Pirates of Vooju Island, Autumn Moon Entertainment: A Vampyre Story, SimOps Studios: Code3D, Angels Fall First: Second Antarean War, 7million.

Кроме того, на itch.io можно ознакомиться с подборкой игр от инди-разработчиков.

«Для меня меня этот движок оказался проще Unity или UE4. Он минималистичный — можно быстро разобраться, что к чему. Более масштабные технологии сразу заваливают функциями, и часто сложно понять, почему вдруг что-то сломалось. Например, у многих разработчиков возникают проблемы, связанные с переходом на новую версию движка. В Panda 3D такого нет».

Yonnji, инди-разработчик (KITSUNETSUKI project)


KITSUNETSUKI project

Anvil

Создан дочерней компанией Ubisoft, используется для выпуска Assassins Creed и только внутри компании.

Первой игрой была первая часть Креда Убийцы, затем появился симулятор сноуборда и Prince of Persia.

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

Поддерживается на PC, PS всех версий, Nintendo, Wii и Xbox.

Рис 7 – Управление большим количеством персонажей

Код написан на C++, модели нарисованы в ZBrush, а окружающий мир – в 3ds Max. Для правильной скелетной анимации задействовано программное обеспечение от Autodesk. Физику виртуального мира моделирует легендарный Havok. В последних релизах было уделено немало внимания смене времени суток, динамическому освещению и дистанционной прорисовке. Также в него была интегрирована прогрессивная схема растительности (как в Far Cry 2) с новым ИИ, важным отличием коего является усовершенствованная система навигации NPC. Реализация и отладка Direct3D 10/11 хоть и весьма затратные, работа все же была проделана.

Среди неназванных особенностей движка выделим следующие:

  • оптимизация работы на многоядерных системах, вплоть до 32 потоков;
  • запуск игр на нескольких экранах в панорамном режиме;
  • сложный шумовой туман, способный симулировать песчаную бурю без падения fps;
  • эффекты преломления, отражения и рассеивания света в воде;
  • до шести отличающихся персонажей в одной кат-сцене;
  • большинство анимаций снято с реальных актеров;
  • в одной сцене может находиться до 3 тысяч участников, что позволяет устраивать массовые баталии, лишь бы ПК справился с нагрузкой;
  • NPC активно реагируют на героя, могут нападать одновременно, а не поочерёдно;
  • технология отсечения моделей и сортировка объектов по глубине прорисовки.

Плюсы:

  • требователен к ресурсам;
  • не лицензируется;
  • долго не поддерживал DirectX 10 и 11.

Минусы:

  • хорошая реализация многопоточности;
  • работает на PC и множестве консолей;
  • возможность реализации массовок при участии сотен игровых персонажей.

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

Приступаем к созданию движка

Физические движки отвечают за определение места нахождения каждого объекта в сцене в определенный промежуток времени. Объекты могут сталкиваться друг с другом, а затем выбирать ответ несколькими способами. Эту общую проблему пользователь может настроить на нескольких уровнях. Есть ли необходимость в коллайдере? Нужно ли реагировать на столкновения? Нужно ли моделировать динамику? Возможно, понадобится динамика, но не гравитация. Здесь требуется четкое планирование и надежный дизайн.

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

Проблему можно разделить на 3 части: динамика, обнаружение столкновений и реакция на столкновения.

Amazon Lumberyard

Бесплатное кроссплатформенное программное ядро ААА-уровня созданное стараниями Amazon на базе архитектуры CryEngine. Движок отличается очень высокой производительностью и интегрирован с принадлежащими Amazon сервисами, благодаря чему разработчикам открыт доступ к серверам компании и всевозможным преимуществам платформы Twitch.

Lumberyard стал сердцем долгостроя Star Citizen и ее сюжетного ответвления Squadron 42, демонстрируя невероятно красивый космос, объемные ландшафты планет и насыщенные деталями города. Кроме того, Lumberyard лег в основу многообещающего MMO-проекта New World и уже сейчас, на этапах закрытого теста, ощущается в игре превосходно.

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

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

Adblock
detector