Найпростіший, найсмішніший спосіб програмування 2D-ігор? Спалах? XNA? Якийсь інший двигун? [зачинено]


20

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

Мої вимоги: Спочатку я подивився на Flash, зробив кілька маленьких ігор, але в сумніві я сумніваюся. Я хотів би зробити досить велику стратегічну гру, в якій воювали кілька сотень одиниць одночасно, включені вибухи та анімація. Також масштабування карт. Я побачив, що в Adobe є новий 3D API для Flash, але я не знаю, чи це також покращує 2D-продуктивність, я не міг знайти нічого, пов'язаного з цим питанням, на своїх сесіях MAX10. Ви б сказали, що Flash - це хороша технологія для створення великих 2D ігор легко? Мені дуже подобається Actionscript, і я люблю, як легко все у Flash. Є кілька двигунів, які роблять це ще простіше.

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

Я дуже добре знаю рамку XNA, але для неї немає хороших двигунів, і вона працюватиме лише в Windows, що є величезним вимкненням. Ще більшим є те, що вам потрібно встановлювати перерозподільний XNA кожен раз, коли ви хочете надати гру комусь. Якщо я використовую XNA, мені доведеться виготовити всі інструменти самостійно, і, мабуть, мені доведеться виготовити їх за допомогою WPF. (Я хотів би зробити інструменти з Adobe AIR, але, на жаль, API для обробки зображень тощо набагато гірший у Flash, ніж вони є у XNA / WPF.) Тепер я знаю, що міг би зробити свій власний двигун, що підтримує кожну з цих платформ, але, чесно кажучи, це було б занадто великим рівнем роботи через API. Зрештою, я хочу зробити гру, а не двигун.

Тож виникає питання: чи може бути доступний крос-платформний (вільний чи вільний для розробки?) Двигун, який я міг би використовувати для розробки 2D? Я віддаю перевагу: C #, Actioncript. Я не проти використовувати c ++, якщо набір інструментів вище середнього, але я дуже сумніваюся, що є щось таке. Будь ласка, доведіть мене неправильно :) Отже, підсумок: Я хотів би використовувати Flash, але не знаю, чи він масштабує досить добре. Я не скриптер, я хочу реальних API, з якими я можу працювати з відповідним IDE.

Тільки для інформації я переглянув декілька альтернатив, яких я насправді шукаю вже давно. Ви б дуже допомогли мені остаточно прийняти рішення.

  • Функціональний мотор Flatredball був би ідеальним. Але я спробував їх інструменти, і, чесно кажучи, вони жахливі. Абсолютно непридатний, мені потрібно було б зробити своє напевно. Я не дивився на їх API, але якщо їх інструменти такі погані, я не схильний шукати далі.

  • Unity3D. Це дуже приємно, але мені 3D дійсно не потрібен , і це дуже багато роботи, щоб навчитися. Мені також не подобається, що це так дорого використовувати для різних платформ і що я можу кодувати це лише за допомогою сценаріїв. Ви повинні купити кожну платформу окремо. Використання редактора середня, загальний продукт достатньо хороший для більшості цілей, але навчитися цьому самому було б надмірно.

  • Шива 3D. Це виглядає досить добре, але знову ж таки: мені дуже не потрібен 3D. Корисність редактора на мою думку трохи гірша, ніж Unity3D, і мені було не ясно, як почати програмування. Я думаю, що для кодування потрібен C ++, тому це теж негатив. Я хочу повеселитися, а c # це весело;)

  • SDL. Відверто кажучи, мені все одно доведеться портувати всі ці різні реалізації SDL. І мені не подобається програмування в стилі OpenGL, це просто некрасиво. І йому потрібно c ++, я знаю, що там можуть бути деякі обгортки, але я не люблю використовувати обгортки, тому що ...

  • Irrlicht. Багато можливостей, але підтримка здається низькою, і вона орієнтована на ентузіастів. C # прив'язки опускаються повторно. Я не любитель двигунів, я просто хочу зробити гру. Я не бачу, щоб це сталося з Іррліхтом.

  • Ogre3D. Занадто багато роботи, це просто графічний двигун. Також немає підтримки декількох платформ і c ++.

  • Torque2D. Коштує щось корисне, і я не чув багато хорошого про підтримку та документацію. Також коштує додаткові витрати на кожну платформу.


Засоби FRB SDK погані (зокрема, клеєм я не користуюся), але економлять час на їх написання, а формати файлів - прості, якщо писати власні інструменти потрібно. API не так вже й поганий і, здається, підходить для цієї сфери, найбільша проблема зараз - відсутність порту XNA 4.0 для ПК та Xbox. Крім того, перелік XNA та інші попередні запити можуть бути частиною інсталяції - і, використовуючи clickkonce, ви можете мати автоматичне оновлення та розгортання.
Оскар Дювеборн

Ну, моя думка полягає в тому, що я б не користувався ними, а значить, інструменти марні. Вони продовжують врізатися в мене на додаток до поганого інтерфейсу користувача / загального почуття. Що робити, якщо виявиться, що вони пропускають певну особливість? Навіть якби вони були з відкритим кодом, я не хотів би ходити нікуди біля цих баз кодів. Здається, це суворо, але мені дуже хочеться трохи розслабленого програмування, і ФРБ здається фруктом розчарування. Уявіть собі: я спробував редактор частинок і не зміг навіть знайти кнопку, щоб відкрити файл зображення. Це, мабуть, єдина найважливіша особливість, на якій базується все інше.
Максі

Не повна відповідь, але Flash масштабує краще, ніж ви могли б подумати. Якщо замість використання стека дисплея ви переплетете на полотно бітмапдату і зробите деякі інші прості оптимізації, ви можете вичавити з нього набагато більше, ніж здається, при більш наївному рішенні.
Gregory Avery-Weir

