Советы и лайфхаки

Движок для 2d игр – Десятка лучших движков для создания своих собственных игр / Хабр

Содержание

Лучшие движки для создания собственных 2D инди-игр

Хотите попробовать создать свою 2D игру? Перед вами лучшие инструменты для работы, даже если вы новичок в этом деле.

Создавать игры сложно. Чем больше вы знаете об этом процессе, тем сильнее вы будете удивляться тому, что кто-то действительно доводит его до конца. Как говорил один из бывших авторов PC GamerТом Фрэнсис, описывая процесс программирования игры Gunpoint: «За время работы над игрой я пришёл к одному выводу: Моя игра – это настоящее безумие. Это пациент психлечебницы. Она полностью сошла с ума, и нужно быть готовым к тому, что все разумные доводы будут встречены невменяемым кричащим бредом».

Легко впасть в ступор при одной мысли о масштабе работы, которую придётся проделать, разрабатывая дизайн и программируя свою игру, однако мы обратились к нескольким независимым разработчикам, и все они дали один и тот же совет новичкам: просто сделайте это. Погрузитесь в работу с головой, какой бы страшной она ни казалась. Для того, чтобы помочь вам сделать первый (пугающий, но, в конечном счёте, оправдывающий средства) шаг, мы подготовили список 2D-движков для начинающих игровых разработчиков. Надеемся, что он вкупе с рекомендациями опытных геймдизайнеров будет вам полезен.

GameMaker Studio 2

Стоимость лицензии: 100 долларов для ПК-версии; доступен бесплатный пробный период

Подойдёт для: коротких 2D-платформеров и RPG; кроссплатформенных игр

Примеры игр: Nidhogg, Hyper Light Drifter, Undertale, Risk of Rain

GameMaker Studio 2 – это ваша первая остановка на пути в мир геймдизайна. Данная платформа включает в себя удобные в использовании инструменты, интерфейс формата drag-and-drop и возможность писать на отдельном языке программирования под названием GML. Мы поговорили с разработчиками, создавшими на движке GameMaker ряд популярных игр, и попросили поделиться опытом работы.

Плюсы

Марк Эссен, автор игр Nidhogg и Nidhogg 2, говорит, что GameMaker отлично подходит для новичков, так как система создания скриптов в нём максимально проста и понятна, к тому же на портале Yoyo Games можно найти собрание руководств и гайдов по данной теме. В интернете также немало дополнений для движка, позволяющих кастомизировать его для создания платформера или RPG с видом сверху.

Алекс Престон, создавший Hyper Light Drifter, говорит, что коммьюнити движка GameMaker оказывает неоценимую помощь новичкам. Он отмечает, что начинающим разработчикам следует «…наладить связь с сообществом разработчиков и изучить все инструменты движка, чтобы добиться того, чего нужно – а для этого стоит обращаться за советами к бывалым разработчикам».

Минусы

Разумеется, у вас вряд ли получится сразу же создать игру, которую можно опубликовать в Steam. «Из-за того, что GameMaker проста в использовании, проекты очень часто получаются несбалансированными», говорит Эссен. «Мне нравится, что на начальных стадиях разработки можно быстро обрисовать скелет своей игры и сосредоточиться на её дизайне, однако в дальнейшем это может выйти боком, особенно если вы не придерживаетесь организационных стандартов!»

Дункан Драммонд, автор всеми любимой Risk of Rain, тоже подчёркивает, что простота использования GameMaker может стать ночным кошмаром разработчика. «На движке можно быстро создать игру, но если проглядеть на ранних этапах своих ошибки, то позднее это выльется в увеличении затрат на игру», говорит он. Драммонд отмечает, что специфика работы с GameMaker сильно отличается от работы с другими движками, поэтому если в дальнейшем вы планируете перейти на Unity или любой другой движок, то вам, скорее всего, лучше поискать иной вариант.

Советы для новичков

«Не забывайте удалять свои старые работы! Чем чаще вы начинаете игру с нуля, тем опытнее по части геймдизайна вы становитесь», — Марк Эссен, Nidhogg

«Просто начните! Запустите движок, почитайте руководства и приступайте к работе, даже если у вас толком не получается. Чем больше ошибок совершите, тем больше уроков вы вынесете», — Алекс Престон, Hyper Light Drifter

