2D кроссплатформенные игровые разработки

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

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

  • 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 Engine - 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 - Тот же вопрос, что и gamemaker
  • Corona - Lua, но только для мобильных устройств (только для Android и iOS).
  • Cocos2D - Кажется, у него много вариантов, но не уверен с тем же языком? Похоже, вам придется переписать весь свой код. Любая информация, если cocos2D может развернуть на рабочий стол + мобильный телефон с почти одним и тем же кодом, будет с благодарностью.
  • Angel2D - Говорит, что он может развертываться во всем, кроме Android, и использует Lua, кто-нибудь когда-либо использовал это раньше?
  • libgdx --- Я видел только хорошие вещи об этом. Вот тестовый тест для libgdx, и я увидел, что он достиг 40k спрайтов со скоростью 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, и я слышал, что он не получит будущие обновления, но достаточно стабилен? Дополнительная информация приветствуется.
  • Citrus --- Не так много информации о Citrus. AS3, который может работать для iOS, Android, Windows, Mac и других.
  • Haxe + OpenFL--- OpenFL (Haxe) строит для native на многих платформах, а не только для Flash. Windows, Mac, Linux и Android все получают дополнительное встроенное развертывание или время исполнения OpenFL под названием Neko, которое теоретически быстрее Flash, и SDL 2.0 вскоре включит развертывание iOS (ish). - Благодаря Бояну.
  • Qt-Project --- Просто связать проект Qt здесь, можно построить для всего и иметь довольно большое сообщество с большим количеством сторонних библиотек чтобы помочь вам еще больше.
  • Moai --- Единственный движок Lua, который я знаю, который может быть создан для настольных компьютеров и мобильных устройств. Единственным недостатком является то, что сообщество не так уж и велико, и документация не самая лучшая. Но если вы можете передать их, это отличное решение и тот, который я сейчас использую.
  • Adobe --- Не могу забыть добавить здесь adobe, поскольку он может построить все, что поддерживает флеш.
  • Unity3D --- Недавно анонсированная 2D-интеграция выглядит очень многообещающей, должна быть выпущена Q3-Q4 2013 года.
  • Cocos2d-x --- Механизм с открытым исходным кодом. Поддерживает JS, Lua, С++ и несколько платформ.
  • Html5 --- Кажется, что очень много внимания уделяется мобильным приложениям html5, вот лишь несколько инструментов Я обнаружил, что может помочь переносить ваш проект html5 на платформу:

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

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

80
задан Hate Names 11 июля '13 в 6:47
источник поделиться

9 ответов

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

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

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

9
ответ дан Christian Feldbacher 11 июля '13 в 13:25
источник поделиться

Если вы используете 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), поэтому он тоже очень быстрый.

Вот speakerdeck, который дает вам некоторый фон и обзор (специфичный для Android).

6
ответ дан dirkjot 25 окт. '13 в 22:22
источник поделиться

Как насчет HaxeFlixel? У нас есть большой выбор demos и, конечно же, поддержка кросс-платформенной разработки через Haxe + OpenFL. Это проект с открытым исходным кодом, размещенный на GitHub. Мы поддерживаем все основные платформы (включая iOS).

5
ответ дан CrazySam 03 окт. '13 в 18:04
источник поделиться

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

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

enter image description here

5
ответ дан Denis Muratshin 30 сент. '13 в 0:02
источник поделиться

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

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

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

4
ответ дан Steve H 03 сент. '13 в 18:40
источник поделиться

Если у вас есть фон С#. Посмотрите на Duality.

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

4
ответ дан Andy 28 сент. '13 в 9:59
источник поделиться

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

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

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

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

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

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

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

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

2
ответ дан Julien 30 сент. '13 в 1:16
источник поделиться

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

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

1
ответ дан Exsigth 31 окт. '13 в 19:04
источник поделиться

Другие вопросы по меткам