Автор оригинала: FreeCodeCamp Community Member.
Я настольный игрок разработчик. При разработке новой карты я решил построить цифровой прототип, чтобы помочь мне запустить симуляцию и легко делиться доказательством концепции с сотрудниками.
У меня есть какой-то фон в JavaScript и C #, и я изложил как можно больше: потратив неподчарое количество времени в «Какую структуру), я должен использовать« потоки и документацию по чтению », не делая ничего.
Вспышка много месяцев, и теперь я провел больше времени, работающую в (и борьбу с) реагированием, единством, Godot, Construct 3, Maker Studio 2, и Phaser 3, в попытке понять, что делает их галочками.
По общему признанию, я думаю, что провел путь больше Время в каждом из них, чем необходимо, чтобы сделать мою маленькую игру, и я, вероятно, мог только что застрять с первым и добиться допуседника прототипа. Я надеюсь, что информация ниже будет полезной для кого-либо еще, кто должен делать покупки для двигателя или структуры.
Букет из предупреждений: Я не пытаюсь продать один двигатель или рамки над остальными, и я также не предлагаю, чтобы одна или любая из этих рамх будет работать на вашу игру лучше, чем другая. Я также не сравниваю ценообразование, функциональность задней части или развертывания платформы. Таким образом, в зависимости от ваших требований, информация ниже может быть различной ценностью для вас.
Кроме того, этот опыт основан на разработке для 2D-картой игры, поэтому я не буду обсуждать 3D-двигатели, физику и т. Д.
Вы также можете Перейти книзу для TL; DR.
Прототип
Моя игра, Энтроманность: хакерские бои это конкурентная игра CyberPunk Card с механикой TCG-Light. Вы можете прочитать больше на нашем Сайт или посмотрите, как это должно быть сыграно в Это видео Отказ Но достаточно сказать, что, как карта игра, требуется потенциальная цифровая структура для поддержки основных вещей, таких как государственное управление, пользовательский интерфейс, перетаскивание UX и задние крючки для реализации мультиплеера.
Учитывая эти требования, я исследовал следующие рамки и двигатели, чтобы увидеть, какой из них будет наиболее подходит для создания моей игры … вместо фактически делать Игра (я рад сказать, что теперь, когда я остановился на рамках, я гораздо больше прогресса).
Вы можете получить доступ к воспроизводимой версии здесь И хотя игру дальше, чем прототип Live, эта версия довольно стабильна (по крайней мере в Chrome).
Реагировать
Уже построил прототип генератора персонажа в Реагировать для Настольный RPG я разработал Я думал, что натуральный шаг будет состоять в том, чтобы дать рамки спин для карточной игры. Я нашел государственное управление, чтобы быть ветером (это то, что реагирует делает , в конце концов), тогда как реализация простых функций перетаскивания для карт оказалась кошмаром.
Существуют некоторые библиотеки, которые могут помочь с базовой перетаскиванием (например, ract dnd ), но я обнаружил, что с карточной игрой мне нужно более элегантное решение для капель, так как хакерские битвы очень специфики о том, какие карты можно сыграть где, и когда.
Этот опыт привел меня проверить BoardGame.io , который может работать в тандеме с реагированием. Но это в конечном итоге потребовало меня, чтобы узнать другую основу на вершине существующей структуры, которая была меньше, чем идеала для моих целей.
Единство
Из общего интереса я провел много времени в Единство Делая учебные пособия и изучение того, как использовать редактор, прежде чем пытаться передать с ним прототип карты карты. Store Asset – это отличный ресурс, и есть так много документации, официального и неофициального, там, что я был уверен, что я могу найти ответ на любой вопрос, который я мог бы столкнуться.
Мой опыт с единством до сих пор был смешанной сумкой. Мне действительно нравится работать в C #, и все, что связано с кодом, был относительно безболезненным опытом. Тем не менее, единство очень специфично относится к его реализации и может чувствовать себя противодействию.
Редактор, с другой стороны, это медведь для работы. Чтобы использовать полный потенциал Unity, вам нужно провести долгое время, пока борьба с пользователем, чтобы понять, где все есть и как его использовать. Это также отчаянно за временами с 2D-разработкой игры, явно пытается сгладить в первую очередь 3D-двигатель в плоскость 2D, со смешанными результатами.
Быть справедливым, мне очень нравится работать в редакторе единства, уволен, как оно есть. Но если вы ищете 2D игровой двигатель, ваше качество жизни будет намного выше в другом месте (посмотреть видео на системе анимации Unity или достижение совершенства пикселей, и вы увидите, что я имею в виду).
В конечном счете, обработка единства 2D-пространства немного сложнее, чем мне нужно для моего прототипа, но я вернусь к нему для других типов игр.
Кроме того, боковая панель, которая может быть полезной для некоторых: я был изначально чрезвычайно взволнован в магазине активов, с идеей, которую я мог бы приобрести шаблон игры карты, который сделает процесс разработки намного проще для меня. Это не отработало. Большинство из них были MTG/Hearthstone/etc. Клоны, которые потребуют столько же времени в разработке, чтобы реструктурировать их для моей карты карты, так как она просто начнется с нуля. <пожар>
Годовой
Моя первая мысль после встречи Годоот Был: «Игровой двигатель с открытым исходным кодом, который поддерживает C #? Запишите меня!» Затем я скачал его, работал через пару основных учебных пособий, и у него было сбой на сборку. Ухаживать
Несколько поисков Google, переустановки и волосы вытащили позже, я понял, что у него было что-то связано с моей версией VS Build (я думаю?), Что привело меня к отдельному кролику. Я знал от опыта того, что другие двигатели – во главе среди них единства – могут привести к разбиванию игровых проблем за пределами вашего собственного кода, но это было раздражающее препятствие, которое, вероятно, окрашено в остальную часть моего опыта с Godot.
С точки зрения редактора мне вполне понравилось реализацию на основе Godot, которую я фактически обнаружил контр-интуитивное исходящее от префидентов единства, но в конечном итоге нагревается. Я на самом деле пошел так далеко, чтобы сказать, что его 2D функциональность – Лучше Чем единство, но оно пропущено сообщество, магазин активов (см. Боковой панель выше), и особенно документация, которую имеет единство. Например, если вы намереваетесь работать в C # с Godot, будьте готовы искать ответы в пользовательском GDScrite двигателя, а затем перевод их в C #.
Я слышал, однако, у людей, испытывающих большой успех с Godot при использовании GDScript, поэтому, если вы готовы инвестировать время, чтобы узнать его, вы можете наслаждаться тем, что должен предложить Godot.
Строить 3
В предостережениях, которые я перечислил выше, я упомянул, что я не включая ценообразование как точку обсуждения. Тем не менее, я чувствую, что мне нужно принести это с Строить 3 , как оказалось влиятельным в моем опыте.
В отличие от других игровых двигателей, перечисленных здесь, которые, по большей части, бесплатным в использовании (Игра Maker Studio 2 имеет 30-дневную бесплатную пробную версию), подавляющее большинство функциональности конструкции находится за платной стеной, а также плата за плату за плату что. Фу.
Я действительно, Действительно Как режущий камин конструкции для простых 2D-игр. Редактор немного похоже на модернизацию от MS Paint, но он хорошо обрабатывает спрайт и управление объектами, и просто простым в использовании. Я не люблю, что использует стиль «визуального сценария», но в последнее время они добавили функцию написания обычного старого JavaScript, и кажется более или меньше работы.
Я смог раскрутить очень элементарную архитектуру для прототипа в кратчайшие сроки, прежде чем закрыть конструкцию 3 демонстрации (которая работает в браузере) … а затем пробует все это позже с новой демонстрацией. Я чувствую, как минимум для этой карты, я мог бы много работать с постройкой 3, но я просто не хочу заплатить 99 в год (или больше, как бизнес) для прототипа.
Игра Maker Studio 2
Игры Yoyo явно сделали много работы, чтобы сделать Игра Maker Studio 2 Доступна и легко навигация, и это показывает. Из всех двигателей, которые я использовал для этого проекта, мне больше всего нравится GMS редактор больше всего. Для небольшого проекта легко найти свой путь и пойти в свой бизнес. Однако я подозреваю, что более крупный проект может выйти из руки довольно быстро.
Это может повлиять на проприетарный язык студии игры, GML (хотя GMS 2 поддерживает визуальные сценарии, которые я не использовал). Он работает, но если вы приедете к нему с другого языка ООП (или, по-настоящему, любой другой широко используемый язык), вы можете поцарапать голову на реализацию или выяснить, как делать некоторые вещи. Если вы начинаете или готовы провести время, выяснение, как GMS хочет Вы, чтобы использовать GML, вы, вероятно, будете в порядке.
Я испытал некоторую цепочку с функцией перетаскивания игр-производителей студии, – а именно, обнаружение указателя мыши при перетаскивании – это маленький водный и требует, чтобы некоторые леса были правильными.
Я думаю – и это совершенно личное предпочтение и лень на моей части – что если GMS предложил возможность использовать другой, неприемный язык программирования, я бы провел время, чтобы сделать больше ущерба здесь. Я все для выравнивания нескольких навыков во время работы, тогда как проводит время, чтобы стать экспертом в редакторе GMS и GML без возможности легко применять эти знания в другом месте, не кажется достойным.
Тем не менее, это довольно работоспособный 2D-редактор, и хотя поддержка сообщества не может быть наравне с единством, она все еще довольно хорошая. Осторожно, также, что после того, как ваше бесплатное пробная версия вы должны заплатить, чтобы продолжить использование студии Game Maker 2.
Phaser 3.
Phaser – это легкий, с открытым источником JavaScript Game Framework. Вокруг есть какие-то фазерные IDes, но если вы из своего рода, который хочет работать в первую очередь в коде, вы можете затухать здесь, используя Atom, Sublime или ваш любимый редактор.
Phaser 2 был и широко используется и хорошо задокументирован с тонкой учебниками, чтобы нарисовать. Фазер 3 – наоборот. Он имеет сравнительно высокую кривую обучения для начинающих, с кучей примеров, а не много контекста вокруг них.
Многие из учебников поддерживают Phaser 2, и хотя обучение передается, код нет. Кроме того, Devs Недавно объявил, что они будут двигать поддержкой Phaser 4 (и Skyscript, а не ES6), который не отлично, если вы потратили время, работающие в Phaser 3.
Если вы не профессиональный программист (я не являюсь) и в совокупности с классами ES6 и лучшими практиками JavaScript (я не был), вы могли бы быстро разочаровать с отсутствием погашения Phaser и необходимости настроить свой Собственный и рабочий поток (я был).
Тем не менее, я обнаружил, что это стало мощным, легким базовым каркасом, которая делает много вещей в гораздо более упорядоченной моде, чем другие игровые двигатели. Функциональность перетаскивания для карточной игры был относительным ветером, а возможность отдельных типов карт в классы (вроде как префабы Unity) разделяли некоторые из когнитивных нагрузок, которые требуют такого рода игры.
Если вы являетесь разработчиком переднего конца, вы можете понравиться или комфортно с жесткими кодирующими координатами пикселей для всего, но Sheesh, это это кропотливая работа. Кроме того, если вы не в курсе всего, что JavaScript, вы, скорее всего, будете в поисках ответов в неблерных кругах, а затем применяя их к вашему проекту, который имеет свою собственную выгоду, я полагаю.
Одно другое замечание в случае неясно: Phaser 3 делает есть довольно официальная документация и примеры, но это не У сообщества или переполнения стека отвечает, что многие другие игровые двигатели наслаждаются. Если вы столкнулись с проблемой или не можете что-то понять, вам придется выяснить свое собственное решение или опубликовать ваш вопрос на сервере Phaser DiscoD, который был полезен в моем опыте.
Заключение
Учитывая все вышеперечисленное, прототип, с которым я застрял и продолжаю имер, это тот, который я построил с фазером 3. Я понимаю, что это может быть анти-климатики, так как Phaser не по своей природе «лучше», чем Другие рамки и двигатели в 2D Game Development (кроме, возможно, реагируют, что не пытается быть конкурентом в цифровом игровом пространстве).
Однако Phaser, однако, кажется, обрабатывает управление перетаскиванием и игрой для Хакерские бои более гладко, и для моих целей это важно. Мне также нравится, что использование Phaser требует, чтобы я больше сильно инвестировал в javaScript Ecosystem (ы) и сообщества, но я заинтересован в том, чтобы сделать это в любом случае, так что ощущается как бонус.
Если вы больше «Что я могу использовать, чтобы построить что-то быстро и не заботиться о контексте, в котором двигатель расположен» тип, YMMV.
TL; доктор
Реагировать: Отлично подходит для развития передней части. Не будет использовать его для игр, особенно перетаскивания.
Единство: Вы можете сделать любой тип 2d игры, если вы готовы бороться с редактором и базовыми 3D идиосинкразиями. Большая поддержка сообщества, а C # потрясающе. Asset Store существует, но не может быть полезным для ваших целей.
Годоот: Открытый исходный код и поддерживает GDScript, C #, даже C ++ и Python, если вы готовы сделать много тяжелого подъема. Хорошие 2D последствия, но не так много поддержки сообщества как нечто вроде единства. Кроме того, мой опыт был багги.
Построить 3: Действительно просто использовать, высокий барьер для входа из-за Paywall подписки. Визуальные сценарии могут включать нервы, если вы хотите использовать или изучать код, хотя сейчас есть некоторая поддержка JavaScript.
Игра Maker Studio 2: Удобный редактор с хорошей поддержкой сообщества. GML или Visual Scripting могут не быть вашей чашкой чая, если вы идете с другого популярного языка программирования, но эй, когда в Риме. Также требуется оплата после 30-дневной бесплатной пробной версии.
Фазер 3: Ожидайте кодировать все, и сделайте много поисков, чтобы выяснить, как сделать работу. Это работает для меня для этой конкретной игры и прототипа, но Phaser 4 находится на пути, поэтому есть это.
Я надеюсь, что этот пост полезен в вашем собственном процессе поиска и замечания. Я тоже хотел бы услышать о своем собственном опыте (ы) с любым из этих рамх/двигателей или других!
Если вам понравилось эту статью, пожалуйста, рассмотрите возможность Проверка моих игр и книги , Подписавшись на мой канал YouTube или Присоединение к Энтроманность Раздор Отказ
М. С. Фарзан, к.т.н. Написал и работал на громкие видеоигрные компании и редакционные сайты, такие как электронные искусства, идеальные мировые развлечения, Modus Games и MMORPG.com, и служил менеджером сообщества для таких игр, как Dungeons & Dragons Neverwinter и Массовый эффект: Андромеда Отказ Он творческий режиссер и руководящий игровой дизайнер Энтроманность: CyberPunk Fantasy RPG и автор Трилогия ночной патки Отказ Найти М. С. Фарзан в Твиттере @sominator Отказ