«Не бойтесь начать! Это интересный и относительно простой способ разработки, и тратит он разве что ваше время», — Дункан Драммонд, Risk of Rain

Unity

Стоимость лицензии: Бесплатный стартовый пакет, 35 долларов в месяц за пакет Unity Plus, 125 долларов в месяц за пакет Unity Pro

Подойдёт для: практически любой инди-игры

Примеры игр: Ori and the Blind Forest, Galak-Z, West of Loathing, Cuphead

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

На официальном сайте Unity можно найти и специальные дополнения, позволяющие кастомизировать движок для разработки 2D-игр. К примеру, бесплатное расширение 2D Platformer или инструменты вроде Corgi Engine и Rex Engine, предлагающие игровую физику, управление и особенности, заточенные специально под платформеры.

Мы поговорили с Джозефом Хамфри из inkle и Виктором Томпсоном из Asymmetric Publications, которые рассказали о своём опыте работы с Unity.

Плюсы

Томпсон, ранее создававший игры классическим способом, быстро стал поклонником Unity – движка, на котором была создана недавно вышедшая игра его компании под названием West of Loathing. «После 2-3 лет работы с движком больше всего меня радует то, насколько быстро можно совмещать концепты и прототипы», говорит он. «Я использовал множество различных движков – как небольшие для своих собственных проектов, так и крупные для разработки AAA-игр, однако Unity – это пока что лучший из всех движков, что я видел, так как он позволяет мне быть наиболее продуктивным».

Минусы

Впрочем, если вы собираетесь использовать одну платформу для всех своих разработок, вы столкнётесь с определёнными ограничениями. Если вы найдёте баг в Unity, вам придётся ждать, пока авторы движка его исправят, и это не всегда быстро. «Несмотря на то, что представители движка заявляют, что исправление багов является их важнейшим приоритетом, разработчики компании inkle по-прежнему считают стабильность дебаггинга одной из главных проблем движка», говорит Хамфри.

Советы для новичков

«Прежде всего, постарайтесь создать в голове конечный образ игры и сфокусируйтесь на нём – вашей конечной целью должен быть не опыт, полученный в процессе, а готовый продукт. Конечно, полезно вынести пару уроков из неудач, но, как мне кажется, намного важнее задаться целью, изучить всё, что необходимо для достижения этой цели, и в итоге реализовать задуманное», — Виктор Томпсон, West of Loathing

Ren’Py

Стоимость лицензии: Бесплатно

Подойдёт для: 2D визуальных новелл, симуляторов

Совместим с: Python

Примеры игр: Long Live the Queen, Analogue: A Hate Story

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

Джорджина Бенсли, автор Long Live the Queen, говорит по поводу Ren’py следующее.

Плюсы

«Открытый исходный код Ren’Py и его кроссплатформенность дают множество возможностей для всех пользователей движка», говорит Бенсли. «Я также считаю плюсом тот факт, что движок рассчитан на новичков, но при этом требует вносить правки в программный код игры. Это лучше, чем графический drag-and-drop интерфейс, так как это показывает, что в программировании нет ничего страшного».
Ren’Py подойдёт вам в том случае, если вас пугает сама перспектива создания игры с нуля:

«Одно из важнейших препятствий, с которым сталкивается большинство людей, ранее не работавших над созданием игр, заключается в их уверенности в том, что программирование – это нечто “слишком сложное”, а потому это попросту им не по силам. А данный движок позволяет быстро и успешно создать простую игру, что придаёт уверенности начинающим разработчикам, даже если они и не планируют в будущем выпускать одни лишь визуальные новеллы. Как только ты создаёшь нечто, во что могут играть другие, пусть даже простенький проект, ты уже не ставишь под сомнение свои способности».

Минусы

Ren’Py немного ограничен по части графических и геймплейных функций. Если вы намерены создавать игры с 3D, Live2D, системой повреждений и другими особенностями, то вам стоит поискать другие варианты.

Советы для новичков

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

ink

Стоимость лицензии: Бесплатно

Подойдёт для: текстовых приключенческих игр

Совестим с: Unity, C#, HTML

