Двовимірні крос-платформні механізми розробки ігор [закрито]


84

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

Мій головний інтерес полягає в тому, щоб він міг компілювати на Desktop AND Mobile. Принаймні для наступного:

  • Windows + Mac для робочого столу, як окремі програми.
  • iOS + Android для мобільних пристроїв.

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

Наразі я знайшов такі двигуни:

  • Marmalade Quick - Після подальшого вивчення Marmalade Quick може створювати лише для мобільних пристроїв!
  • IwGame - працює на вершині мармеладу і каже, що він може розгортатися на настільному та мобільному пристроях за допомогою Lua. Будь-яка інформація дуже вдячна щодо цього
  • sio2 - "SIO2 - це кроссплатформенний двовимірний і тривимірний ігровий движок на базі 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 - те саме питання, що і виробник ігор
  • 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 незабаром (ish). - Спасибі Бояну.
  • Qt-Project --- Просто зв’язавши проект Qt тут, ви можете побудувати все, і у вас є досить велика спільнота з безліччю сторонніх бібліотек, які допоможуть вам ще більше.
  • Moai --- Єдиний відомий мені механізм Lua, який можна створити для настільних ПК та мобільних. Єдиний мінус - спільнота не така велика, а документація не найкраща. Але якщо ви можете пройти їх, це чудове рішення і те, яке я зараз використовую.
  • Adobe --- Не можна забути додати сюди Adobe, оскільки він може створювати все, що підтримує Flash.
  • Unity3D --- Нещодавно анонсована двовимірна інтеграція виглядає дуже перспективною, її слід випустити Q3-Q4 2013 року.
  • Cocos2d-x --- Двигун з відкритим кодом. Підтримує JS, Lua, C ++ та кілька платформ.
  • Html5 --- Здається, на мобільних додатках html5 багато уваги, ось кілька інструментів, які я знайшов, які можуть допомогти перенести ваш проект html5 на платформу:

    1. Вбудований хром

    2. Сенча

    3. Фонегап

    4. Акселератор / титан

    5. Айсній

Тож, я був би радий, якщо б ви прокоментували свій досвід роботи з будь-якими двигунами та запропонували, який із них ви б порекомендували. Дякую за твою допомогу!

EDIT: Оскільки ця тема стає популярною, я додаю інші варіанти, які знайшов з часом. Я пропоную вам вибрати те, що вам найбільш знайоме і найкраще відповідає вашим потребам у проекті.


1
OpenFL (Haxe) збирається на рідній основі на багатьох платформах, а не лише на Flash. Windows, Mac, Linux та Android отримують необов’язкове власне розгортання або виконання OpenFL під назвою Neko, яке теоретично швидше, ніж Flash, а SDL 2.0 дозволить розгортання iOS незабаром (ish). Loom схожий (намагається залучити розробників Flash) тим, що використовує AS3-подібний ECMAScript, але не створює з нього власний код. Однак він використовує Cocos2D для рендерингу, тому теоретично він повинен бути таким же швидким, як Cocos2D
Боян Маркович

2
Ви дійсно повинні додати Cocos2d-X до списку: cocos2d-x.org
Clay

Вам слід остаточно перевірити UDK від Epic Games. Це насправді повний двигун AAA, орієнтований на модерів та розробників Indie. На жаль, в даний час він не підтримує 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

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), але може використовуватися і для ПК-ігор.

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


Я спробував (і насправді випустив готовий ігровий продукт), працює дуже добре!
Джастер

4

Тут не згадується App Game Kit (AGK), тому дозвольте мені заповнити пробіл. Це переважно 2D крос-платформний SDK, що дозволяє один раз кодувати на C ++ або на власній мові "Basic". Версія 2 щойно отримала понад 400% фінансування на Kickstarter і матиме повну підтримку 3D, підтримку хребта (для 2D-анімованих персонажів), фізику маркерів та цілу купу інших нових функцій.

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

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


4

Якщо у вас фон C #. Погляньте на подвійність.

Duality - це гнучка двовимірна ігрова система, повністю написана на мові C # - і вона тут, щоб трохи полегшити вам справи. Він забезпечує як розширюваний ігровий движок, так і візуальний редактор, який відповідає. Не буде необхідності в редакторі рівнів, середовищі тестування або менеджері вмісту, оскільки дуальність - це все саме по собі. І найкраще: це безкоштовно.


1
Приємне доповнення. Незабаром я додаю його до списку, а також ще кілька, про які я дізнався, разом із кращою організацією. Дякуємо за ваш внесок
Імена ненависті

Чи сумісний він на різних платформах?
JCPhlux

2
@JCPhlux, так це. Я не впевнений у мобільному, але він працює на моно.
Енді

Що це за fetzenet.de/blog/?page_id=697 ? Чому б і не ця подвійність.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 і підтримує багато платформ, від мобільних до ігрових приставок та веб-браузерів.

Дуже інтуїтивно зрозумілий у використанні та дуже приємний інтерфейс для роботи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.