На панелі властивостей випромінювача списокitem у редакторі частинок називається просто "текстурою" ^^ На всіх інструментах є навчальні посібники, завдяки чому творці вмісту, що не кодують, можуть допомогти. Але так, користувацькі інтерфейси дійсно жахливі з точки зору дизайну взаємодії.
Оскар Дувеборн

1
Що стосується того, що XNA є лише Windows, існує реалізація API з XNA під назвою MonoGame з відкритим кодом, який працюватиме на всіляких платформах, які не є Windows: cocoa-mono.org/archives/400/… Я не використовував його сам, але вона існує.
хаосТехнік

Відповіді:


10

Пігама на сьогоднішній день моя найулюбленіша. Оскільки програмування в python означає, що ви будете програмувати швидко, а оскільки 2D речі швидко робити, pygame буде веселою ...


Як бонус, якщо ви вирішите перейти в 3d-світ, є піглет, який загортає GL у зміїну шкіру;)
Wayne Werner

9

Я вже деякий час використовую LÖVE і мені це дуже подобається. Вам доведеться вчитися Луа, але це все-таки цікаво вивчити маленьку мову. Люди на форумі надзвичайно корисні.


Яка вистава? що IDE можна використовувати?
Максі

1
Я другий це. Ми використовували Lua та LOVE для нашої гри Global Game Jam, і це вийшло фантастично. Вони зібрали безліч справді чудових бібліотек з відкритим кодом під одним загальним API, і кожен випуск стає все кращим. Продуктивність чудова (Lua швидко палає!), І багато вдосконалених функцій OpenGL, таких як FBO, піддаються впливу, що рідко для багатьох 2D двигунів. На додаток до всього цього добро, це крос-платформа (Win / Mac / Linux). Я б точно визначив це.
Боб Сомерс

1
@Maxi: з любов'ю вам просто потрібен редактор і консоль, на якій можна писатиlove .
egarcia

2
Росіяни чи грали з цим? Це було б з Росії з любов'ю: P
Барт ван Хекелом

5

Я вирішив піти з Flash. Новий API Molehill 3D також може бути використаний для малювання 2D спрайтів у 3D-просторі набагато швидше. Я не бачу причин, чому Flash не повинен бути досить швидким для гри, яку я описав раніше. Мені доведеться будувати інструменти самостійно, але мені, мабуть, це потрібно було б зробити. Використання AIR для створення інструментів також є досить акуратним на мою думку. Flash також має найширший доступ з платформами, що класно.


Спробуйте Cocos2d-x . Це те, що я використовую для розвитку своєї інді-гри.
Стівен Фурлані

1
Flash, мабуть, хороший вибір, оскільки там є дуже хороші (зрілі) інструменти та бібліотеки для спалаху. API Molehill зніме велике навантаження з процесора (раніше всім займався процесор). Ви все ж повинні думати про розподіл своєї гри. Flash зазвичай означає гру на основі браузера ...
bummzack

І подбайте про мобільні ігри, флеш та мобільні телефони - це така погана комбінація.
Густаво Масьєль

" І подбайте про мобільні ігри, флеш та мобільні телефони - це така погана комбінація. " @Gtoknu, будь-яка причина чому?
NemoStein

@NemoStein Спробуйте пошукати на YouTube якийсь спалах, який працює в мобільних телефонах. Крім того, Adobe припинила свою розробку Flash для android, і для iOS немає спалаху.
Густаво Масель

4

Спробуйте SFML


Хоча корисно, SFML - це лише графічний / мережевий / звуковий API, не зовсім повнофункціональний ігровий механізм (хоча він досить близький).
a_m0d

2

Спробуйте Cocos2d-x . Це те, що я використовую для розвитку своєї інді-гри.

Це випробувана і справжня платформа OpenGL (ES), яка має звук, фізику і навіть маленький 3D, який вже деякий час вийшов на iPhone, і тільки приходить на інші платформи.


2

Оскільки ви сказали, що вам подобається Actionscript, але ви шукаєте крос-платформу, погляньте на HaXe + NME . HaXe - мова, схожа на Actioncript, але може компілюватись у Flash, Javascript, PHP або C ++. NME - це бібліотека, схожа на графічну бібліотеку Flash, але працює і на інших платформах. Ця комбінація дозволяє компілювати на безліч різних платформ.

Я ще не використовував NME, але мій перший тест з HaXe + Molehill (всього кілька днів тому) дав 60 кадрів в секунду під час надання 10 000 обертових спрайтів 16х16 на моєму ноутбуці. Я використовую HaXe лише кілька днів і не маю достатнього досвіду роботи з ним, щоб бути впевненим, що це правильно для вас, але це варто переглянути.


1

Я особисто великий шанувальник Allegro 5 , але це C API. І все-таки, це простий API, який виходить з вашого шляху і забезпечує доступ до:

  • 2D-графіка (підкріплена OpenGL або D3D, залежно від платформи)
  • Звук
  • Шрифти (включаючи растрові та TTF)
  • Введення (миша та клавіатура)
  • PhysicsFS (віртуалізація файлової системи)
  • Завантаження зображень

5.1 також буде додаватися підтримка шейдера.

SDL 1.3 також формується досить добре. Здається, Сем робив внесення основних змін в API, і те, що вже є, вже досить стабільне. Все-таки ... це ще не бета-версія, і Allegro 5.0 виходить.

Зрозуміло, для складніших і складних ігор ви, мабуть, захочете з'єднати Allegro 5 з якоюсь бібліотекою фізики (наприклад, Box2D ). Тим не менш, ви можете пройти дуже довгий шлях і весело провести час, не маючи нічого іншого, ніж Allegro 5, стандартну бібліотеку C або C ++ та власний код.

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