Примеры игр: 80 Days, Sorcery!

Ink – это хорошее бесплатное дополнение для Unity, если вы хотите разбавить свою игру диалоговыми ветками и расширенным повествованием. Его легко освоить, в нём не используется продвинутый код, и он бесшовно интегрируется с Unity. Как говорит создатель ink Джозеф Хамфри, данный движок является «промежуточным» — после создания скрипта в ink его можно перенести в более крупную игру на движке Unity. Тем не менее редактор Inky Editor позволяет также создавать веб-игры.

Плюсы

Создание масштабного сценария со множеством диалоговых веток может быстро превратиться в запутанную кашу, поэтому ink поможет вам не потеряться в процессе. «Авторы игр могут использовать инструменты движка для создания диалогов и текста в формате удобного интерактивного сценария с ключевыми метками», говорит Хамфри. «Затем движок ink, запущенный внутри Unity, сможет читать эти сценарии и выводить текст на экраны уже в самой игре».

Открытый исходный код играет важную роль в разработке амбициозных проектов. Хамфри отмечает, что «создаваемый на движке ink текст необязательно должен показываться в виде текста. К примеру, в игре Heaven’s Vault движок ink создаёт динамичный сценарий, который интерпретируется самой игрой в виде интерактивной графической новеллы с приключенческими элементами».

ink также является отличным инструментом для тех, кто больше заинтересован в написании сценариев для игр, а не о чистом программировании. «…Количество сценаристов, использующих ink для написания интерактивных историй, постоянно растёт», добавляет Хамфри. «Where The Water Tastes Like Wine – это один из таких примеров. Её создали авторы игры Gone Home при помощи движка ink. Над игрой работали такие известные сценаристы, как Ли Александр, Эмили Шорт и Кара Эллисон. Поэтому если вам нравится сочинять сценарии и вы интересуетесь разработкой игр, то ink может стать отличной площадкой для начала».

Минусы

ink лучше всего использовать для игр, разрабатываемых на движке Unity. Хамфри говорит, что «ink не является альтернативой Unity — это скорее дополнение. Более того, ink – это единственный инструмент для создания интерактивных сценариев, который был намеренно создан в виде промежуточного звена».

Советы для новичков

«У меня есть один-единственный совет – просто попытайтесь создать демо-игру. Если же вы хотите заполнить своё портфолио, в котором указаны примеры того, в чём вы хороши, то самое время начать заполнять его. Создавайте эти примеры!»

RPG Maker и другие движки

В начале 2017 года мы писали о внезапном появлении RPG Maker на площадке Steam и о том, как движок стремительно набирает популярность среди начинающих инди-разработчиков. Но есть и другие инструменты, на которые стоит обратить внимание:

HaxeFlixel с открытым исходным кодом и кроссплатформенностью.

Stencyl – инструмент для создания игр без использования программирования.

genapilot.ru

Десятка лучших движков для создания своих собственных игр / Хабр

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


Лучший выбор для разработчика, позволяет создавать игры как 2D, так и 3D.
Construct 2


Система для создания двумерных игр через простой интерфейс на базе HTML5. Программирования не требуется.
libGDX


Кросплатформенный фрейморк, написанный на Java и работающий с OpenGL (ES).

LÖVE


Бесплатный фреймворк с открытым кодом для разработки двумерных игр на Lua. Использование бесплатно.
MONKEY X


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


Позволяет создавать игры на HTML5 для устройств на Android.
Angel 2D


Кросплатформенный фреймворк для прототипирования двумерных игр на основе OpenGL и C++. Имеет встроенную базовую игровую функциональность.
GameMaker


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


Открытый софт, полностью бесплатный, имеет собственный встроенный язык.
MOAI SDK


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

habr.com

Создание игр — 2d движок

Мощный кроссплатформенный 2D-движок обеспечивающий высокую производительность на всех поддерживаемых платформах. Распространяется открытым исходным кодом по лицензии MIT, что означает что Вы можете использовать его в том числе и в коммерческих проектах совершенно бесплатно.


Недавно была выпущена версия 3.2.2 интерпретатора текстографических игр INSTEAD, который доступен для всех желающих сделать игру данного направления. Впрочем, он может использоваться как 2D-движок для реализации игр других жанров посредством скриптового языка Lua 5.3. Документация для разработчиков имеется.

