2D кроссплатформенные движки для разработки игр
Я некоторое время работал с Corona SDK, и мне нравится, как быстро и легко я могу создавать мощные приложения, используя Lua. Но он может компилироваться только для iOS и Android, что сейчас кажется слишком маленьким.
Мой главный интерес заключается в том, чтобы он мог компилироваться в Desktop AND 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", но их форум и веб-название "Game Engine для мобильных устройств". Не могу найти никакой информации о том, может ли она быть развернута на настольных платформах, любая информация очень ценится снова.
- 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 =(
- Сенча - Кажется, для компиляции на всех платформах, также использует Javascript, который я знаю. Но даже с V8 JS это будет хорошо работать по сравнению с другими вариантами?
- GameMaker - собственный язык сценариев GML, и я действительно помню его как инструмент для непрограммистов. Действительно ли это превратилось в настоящий двигатель, я имею в виду для серьезного развития?
- Construct2 - тот же вопрос, что и у геймера
- Corona - Lua, но только для мобильных устройств (только для Android и iOS)
- Cocos2D - Похоже, у него много опций, но вы не уверены в том же языке? Похоже, вам придется переписать весь код. Будем весьма благодарны за любую информацию, если Cocos2D может быть развернут на настольном компьютере + мобильном телефоне с практически одинаковым кодом.
- Angel2D - говорит, что он может быть развернут на все, кроме Android и использует Lua, кто-нибудь когда-либо использовал это раньше?
- libgdx --- Я видел только хорошие вещи об этом. Вот эталонный тест для libgdx, и я увидел, что он достигает 40 000 спрайтов при 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) компилируется в native на многих платформах, а не только во Flash. Windows, Mac, Linux и Android получают дополнительное встроенное развертывание или среду выполнения OpenFL под названием Neko, которая теоретически быстрее, чем Flash, а SDL 2.0 скоро позволит развернуть iOS (иш). - Спасибо Бояну.
- Qt-Project --- Просто связав здесь проект Qt, можно собрать все и иметь довольно большое сообщество со множеством сторонних библиотек, которые помогут вам еще дальше.
- Moai --- единственный известный мне движок Lua, который можно собрать для настольных компьютеров и мобильных устройств. Единственным недостатком является то, что сообщество не такое большое, а документация не самая лучшая. Но если вы можете пройти мимо них, это отличное решение, которое я сейчас использую.
- Adobe --- Не могу забыть добавить Adobe здесь, так как он может собрать все, что поддерживает Flash.
- Unity3D --- Недавно анонсированная 2D-интеграция выглядит очень многообещающе, должна быть выпущена в третьем квартале 2013 года.
- Cocos2d-x --- движок с открытым исходным кодом. Поддерживает JS, Lua, C++ и несколько платформ.
Html5 --- Кажется, что много внимания уделяется мобильным приложениям html5, вот лишь несколько инструментов, которые я нашел, которые могут помочь перенести ваш проект html5 на платформу:
Поэтому я был бы рад, если бы вы прокомментировали свой опыт работы с любыми двигателями и предложили, какой из них вы бы порекомендовали. Спасибо за помощь!
РЕДАКТИРОВАТЬ: Поскольку эта тема становится популярной, я буду добавлять другие варианты, которые я нашел со временем. Я предлагаю вам выбрать то, что вам наиболее знакомо и лучше всего подходит для вашего проекта.
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)
Если вы хотите использовать 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).
Как насчет HaxeFlixel? У нас есть большой выбор демоверсий и, конечно, поддержка кроссплатформенной разработки через Haxe + OpenFL. Это проект с открытым исходным кодом, размещенный на GitHub. Мы поддерживаем все основные платформы (включая iOS).
Вот мой игровой фреймворк Oxygine. Это открытая современная аппаратно-ускоренная 2D C++ инфраструктура для мобильных платформ и платформ ПК. Особенности: OpenGL(ES) 2, сжатые текстуры, атласы, сложные анимации / анимации / спрайты, граф сцены, шрифты, обработка событий, инструменты сборки и другие. Может быть построен поверх SDL2 или Marmalade SDK.
В основе движка лежит граф сцены, похожий на Flash. Короче говоря, вы можете называть это Flash для C++, но удобнее и быстрее. Первоначально он был разработан для мобильных платформ (iOS, Android), но может также использоваться для компьютерных игр.
Если у вас есть C# фон. Посмотрите на двойственность.
Duality - это гибкая двумерная игровая среда, полностью написанная на C#, и она здесь, чтобы вам было легче. Он предоставляет как расширяемый игровой движок, так и визуальный редактор для соответствия. Там не будет необходимости в редакторе уровней, тестовой среде или контент-менеджере, потому что двойственность сама по себе. И лучше всего: это бесплатно.
Здесь нет упоминаний об App Game Kit (AGK), поэтому позвольте мне заполнить пробел. Это в основном 2D кроссплатформенный SDK, позволяющий вам кодировать один раз на C++ или на своем "базовом" языке. Версия 2 только что получила более 400% финансирования на Kickstarter и будет иметь полную поддержку 3D, поддержку Spine (для двумерных анимированных персонажей), физику пули и целый ряд других новых функций.
У него уже есть Facebook, Twitter, куча сенсорных команд Ultrabook, Box2D и многое другое. Я использовал его с самого начала и люблю его (вы можете сказать?). Нет, я не работаю на The Game Creators (компанию, которая ее создала), хотя признаюсь, что некоторое время занимался созданием некоторых приложений.
Одна из лучших функций, с моей точки зрения, заключается в том, что вы можете разрабатывать в Windows и транслировать из IDE по Wi-Fi на любое поддерживаемое устройство, поэтому во время кодирования я могу (в течение нескольких секунд) проверить свой код на iPad, Android, Windows, Mac или Blackberry Playbook.
Gideros - это великолепный движок 2d кроссплатформенности на базе Lua, в настоящее время поддерживающий платформы Android и IOS, но еще не все. Кроме того, он обладает рядом замечательных функций, таких как мгновенное тестирование устройства, автоматическое масштабирование и автоматическое разрешение изображений, позволяющих легко настраивать экран различных размеров, а также возможность расширения каждой платформы с помощью собственных плагинов.
Я просто отвечаю, чтобы дать вам некоторое представление о том, как используется SDL. Как вы сказали ранее, это не игровой движок (на самом деле это просто библиотека). Кроме того, он вообще не объектно-ориентирован, и у вас нет простых средств анимации (вы должны сами их кодировать).
Как это работает (я использовал версию C, но, думаю, привязка Lua должна быть похожей):
Включите заголовки, необходимые для создания проекта на платформе, которую вы хотите.
Создайте свой собственный игровой цикл, в котором вы настроите (по крайней мере) целую систему обработки событий, менеджер частоты кадров и "очиститель экрана (или средство обновления)" (я настаиваю на том, что вам нужно вручную обновить экран использование подпрограммы SDL_flip_screen, которая совсем не относится к Corona).
Затем закодируйте свою игру, используя всю "механику", которую вы создали ранее.
SDL - это библиотека низкого уровня (например, не ожидайте, что у вас будет простой в использовании графический интерфейс или среда раскадровки Corona).
Наконец, эта библиотека использовалась для портирования Civilization III на Linux, так что да, она работает, но она потребует от вас много энергии, чтобы иметь что-то похожее на Corona;)
PS: я не являюсь носителем английского языка, поэтому, пожалуйста, дайте мне знать, если я не ясно:)
У вас также есть ShiVa3D, серьезный конкурент Unity3D. Он использует Lua и поддерживает множество платформ от мобильных до игровых приставок и веб-браузеров.
Очень интуитивно понятный и удобный интерфейс для работы.