Механизмы разработки кроссплатформенных 2D-игр [закрыто]

84

Некоторое время я работал с Corona SDK, и мне нравится, насколько быстро и легко я могу создавать мощные приложения с помощью Lua. Но он может компилироваться только для iOS и Android, чего сейчас кажется слишком мало.

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

  • Windows + Mac для настольных ПК как отдельные приложения.
  • iOS + Android для мобильных устройств.

Я бы предпочел, чтобы он больше склонялся к сценариям типа Lua, а не к ActionScript, но, пожалуйста, не стесняйтесь публиковать все, с чем вы работали и что любите.

Пока что я нашел следующие двигатели:

  • Marmalade Quick - после дальнейшего изучения, Marmalade Quick можно создавать только для мобильных устройств!
  • IwGame - работает поверх мармелада и заявляет, что его можно развернуть на настольных компьютерах и мобильных устройствах с помощью Lua. Любая информация приветствуется по этому поводу
  • sio2 - говорит: «SIO2 - это кроссплатформенный 2D и 3D игровой движок на основе OpenGLES для iOS, Android, MacOS и Windows» и «Движок также позволяет вам переносить вашу игру в Mac Store и Windows», но их форум. а веб-название - «Игровой движок для мобильных устройств». Не могу найти никакой информации о том, можно ли его развернуть на настольных платформах, любая информация снова приветствуется.
  • Ткацкий станок - Loom похож на Haxe + OpenFL (пытается привлечь разработчиков Flash) в том, что он использует AS3-подобный ECMAScript, но не создает из него собственный код. Однако он использует Cocos2D для рендеринга, поэтому теоретически он должен быть таким же быстрым, как Cocos2D. - Спасибо Бояну.
  • SDL - я читал во многих местах, что SDL можно развернуть практически на любой платформе или устройстве и имеет привязку Lua. Но я не могу найти, как это работает, потому что это не двигатель. Еще раз очень благодарен всем, кто может объяснить, как это работает, и если это возможно.
  • SFML - «Windows, Linux, Mac OS X и скоро Android и iOS.» Не использует Lua, но может использовать другие языки, такие как Java и Python и т. Д. У кого-нибудь есть информация по этому поводу?
  • Torgue2D - «Torque 2D был разработан с учетом устройств OS X, Windows и iOS и одинаково хорошо работает на всех платформах». использует TorgueScript и не использует Android = (
  • Sencha - похоже, компилируется для всех платформ, также использует Javascript, который я знаю. Но даже с V8 JS будет ли это работать хорошо с точки зрения производительности по сравнению с другими вариантами?
  • GameMaker - собственный скриптовый язык GML, и я помню его как инструмент для непрограммистов. Неужели он превратился в настоящий движок, я имею в виду серьезную разработку?
  • Construct2 - тот же вопрос, что и создатель игры
  • Corona - Lua, но только для мобильных устройств (также только для Android и iOS)
  • Cocos2D - Кажется, у него много опций, но вы не уверены в том же языке? Похоже, вам придется переписать весь код. Мы будем очень благодарны за любую информацию, если cocos2D можно развернуть на настольных компьютерах и мобильных устройствах с почти тем же кодом.
  • Angel2D - говорит, что его можно развернуть на все, кроме Android, и использует Lua, кто-нибудь когда-нибудь использовал это раньше?
  • libgdx --- Я видел в этом только хорошее. Вот эталонный тест для libgdx, где я видел, как он достиг 40 тыс. Спрайтов со скоростью 60 кадров в секунду. http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml . Кажется, libgdx едва ли превышает 30 КБ. Но все равно кажется потрясающим. Для меня это на том же уровне, что и Qt, почти идеально, за исключением того, что я не особо беспокоюсь о производительности на нем. libgdx может собирать практически все.
  • XNA + MonoGame --- производительность MonoGame лишь немного ниже, чем у libgdx, его можно собрать на большинстве платформ. Однако я мало что знаю о XNA и слышал, что он не будет получать обновления в будущем, но работает ли он достаточно стабильно? Дополнительная информация приветствуется.
  • Цитрус --- Не так уж много информации о Цитрусе. Игровой движок AS3, который можно создавать для iOS, Android, Windows, Mac и др.
  • Haxe + OpenFL --- OpenFL (Haxe) строится на многих платформах, а не только на Flash. Windows, Mac, Linux и Android получают необязательное собственное развертывание или среду выполнения OpenFL под названием Neko, которая теоретически быстрее, чем Flash, а SDL 2.0 скоро позволит развертывать iOS (иш). - Спасибо Бояну.
  • Qt-Project --- Просто свяжите здесь проект Qt, можно собрать все, и у него довольно большое сообщество с множеством сторонних библиотек, которые помогут вам еще больше.
  • Moai --- единственный движок Lua, который я знаю, который можно построить для настольных и мобильных устройств. Единственным недостатком является то, что сообщество невелико, а документация не самая лучшая. Но если вы можете пройти их, это отличное решение, и я использую его сейчас.
  • Adobe --- Не забудьте добавить сюда Adobe, так как он может быть встроен во все, что поддерживает flash.
  • Unity3D --- Недавно анонсированная 2D-интеграция выглядит очень многообещающей, она должна быть выпущена в 3–4 кварталах 2013 года.
  • Cocos2d-x --- движок с открытым исходным кодом. Поддерживает JS, Lua, C ++ и несколько платформ.
  • Html5 --- Кажется, много внимания уделяется мобильным приложениям html5, вот лишь несколько инструментов, которые я нашел, которые могут помочь перенести ваш проект html5 на платформу:

    1. Встроенный хром

    2. Сенча

    3. Телефонный разрыв

    4. Appcelerator / Титан

    5. Icenium

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

РЕДАКТИРОВАТЬ: Поскольку эта тема становится популярной, я буду добавлять другие варианты, которые я нашел со временем. Я предлагаю вам выбрать то, что вам больше всего знакомо и лучше всего подходит для вашего проекта.

Ненавижу имена
источник
1
OpenFL (Haxe) строится на многих платформах, а не только на Flash. Windows, Mac, Linux и Android получают необязательное собственное развертывание или среду выполнения OpenFL под названием Neko, которая теоретически быстрее, чем Flash, а SDL 2.0 скоро позволит развертывать iOS (иш). Loom похож (пытается привлечь разработчиков Flash) в том, что он использует AS3-подобный ECMAScript, но не строит из него собственный код. Однако он использует Cocos2D для рендеринга, поэтому теоретически он должен быть таким же быстрым, как Cocos2D
Боян Маркович
2
Вам действительно стоит добавить Cocos2d-X в список: cocos2d-x.org
Clay
Вам обязательно стоит попробовать UDK от Epic Games. На самом деле это полноценный движок AAA, предназначенный для модеров и инди-разработчиков. К сожалению, в настоящее время он не поддерживает Android, хотя они сделали более доступным полное лицензирование UE4, которое поддерживает Android. Имейте в виду, что UE4 только что был выпущен, а UDK - довольно развитая платформа.
Игорь Кордаш
Также, если вам нужно что-то с открытым исходным кодом и переносимое (на основе Java), см. JMonkeyEngine.
Игорь Кордаш

Ответы:

9

Я бы порекомендовал V-Play (v-play.net) - это кроссплатформенный игровой движок, основанный на Qt для iOS, Android, Symbian, MeeGo, Blackberry10, а также может экспортировать в нативные настольные приложения для Windows, Mac и Linux.

Он основан на C ++, но имеет аккуратную поддержку сценариев для QML и JavaScript . QML легко изучить и может повысить вашу продуктивность, поскольку требуется меньше кода - просто посмотрите сравнение с cocos2d-x (на 60% меньше Loc) или Corona (на 15% меньше LoC) для сравнения тех же игр.

(Отказ от ответственности: я один из парней, стоящих за V-Play)

Кристиан Фельдбахер
источник
1
Хотя я уверен, что V-Play - отличный продукт, вы должны заявить, что являетесь соучредителем. См .: meta.stackexchange.com/a/59302
Nepoxx 01
1
Конечно - я только что добавил это
Кристиан Фельдбахер
7

Если вам нравится Python, Kivy - отличное решение в наши дни. Он компилируется для всех запрашиваемых вами платформ:

Kivy работает на Linux, Windows, MacOSX, Android и IOS. Вы можете запустить один и тот же код на всех поддерживаемых платформах. Он может использовать большинство протоколов ввода и устройств, таких как WM_Touch, WM_Pen, Mac OS X Trackpad и Magic Mouse, Mtdev, Linux Kernel HID, TUIO. Включен симулятор мыши с несколькими касаниями.

Kivy использует много оптимизированного кода для рендеринга графики (через Cython), поэтому он тоже работает быстро.

Вот колонка, которая дает вам некоторую предысторию и обзор (для Android).

диркджот
источник
Хотя kivy может использоваться для разработчиков игр, это не совсем игровой движок, однако kivyent (kivent.org) - это игровой движок, основанный на kivy, который может быть более подходящим, если, может быть, ваша игра очень проста и не требуют дополнительной сложности.
Tshirtman
5

Вот мой игровой фреймворк Oxygine . Это современный аппаратно-ускоренный 2D-фреймворк C ++ с открытым исходным кодом для мобильных платформ и платформ ПК. Возможности: OpenGL (ES) 2, сжатые текстуры, атласы, сложная анимация / анимация / спрайты, граф сцены, шрифты, обработка событий, инструменты сборки и другие. Может быть построен на основе SDL2 или Marmalade SDK.

В основе движка - граф сцены, аналогичный Flash. Короче говоря, вы можете назвать это Flash для C ++, но это удобнее и быстрее. Изначально он разрабатывался для мобильных платформ (iOS, Android), но может использоваться и для компьютерных игр.

введите описание изображения здесь

Денис Мурашин
источник
Я пробовал (и фактически выпустил готовый игровой продукт), работает очень хорошо!
Juster
4

Никакого упоминания о App Game Kit (AGK) поэтому позвольте мне заполнить пробел. Это в основном 2D кроссплатформенный SDK, позволяющий кодировать один раз либо на C ++, либо на собственном «базовом» языке. Версия 2 только что получила более 400% финансирования на Kickstarter и будет иметь полную поддержку 3D, поддержку Spine (для 2D-анимированных персонажей), физику пули и множество других новых функций.

У него уже есть Facebook, Twitter, набор команд сенсора Ultrabook, Box2D и многое другое. Я использую его с самого начала, и он мне нравится (вы можете сказать?). Нет, я не работаю в The Game Creators (компании, которая его создала), хотя признаю, что какое-то время делал некоторые приложения.

Одна из лучших функций, с моей точки зрения, заключается в том, что вы можете разрабатывать в Windows и транслировать из IDE через Wi-Fi на любое поддерживаемое устройство, поэтому, пока я пишу код, я могу (в течение нескольких секунд) протестировать свой код на iPad, Android, Windows, Mac или Blackberry Playbook.

Стив Х
источник
4

Если у вас есть опыт работы с C #. Взгляните на дуальность.

Duality - это гибкий фреймворк для 2D-игр, полностью написанный на C #, и он здесь, чтобы вам было немного легче. Он предоставляет как расширяемый игровой движок, так и соответствующий визуальный редактор. Вам не понадобится ни редактор уровней, ни среда тестирования, ни контент-менеджер, потому что Duality - это все само по себе. И самое главное: это бесплатно.

Энди
источник
1
Хорошее дополнение. Я скоро добавлю его в список, а также еще несколько, о которых я узнал, а также улучшу его организацию. Спасибо за ваш вклад
Hate Names
Совместима ли она с кросс-платформой?
JCPhlux
2
@JCPhlux, да, это так. Я не уверен насчет мобильного телефона, но он работает в моно.
Энди
Что это за fetzenet.de/blog/?page_id=697 ? Почему не этот duality.adamslair.net
RS
Исправлена. Думаю, они переехали вскоре после того, как я опубликовал свой ответ - github.com/AdamsLair/duality/issues/45
Энди
2

Я просто отвечаю, чтобы дать вам некоторое представление о том, как используется SDL. Как вы уже сказали, это не игровой движок (на самом деле это просто библиотека). Кроме того, он вообще не объектно-ориентирован, и у вас нет простых средств анимации (вам придется их кодировать самостоятельно).

Как это работает (я использовал версию C, но, думаю, привязка Lua должна быть похожей):

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

Создайте свой собственный игровой цикл, в котором вы настроите (как минимум) всю систему обработки событий, диспетчер частоты кадров и «средство очистки экрана (или средство обновления)» (я настаиваю на том, что вам придется вручную обновлять экран с помощью процедуры SDL_flip_screen, что не является одной из ваших проблем с Corona).

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

SDL - это библиотека низкого уровня (например, не ожидайте, что у вас будет простой в использовании фреймворк графического интерфейса или фреймворк раскадровки Corona).

Наконец, эта библиотека использовалась для переноса Civilization III на Linux, так что да, она работает, но потребует много энергии, чтобы иметь что-то вроде Corona;)

PS: Я не являюсь носителем английского языка, поэтому, пожалуйста, дайте мне знать, если я не понял :)

Жюльен
источник
2

Gideros - отличный двухмерный кроссплатформенный движок на основе Lua , который в настоящее время поддерживает платформы Android и IOS, но это еще не все. И он также имеет некоторые замечательные функции, такие как мгновенное тестирование устройства, автоматическое масштабирование и автоматическое разрешение изображения, чтобы легко настраивать различные размеры экрана, а также возможность расширения каждой платформы с помощью собственных плагинов.

Артурс Сосиньш
источник
1

У вас также есть ShiVa3D , серьезный конкурент Unity3D. Он использует Lua и поддерживает множество платформ от мобильных до игровых консолей и веб-браузеров.

Очень интуитивно понятный в использовании и очень приятный интерфейс для работы.

Exsigth
источник