Что касается нововведений…


Стоит отметить загрузку звуковых дополнений (запись, фильтры, эффекты, Source API и пр.). А также добавлено сжатие и кодирование файлов love.data, добавлено изменение объектов love.math, поддержаны новые форматы графики и типы текстур, реализована поддержка буферов глубины…


Компания GarageGames сделала релиз версии 3.3 своего игрового движка Torque 2D. В новой версии было сделано много мелочей, исправлено множество найденных ошибок, а также большие доработки звуковой системы для воспроизведения позиционного аудио. Кроме того, был добавлен TextSprite, который призван заменить ImageFont, дав намного большие возможности…



На днях вышел LOVE 0.10.0 «Super Toast». Среди впечатляющего списка изменений есть наиболее важное — движок теперь позволяет создавать игры для IOS и Android.

Если вам известно, порт для Android был в разработке продолжительное время, но официальный статус (и должную поддержку всего функционала движка) обрел лишь недавно.

Другие интересные нововведения включают…


Разработчик j2Ds сообщил, что его HTML5 2D-движок только что был обновлен до версии 0.4.0. Речь идёт о достаточно большом обновлении, поскольку в движок завезено очень много нового, из-за чего полностью потеряна совместимость с проектами на базе прошлой версии…


Открытый 2D-движок J2DS, разрабатываемый участниками сообщества

GcUp.ru, вчера обновился до версии 0.0.5. С этим обновлением движок получил множество усовершенствований и нововведений, среди которых стоит особо отметить такие: серьёзная оптимизация отрисовки примитивов, динамическая генерация спрайт-карт, низкоуровневый доступ к контекстам всех слоев, а также шаблонизатор для генератора текстур…



Игровой 2D-движок Windmill 2 на днях обновился до версии beta 1. В ней был реализован ряд нововведений и доработок. В частности, реализована поддержка C#, а также осуществлены рендер в текстуру, работа с XML-файлами, воспроизведение видео…


Поиск в Интернете
Друзья сайта

gcup.ru

Лучший игровой движок по версии пользователей хабра / Хабр


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

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



Unity считается одним из лучших игровых движков в отрасли. Есть бесплатная версия которая может быть использована для создания 2D и 3D игр. Она охватывает 24 платформы это: мобильные устройства, VR, десктоп, консоли и веб платформы. Среди известных игр, сделанных в Unity: Temple Run, Deus Ex: The Fall, Assassin ‘s Creed: Identity.

Unreal Engine 4 является еще одним из самых продвинутых движков для разработки игр. Он доступен бесплатно, но нужно платить 5% роялти как только ваш доход превысит отметку в 3000$. В соответствии с информацией с официального сайта вы не платите роялти если создаете: проект для кино, архитектурные проекты и визуализации. Final Fantasy VII Remake — римейк популярной Final Fantasy VII выпущенной еще в 1997 году, и Tekken 7 были созданы с помощью Unreal Engine 4. Пример разработки на UE4 можно посмотреть здесь.

Phaser это HTML5 движок с открытым исходным кодом, который в последнее время наводит много шумихи. Он хорошо поддерживается Ричардом Дэви и сообществом вокруг него. Это отличный вариант для тех, кто хочет создавать веб-игры. Разработка на Phaser выглядит так.

CryEngine один из самых популярных игровых движков, о чем свидетельствует количество «больших игр» созданых на нем: Giant, Sniper II: Ghost Warrior, Cabal II, Far Cry, Ryse: Son of Rome. Он привлек к себе внимание разработчиков после выхода Crysis. Crysis продемонстрировал новый уровень графики благодаря CryEngine. Позже, были выпущены несколько версий CryEngine с поддержкой новых функциональных возможностей.

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

До этого момента, мы рассматривали движки, которые обеспечивают контроль над разработкой. А как насчет движков, которые могут позволить вам разработать игру, не написав ни строчки кода? CONSTRUCT 2 позволяет сделать это. Вы можете начать создавать игры бесплатно, но если вы хотите в полной мере использовать функционал, вам необходимо приобрести бизнес версию.

