Які бібліотеки C # можна використовувати для підтримки ігор? [зачинено]


58

Оскільки ігри засновані на багатьох різних підсистемах, таких як графіка (DirectX, OpenGL, ...), звук (OpenAL, Ogg Vorbis, ...) або фізика (зіткнення, ...), які бібліотеки ви знаєте, які корисні для розвитку ігор в C # і які переваги вони пропонують?

Відповіді:


63

Графіка / Звук

  • XNA обгортка високого рівня на DirectX9. Дозволяє швидко вставати і працювати. Підтримує ПК, Xbox360 та Windows Phone 7. Підтримка звуку Xact також як власний API SoundEffect.
  • Обгортка нижнього рівня SlimDX на DX9 / 10/11 . Якщо його в DX SDK, його тут обгорнули.
  • OpenTK Wrapper на OpenGL / AL.
  • SDL.net Порт популярної версії SDL.

Двигуни

  • WaveEngine Component, заснована на архітектурі ігрового двигуна, C # api, 2d та 3d фізики, прекрасні візуальні ефекти, кросплатформна підтримка Android, Linux, Mac, iOS та Windows, вдосконалена система компонування та багато іншого.
  • NeoAxis 3D-двигун з підтримкою фізичного двигуна NVIDIA PhysX, прив'язки C #, підтримує форми WPF & Windows Forms, багатий вибір таких інструментів, як карта, об’єкт, модель, матеріал, редактори місцевості, в ігровому браузері за допомогою Chromium, Pathfinding з Navigation Mesh та ін.
  • TorqueX 2D / 3D двигун для XNA. Хороша підтримка редактора, гаражні ігри нещодавно реінвестували в двигун після періоду занедбаності.
  • truevision 3d C ++ ігровий движок з c # прив'язкою
  • Аксіома Переписування Огре в c #. Підтримує численні резервні API візуалізації.
  • Unity - це графічний / ігровий двигун C ++, який підтримує сценарій геймплея в C
  • AngelXNA Порт рамки прототипування кутів з відкритим кодом EALA

Фізика

  • Farseer Популярний 2D-фізичний двигун, підтримує .net (робочий стіл), компактний (xbox) та мікро (срібло).
  • Jitter відносно новий двигун з фізики 3D, набагато краще, ніж його завершення.
  • Box2Dx Прямий порт box2D
  • Box2D.XNA Ще один порт Box2D для XNA; останнім часом, ніж Box2Dx
  • JigLib
  • BulletX C # порт Bullet, здається, покинутий.

1
Чудовий огляд, саме така відповідь я шукав!
Майкл Клемент

2
Оскільки XNA - це така велика спільнота, я хотів би додати Henge3D до фізики, Sunburn до графіки та sgMotion та XNAnimation до графіки (або анімації).
Chris Ridenour

TorqueX більше не підтримується гаражними іграми.
Маркус

3
За роки, коли ця відповідь була вперше опублікована, Microsoft перестала підтримувати XNA. Ця бібліотека, мабуть, більше не є ідеєю використовувати, замість цього використовуйте MonoGame.
поштовх

10

Очевидно, є XNA від самого Microsoft: http://creators.xna.com/en-US/ Ігри, зроблені за допомогою роботи XNA в Windows та (через клуб Creators) на Xbox360. Я думаю, що це ідеально, щоб намочити ноги у швидкому розвитку гри. У мене ще не було мокрій ноги в XNA належним чином, тому я ще не можу про це судити. Але, дивлячись з кулуарів, це виглядає як найкраще з нарізаного хліба. Звичайно, ви не можете зробити що-небудь з цим. Але ви можете виготовляти швидкі прототипи та робочі ігри інді-якості та більше.

Інша бібліотека - SlimDX - http://slimdx.org/, яка може сказати, що вона ближче до металу / реальності, якщо ви не хочете працювати з XNA. Таким чином, чудово підходить для швидкого прототипування, особливо якщо ваша основна гра розвивається на C або C ++. Також відмінно підходить для роботи з інструментами.


3
SlimDX також має перевагу бути сумісним з підтримкою взаємодії WPF Direct3D, що (в залежності від типу гри, яку ви розробляєте) може бути дуже корисною. Офіційної підтримки інтеропу WPF / XNA немає, і хоча я вважаю, що деяким людям вдалося змусити цих двох працювати разом, процес був зламаним та крихким.
Майк Стробель

