Я деякий час працював з Unity3d і виявив, що це 2D-частина з OnGUI () або GUITextures занадто незграбною. Крім того, навіть найменша гра, зроблена на Unity3d, - це принаймні 10 Мб завантаження, що занадто багато для 2D гри.
Отже, я зараз шукаю двигун для 2D. Я спробував Cocos2D, але це лише iOS, і я не хотів би переписати все на іншу мову для Android (так, наприклад, порт Java Cocos2d для Android - це не варіант). Натомість я хочу написати код один раз і з найменшими клопотами розгорнути його на iOS, Android і, можливо, Windows Phone 7. У мене є і Mac, і Windows.
Щоб детальніше розповісти, ось мої вимоги до двигуна:
- повинні бути кросплатформенними
- повинні бути ефективними
- має бути C ++, Java, C # або ціль C, оскільки мені це зручно, а НЕ Flash, Javascript, HTML5, оскільки я не веб-розробник
- повинні мати велике співтовариство, навчальні посібники, додаткові бібліотеки, які охоплюють більшість речей, які ви мали б при розробці на iOS або Android безпосередньо (виставлення рахунків у додатках, facebook тощо)
- остаточний доставлений пакет повинен бути не надто великим
- Двигун може бути безкоштовним, але я також не проти заплатити розумну ціну
Я знайшов такі двигуни:
- Marmalade (і двигун IwGame поверх нього) - C ++, виявив загалом дуже позитивні відгуки про Marmalade, але не впевнений у IwGame. EDIT (березень 2013 р.) : Схоже, SDK Marmalade тепер включає Cocos2Dx та деякі вбудовані IDE, що робить його набагато кращим (і коштує 150 доларів на рік для інді-розробника, що зі мною нормально).
- Corona SDK - Lua (ефективність сумнівна), також потрібне підключення до Інтернету для складання коду
- Cocos2d-x - C ++, отримав багато відгуків розробників, в основному позитивні, і багато хто вважає, що це найкраще для 2D
- Код частинок - Java + Eclipse, не знайдено відгуків чи коментарів
- Moai - Lua, не знайдено жодної відгуки / думки про нього
- Мавповий двигун - здається, має надто мало функцій
- Haxenme - це Flash, я ніколи не користувався цим і не хочу
- використовуйте Unity3d, але з 2D-пакетами, такими як 2D Toolkit
- порти SDL для Android (також тут ) і iOS - схоже, не має великої підтримки або поточної розробки (?)
- GLBasic - Основна мова, мені це не подобається
- playN - здається, на початку розвитку (?)
- Gamvas - HTML5, для мене не схожий на зрілий двигун
- Ігніфуга - Python, також не виглядає зрілою
- ORX - не впевнений, чи все ще розвинений (?)
- Конструкція 2 - нагадує GameMaker, може бути нормально для швидких прототипів, але точно не для ігор на рівні галузі
- XNA, а потім перенесіть гру за допомогою ExEn (знадобиться Mono Touch для порту на iOS і Mono для Android для порту на Android) - C #, і, мабуть, більше думається для людей, що надходять з продуктів Microsoft, таких як xBox (я родом з Android). Крім того, ці інструменти Mono коштують 800 доларів загалом для невеликих розробників
- Вплив - JavaScript, використовує HTML5. Я не дуже в JavaScript (наприклад, бажаний C # на Unity3d), також не впевнений у ефективності, оскільки він працює в браузері (?)
- GameMaker - власна мова сценаріїв GML, і я фактично пам'ятаю цю як інструмент для непрограмістів. Це насправді переросло у справжній двигун, я маю на увазі для серйозного розвитку?
- AppGameKit - C ++, але, здається, все ще досить новий. Не знайшли жодної рецензії на нього
- використовувати Cocos2D і Objective C для розробки лише для iOS, а потім зробіть з нього APK для Android за допомогою Stella SDK . Хтось робив це? Я впевнений, що обмеження існуватимуть, а як щодо тарифікації Google через додаток, інтеграції AdMob та Facebook на Android?
- Moscrif - JavaScript, схоже, це більше для колишніх веб-розробників
- Старлінг - Flash 11, я не дуже в Flash
- ND2D - ще не 1.0, чи має багато функцій?
Тож я буду радий, якщо ви можете прокоментувати свій досвід роботи з двигунами та запропонувати, який із списку (або що-небудь ще, що я пропустив) найкращий для описаних вимог. Я також можу помилятися з першими враженнями про деякі двигуни.
В даний час я думаю про Marmalade + IwGame як про найкращий варіант, але оскільки я не маю багато інформації про Cocos2d-x та код частинок, я не дуже впевнений у цьому.
Дякую!
EDIT (червень 2013): Поки я зробив 2 кросплатформові 2D ігри та використав Unity3D з 2D плагіном Toolkit для обох. Для гри з простим графічним інтерфейсом я використовував просту власну систему GUI, засновану на власній Unity. Для більш складного (наприклад, де елементи GUI можуть перекриватися) я використовував плагін NGUI. Нещодавно 2D Toolkit додав ще кілька класів для GUI, що дуже зручно, оскільки для поєднання NGUI з 2D Toolkit потрібно було використовувати 2 різні системи для текстурних атласів. Я обов'язково спробую це в наступній 2D грі. Основна причина вибору Unity3D для 2D ігор полягала в тому, що я вже заглибився в Unity3D як з точки зору досвіду, так і з накопичених фрагментів коду для повторного використання. Крім того, я придбав Unity3D pro (з Android Pro та iOS Pro) для 3D-ігор, і було повноцінно просто заплатити додаткові $ 60 за 2D Toolkit, щоб 2D-ігри також були охоплені. Я поки що не ' не шкодую про своє рішення, мабуть, це було оптимальним для моєї справи. Єдине, що мені боліло, - це додавання соціальних функцій до плагінів Prime31 (соціальні плагіни для Android та iOS), але я припускаю, що їх помилки не є виною Prime31, а замість цього Twitter / Facebook, тому я, ймовірно, побачив би ті самі помилки на будь-який інший двигун або плагін.
EDIT (січень 2014) : Я думаю, що з Unity 4.3 відповідь на моє запитання зараз досить очевидна: нова система спрайтів Unity і, можливо, також 2DToolkit повністю перемогли будь-що інше, особливо для людей, які (як я) були в Unity деякий час і придбав версію Pro з додатками.