Corona SDK предоставляет инструменты для создания кросс-платформенных игр. API позволяет создавать 2D игры, а также поможет вам создавать сложные функции, используя API на основе Lua. Кроме того, вы можете монетизировать Corona SDK с помощью Corona Ads. Разработка с помощью Corona достаточно проста благодаря тестированию в режиме реального времени. Пример разработки с помощью CORONA SDK.

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

Lumberyard это новый игровой движок выпущен Amazon, дабы помочь разработчикам воспользоваться их инфраструктурой. Amazon теперь работает не только в сфере электронной коммерции, но и в IT. Lumberyard с открытым исходным кодом. Разработка позволяет создавать игровые проекты ААА-класса для настольных ПК, игровых консолей, мобильных устройств и даже VR. За скачивание и использование движка Lumberyard не нужно платить ни копейки, но дополнительные сервисы для разработчиков платные.

libGDX это кросплатформенный фреймворк который написан на Java и работающий с OpenGL. Предлагает поддержку нескольких платформ для публикации игры. Ingress (предшественник Pokémon GO) был разработан с использованием libGDX. Поддержка сообщества также великолепна, благодаря этому вы можете получить отличную документацию для работы. Пример разработки с использованием libGDX.

HeroEngine хорошо зарекомендовал себя в создании мультиплеерных игр. Лицензия довольно дорогая и вряд ли подойдет начинающим разработчикам, но если ваш проект амбициозен, то я бы советовал рассмотреть этот вариант. Есть несколько карт для создания открытого мира и возможность их «бесшовного» соединения, могучий AI, в целом подходит для создания комплексных миссий, крафтинга и собирания ресурсов.

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

habr.com

Сделай сам: Кроссплатформенные игровые движки 2016

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

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

AppGameKit

Кроссплатформенный игровой движок, для программирования в нем имеется два решения: специальный интерпретатор BASIC (для использования простых и удобных функций типа как LoadImage, CreateSprite, PlaySound) и C++ для опытных разработчиков.

Сайт: https://www.appgamekit.com

Cocos2D

Cocos2d — кросс-платформенный фреймворк, используемый для разработки интерактивных приложений и игр (преимущественно для мобильных устройств). Является открытым программным обеспечением. Cocos2d содержит множество ответвлений, таких как Cocos2d-ObjC, Cocos2d-x, Cocos2d-html5 и Cocos2d-XNA. Также в сообществе Cocos2d имеется несколько независимых редакторов, предназначенных для редактирования спрайтов, частиц, шрифтов и тайловых карт. Можно также упомянуть редакторы мира: CocosBuilder и CocoStudio.

Сайт: http://www.cocos2d.org

Construct 2

Мощный HTML5 движок для 2D игр.

Сайт: https://www.scirra.com/construct2

Corona Labs

Один из ведущих игровых движков для 2D игр. В Corona используется Lua поверх C++/OpenGL.

Сайт: https://coronalabs.com

CryEngine

CryEngine — игровой движок, созданный немецкой частной компанией Crytek в 2002 году и первоначально используемый в шутере от первого лица Far Cry. Позже он был куплен Ubisoft, весной 2016 года компания перешла на модель распространения “плати сколько хочешь”, предполагающую возможность свободно использовать движок для разработки игр (свободное использование для неигровых приложений запрещено), код CryEngine был опубликован (под проприетарной лицензией) на GitHub.

Сайт: https://www.cryengine.com/

GameMaker: Studio

Game Maker: Studio — один из самых популярных игровых движков, позволяющий разрабатывать практически под все существующие платфоры. Studio является серьёзным развитием его предшественника — Game Maker.

Сайт: https://www.yoyogames.com/gamemaker

GameSalad Creator

GameSalad был создан еще в 2009 году и это один из ведущих игровых движков, со временем хоть и растерявший популярность (в 2012 более 15% всех новых iOS игр создавалось на нем), но все еще активно развивающийся.

Сайт: http://gamesalad.com/

GDevelop

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

Сайт: http://compilgames.net/

libGDX

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

Сайт: https://libgdx.badlogicgames.com/

Marmalade