Я хотів би додати , що це спроба отримати XNA працює крос-платформний з Mono (див MonoXNA), які могли б фактором у вирішенні яких рамки для використання.
Майк Стробель

@Mikw Strobel: +1, але пам’ятайте, що великою точкою продажу для XNA є можливість розгортання / продажу до 360, а всі речі WPF / XNA, які я бачив, не працюватимуть на 360.
Стівен Еверс

4

Також є порт бібліотеки С SDL до .NET, SDL.NET . Я особисто використовував XNA в C #, тому що це просто добре складена бібліотека, дуже налаштована, а також зручна для початківців.


XNA є доброзичливим для початківців, але він також знаходиться в потоці (особливо) зараз. У 4.0 буде багато змін, і це буде прикро, щоб не відставати, коли ви змочуєте ноги.
Стівен Еверс

4

Відмова від відповідальності: Наступна рекомендація може бути або не бути упередженою через мою особисту участь у розробці цього двигуна.

Dual - це розширювана 2D-ігрова система, яка постачається із системою редакторів WYSIWYG. Швидкий огляд:

  • Це на основі плагінів . Ви пишете не нову програму, а плагін, який містить весь ваш код.
  • Плагіни мають функцію перезавантаження з редактора. Дозволяє швидку ітерацію.
  • Open Source , повністю написаний на C #, заснований на OpenTK / OpenGL / OpenAL
  • Відносно нові (2 - 3 роки) та ще в розвитку - але вже придатні для використання .
  • Обробляє візуалізацію, аудіо, введення користувачів, фізику, серіалізацію, управління ресурсами та об'єктами
  • Багато початкових класів та компонентів за замовчуванням для початку роботи.

У випадку, якщо ви хочете перейти, ви можете безпосередньо завантажити останній бінарний випуск або скласти його самостійно, використовуючи вихідний код з GitHub . Щоб отримати додаткову інформацію, відвідування інформаційного веб-сайту та форумів спільноти може окупитися. Просто перейдіть за посиланнями з інформаційного веб-сайту, який я включив вище.

Скріншот середовища редагування.


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

@JoshPetrie Ви можете мати рацію. Я не був впевнений, має значення чи ні в даному конкретному контексті - все одно я зараз додав відмову від відповідальності. :)
Адам


3

З боку інструментів неймовірною корисною бібліотекою є " Рамка керованого розширення ", яка фактично є частиною .Net 4.0. Це дозволяє створювати плагіни або автоматично виявляти екземпляри класів смішно легко, що дуже корисно для ваших інструментів.


2

Найбільший (і найбільш перевірений) на сьогоднішній день - це рамка XNA. Ви навіть можете скористатися XNA для складання наборів інструментів. Перевага полягає в тому, що у вас є рамка, яка включає необхідні вам бібліотеки (фізика, звук, графіка), загорнуті в один пакет, і величезний плюс полягає в тому, що якщо ви щось дуже добре зробите, ви можете спробувати перекачити його в XBLA.



2

Tao Framework (використовується в цій книзі , що я знайшов дуже корисно: Програмування C # гри для Serious Створення гри ), який обертає OpenGL і багато інших функцій корисні ігри програмування (доступні через C #) варто подивитися. Однак її витіснила бібліотека Open Toolkit (OpenTK), про яку згадувалося в іншій відповіді. Мені здається дивним, що книга використовує рамку Дао замість OpenTK, вважаючи, що Дао був неактивним вже близько 2 років (а книга абсолютно нова). Все-таки корисна рамка, яку варто перевірити.


1

Не зовсім те, про що ви просили, але Unity - це ігровий движок, який підтримує сценарії в c #


0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) - це приємна бібліотека / движок, орієнтована на прототип, побудована на XNA, якщо ви шукаєте щось більш високого рівня.


0

Я вважаю SFML.Net чудовим вибором, і саме це я особисто використовую. Але остерігайтеся, не використовуйте бінарні файли, розміщені на сайті, а натомість отримуйте останню інформацію від SVN. Версія сайту сильно застаріла.


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