Marmalade — популярная игровая платформа, представляющая собой набор библиотек, образцов, инструментов и документаций, необходимых для разработки, тестирования и развертывания приложений для мобильных устройств. Среди ее хитов – SimCity BuildIt, Angry Birds Stella Pop! и Plants vs Zombies.

Сайт: https://www.madewithmarmalade.com

Stencyl

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

Сайт: http://stencyl.com/

Unity

Unity — это самый популярный инструмент для разработки двух- и трёхмерных приложений и игр. На нем делается больше 80% новых мобильных 3D игр – например, недавний хит Pokemon Go был сделан как раз на Unity.

Сайт: https://unity3d.com/

Unreal Engine

Unreal Engine 4 – движок нового поколения, который позволяет создавать игры любого жанра ждя любых платформ. Благодаря использованию C++ ваши возможности практически неограниченны!

Сайт: https://www.unrealengine.com/

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

Если вы нашли опечатку — выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать [email protected].

apptractor.ru

Quad-engine. Свой 2D-движок. Когда приперло со всех сторон / Хабр

Предисловие.

Было начало 2010 года, когда я расстроился при просмотре очередного фреймворка с поддержкой Delphi. В тот момент я искал замену уже сильно устаревшему и заброшенному PowerDraw. Как говорится, тоже самое, только с перламутровыми пуговицами. Пересмотрев всё, что было из 2Д, я так и не нашел искомого. То не было шейдеров, то черезчур нагроможденный с точки зрения кода, то вообще какой-то убогий. А душа просила простоты использования и шейдеров.

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

Под катом прилично картинок.

В Марте был забронирован домен quad-engine.com, было нарисовано лого моим хорошим знакомым Weilard’ом и началась работа. На тот момент «движок» писался под игру типа собери-три, и одним из условий было обязательное наличие красивого бамп-меппинга с цветным спекуляром. В первых интерпретациях попытка сделать его была предпринята через мультитекстурирование, но результат оставлял желать лучшего. Так я лишний раз удостоверился что мне нужен мощный 2Д фреймворк с поддержкой шейдеров.

Как только с текстурированием, загрузкой и отрисовкой было покончено, сразу же все силы были брошены на прикручивание шейдеров (и пробы деллались с бамп-меппингом и спекуляром):

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

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

В реальном приложении выглядело на тот момент это так:

С игрой три-в-ряд довольно быстро всё не сложилось и решили от проекта отказаться, но «движок» потихоньку рос и обзаводился новым функционалом. Мыслей было больше чем реализованных фич, а ядро пришлось пару раз серьезно переписать.

Шейдеры

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

Шаг 1: Рисуем диффузную текстуру:

Шаг 2: Рисуем тени на диффузной текстуре:

Шаг 3: Рисуем в рендертаргет карту высот, соотвествующую месту:

Шаг 4: Рисуем в другой рендертаргет карту нормалей:

Шаг 5: Накладываем parallax oclussion mapping шейдер:

Шаг 6: Увеличиваем и обрезаем картинку, чтобы избавиться от артефактов на краях:

Симпатично, правда? Но на этом можно не останавливаться и сделать всё еще интереснее (используя при этом всё еще один только шейдер). Добавим еще немного шагов?

Шаг 7: Добавим воду, с корректировкой цвета по глубине (из карты высот):

Шаг 8: Добавим текстурку с облаками и отражения на воде, а воде добавим рябь:

Шаг 9: Сделаем воде отражающую способность пропорциональную глубине:

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

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

Псевдовекторные шрифты

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

А давайте чтобы избежать непонимания и холиваров, я попрошу просто принять тот факт, что движок писался и продолжает писаться на Delphi. Начинал писаться на Delphi 2007, сейчас поддерживается на XE5. API выбрано DirectX и никакие OpenGL мне не нужны, я с ним работал и знаю что это. На момент начала меня интересовала только платформа Windows.
Так о чем же, собственно речь?

Многие скажут, мол что же, надо брать С++ или C# и писать на нем. Здраво, но цель статьи не холивары, поэтому примем за должное. Движок начал писать для Delphi, позже адаптировав и под другие языки. Именно под Delphi недоставало такого инструмента, коим всё стало сейчас. Просто, удобно и прозрачно. И позвольте называть мои наработки «движком», это слово более русское, нежели фреймворк и мне нравится больше, хотя я и понимаю, что это только фреймворк.

Движок строился на DirectX9 таким образом, чтобы не тащить за собой никаких *d3dx* библиотек. Иными словами — кроме dll самого движка ничего не надо больше. ООП, да, всё определенно хотелось на объектах. Слабые машины, а именно поддержка интегрированного видео. Что ёще? Шейдеры, без них вообще бесполезно было и начинать.

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

Что мне помогло?

Помогли, совершенно однозначно, игры, которые я или мои друзья писали с использованием quad-engine. Каждый раз выползала какая-то необходимость, которая не была тем или иным образом учтена в движке. На текущий момент на нем пишется один большой игровой проект (разумеется большой в понятиях и рамках инди-разработчиков), и он также помогает развивать мне движок вширь, править ошибки и всячески улучшать.

Когда с шейдерами было покончено встал вопрос куда же развиваться дальше. А дальше развиваться было и остаётся куда. Я решил делать те вещи, на которые обычно закрывают глаза другие разработчики. А именно — мелочи. Мелочи пошли уже немного за грань фреймворка для рисования. Появился функционал создания окна, автоматической обработки потери Direct3D устройства и его восстановления, вместе со всеми потерянными рендертаргетами (этой проблемы уже нет в более старших версиях DirectX). Были добавлены такие вещи, как определение разрешений, аппаратные курсоры. Даже такой маленький нюанс, как убирание рамки вокруг окна, если оконное разрешение совпадает с экранным (так называемый borderless window). Иными словами всё, чтобы было удобно и просто. Все эти удобства как раз и рождались в процессе разработке игр. В частности последний вал обновлений связан с разработкой моей игры долгостроя Blast-off. Но о ней я раскажу в другой раз.

IGDC

IGDC, или если писать полностью Independent Games Developers Contests помог мне в развитии моего движка. Участники ни раз и ни два использовали разные версии движка для конкурсных работ, писали на разных языках, в том числе помогли отточить заголовочные файлы для C#. Многие из этих работ, кстати, доступны для скачивания у меня с сайта с полными исходными кодами и указанием версии библиотеки, которая была использована.
Немного видео

Лучше один раз увидеть, чем сто раз услышать, верно?


Зачем это всё?

Зачем же я написал этот пост? Рассказать как всё было, возможно кому-то окажется полезным моё творение, а кто-то может быть поможет и подскажет что сделать еще. В любом случае я буду рад любым комментариям и готов написать статью на любую заинтересовавшую вас из этого повествования тему. Раскрыть её, так сказать, полнее.

PS: Использовать можно бесплатно и без какого-либо дополнительного соглашения. Писать о том, что используете необязательно, но если в игре\программе будет указано, мне будет приятно. Если же вы используете уже, и разработка не секретная, пришлите мне весточку, я размещу на сайте в разделе showcase вашу работу.

Update: 29.09.2014 было принято решение сделать движок OpenSource. Собственно, репозиторий тут: bitbucket.org/Darthman/quad

habr.com

Какую платформу выбрать для создания мобильной игры

Денис Зарицкий

Разработчик программного обеспечения. Увлекается разработкой игр на Unreal Engine, также интересны: JavaScript, HTML5, Node.js, User Experience, онлайн-образование, искусственный интеллект и интернет-маркетинг. Любит участвовать в стартапах и интересных проектах.

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

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

Давайте взглянем на список!

Corona SDK

Corona SDK представляет собой кросс-платформенный движок для создания игр под iOS и Android. API позволяет делать 2D-игры, а также поможет вам создавать сложные функции, используя API на основе Lua. Кроме того, вы можете монетизировать Corona SDK с помощью Corona Ads. Разработка с Corona достаточно проста благодаря тестированию в режиме реального времени.

Corona включает в себя такие интересные фичи, как Corona Editor, Sublime Text plugin и многие другие. Composer GUI, доступный на OS X, предоставит вам графическую среду, в которой вы сможете создавать уровни для игр и видеть, как объекты взаимодействуют друг с другом, используя Corona’s physics engine.

Пример разработки на Corona SDK →

Unreal Engine

UE4 позволяет создавать проекты высокого качества силами небольшой группы разработчиков за счёт мощного инструментария (в частности, визуального скриптования посредством Blueprint), открытого исходного кода и постоянного роста комьюнити.

Есть бесплатная версия Unreal Engine, переход на Pro-версию обойдётся в кругленькую сумму.

Unreal Engine использует С++, на нём вы можете разрабатывать игры для iOS и Android. В движке есть мощный редактор, заключающий в себе несколько узкоспециальных редакторов. Их освоение очень поможет вам в разработке. Некоторые редакторы даже могут заменить определённые программы. Взаимодействие всех этих подсистем — просто шедевр.

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

Пример разработки на Unreal Engine →

Unity

Unity считается одним из лучших игровых движков в отрасли. Есть бесплатная версия, которая может быть использована для создания 2D- и 3D-игр. Она охватывает 24 платформы: мобильные устройства, VR, десктоп, консоли и веб-платформы.

Движок поддерживает три сценарных языка: C#, JavaScript (модификация), Boo (диалект Python). Unity имеет простой Drag&Drop-интерфейс, который легко настраивать. Он состоит из различных окон, благодаря чему можно проводить отладку игры прямо в редакторе. Проект в Unity делится на сцены (уровни) — отдельные файлы, содержащие свои игровые миры с набором объектов, сценариев и настроек.

Пример разработки на Unity →

Phaser

Phaser — это фреймворк для разработки десктопных и мобильных HTML5-игр, базирующийся на библиотеке PIXI.js. Поддерживает рендеринг в Canvas и WebGL, анимированные спрайты, частицы, аудио, разные способы ввода и физику объектов. Phaser распространяется с открытым исходным кодом по лицензии MIT. Это означает, что вы можете использовать код без ограничений, но с сохранением уведомлений об авторском праве в копиях ПО, то есть в тексте вашей лицензии необходимо будет добавить указание авторских прав на этот фреймворк. Он хорошо поддерживается Ричардом Дэви и появившимся вокруг него сообществом.

Пример разработки на Phaser →

Cocos2d-x

Cocos2d-x, появившийся в 2010 году, — это проект с открытым исходным кодом, распространяющийся по лицензии MIT. Разработка игр в Cocos2d-x строится на использовании спрайтов. С помощью этих контейнеров создаются всевозможные сцены, например игровые локации, или меню. Управление спрайтами происходит при помощи анимации или программного кода на языках C++, JavaScript или Lua. Благодаря современному визуальному интерфейсу спрайты можно легко изменять, перемещать, масштабировать и проводить с ними прочие манипуляции.

Большие ребята, такие как Zynga, Wooga, Glu, Big Fish Games, Konami, используют Cocos2d-x для разработки игр.

Cocos2D

Cocos2d — это open-source-фреймворк, совместимый с Swift и Objective-C. Он имеет поддержку iOS и OS X, а также Android через плагин SpriteBuilder Android (при условии, что ваш код написан на Objective-C). Поддержка Swift для Android находится в стадии разработки.

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

Управление сценой осуществляется через класс CCDirector, который может использовать многочисленные переходы с классом CCTransition. Он предлагает анимацию с помощью класса и действий, таких как перемещать, масштабировать и вращать CCAnimation с его CCAction-класса. Cocos2d имеет поддержку систем частиц с классом CCParticleSystem и карт плитки с классом CCTiledMap.

SpriteKit

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

CreateJS

CreateJS — это сборник различных библиотек для создания игр с открытым исходным кодом:

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

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

AndEngine

AndEngine является одним из наиболее известных бесплатных движков с открытым исходным кодом для написания 2D-игр под Android. AndEngine, как и многие другие платформы, использует OpenGL для рендеринга и Box2D для физики через расширение.

libGDX

libGDX — это кросс-платформенный фреймворк, который написан на Java и работает с OpenGL. Предлагает поддержку нескольких платформ для публикации игры. Ingress (предшественник Pokémon GO) был разработан с использованием libGDX. Поддержка сообщества также великолепна, благодаря этому вы можете получить отличную документацию для работы.

Пример разработки с использованием libGDX →

Заключение

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

lifehacker.ru

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

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