Какие библиотеки C # можно использовать для поддержки разработки игр? [закрыто]

58

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

Michael Barth
источник

Ответы:

63

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

  • XNA Высокоуровневая оболочка на DirectX9. Позволяет быстро приступить к работе. Поддерживает ПК, Xbox360 и Windows Phone 7. Поддерживает аудио Xact, а также собственный API-интерфейс SoundEffect.
  • SlimDX Нижний уровень оболочки на DX9 / 10/11. Если его в DX SDK, его завернутый здесь.
  • OpenTK Wrapper на OpenGL / AL.
  • SDL.net Порт популярной библиотеки SDL.

Двигатели

  • WaveEngine Компонентная архитектура игрового движка, 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 #
  • Аксиома Переписать Ogre в c #. Поддерживает многочисленные API поддержки рендеринга.
  • Unity - графический / игровой движок C ++, который поддерживает сценарии геймплея в C #
  • AngelXNA Порт фреймворка для угловых прототипов EALA с открытым исходным кодом

физика

  • Farseer Популярный 2D физический движок, поддерживающий .net (рабочий стол), compact (xbox) и micro (silverlight).
  • Джиттер - относительно новый трехмерный физический движок, намного лучше, чем его завершение.
  • Box2Dx прямой порт box2D
  • Box2D.XNA Еще один порт Box2D для XNA; более свежая, чем Box2Dx
  • JigLib
  • BulletX Порт Bullet c #, похоже, заброшен.
Cubed2D
источник
1
Отличный обзор, это был именно тот ответ, который я искал!
Майкл Клемент
2
Поскольку XNA - такое большое сообщество, я хотел бы добавить Henge3D к физике, Sunburn к графике и sgMotion и XNAnimation к графике (или анимации).
Крис Риденур
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 ++. Кроме того, отлично подходит для инструментов.

Keyframe
источник
3
Преимущество SlimDX заключается в совместимости с поддержкой взаимодействия Direct3D в WPF, что (в зависимости от типа разрабатываемой игры) может быть очень полезным. Официальной поддержки взаимодействия WPF / XNA нет, и, хотя я полагаю, что некоторым людям удалось заставить их работать вместе, процесс был хакерским и хрупким.
Майк Штробель
Я хотел бы добавить , что это попытка получить XNA работает кросс-платформенный с Mono (см MonoXNA), что фактор может в решение которых рамки для использования.
Майк Штробель
@Mikw Strobel: +1, но помните, что большой ценой продажи для XNA является возможность развертывания / продажи на 360, и все, что я видел в WPF / XNA, не будет работать на 360.
Steven Evers
4

Есть также порт библиотеки C SDL для .NET, SDL.NET . Лично я бы использовал XNA в C #, потому что это просто хорошо собранная библиотека, очень настраиваемая и удобная для начинающих.

Паучок
источник
XNA дружелюбна к новичкам, но сейчас она также находится в состоянии изменения (особенно). 4.0 будет иметь ряд серьезных изменений, и это раздражает, чтобы не отставать, когда вы промокли ноги.
Стивен Эверс
4

Отказ от ответственности: Следующая рекомендация может быть или не быть предвзятой из-за моего личного участия в разработке этого движка.

Duality - это расширяемый 2D игровой движок, который поставляется с системой редактора WYSIWYG. Краткая информация:

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

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

Скриншот среды редактирования.

оборота Фетце
источник
Обычно лучше сообщить, что вы участвуете в разработке любого программного обеспечения, которое вы рекомендуете.
Джош
@JoshPetrie Вы можете быть правы. Я не был уверен, имеет ли это значение в данном конкретном контексте - в любом случае, я добавил отказ от ответственности. :)
Адам
3

BulletX - это 100% C # порт Bullet Physics, который можно использовать с XNA.

Стивен Эверс
источник
3

Что касается инструментов, то невероятно полезная библиотека - это « Managed Extensibility Framework », которая теперь фактически является частью .Net 4.0. Это позволяет вам легко создавать плагины или автоматически обнаруживать экземпляры классов, что очень полезно для ваших инструментов.

Сандер ван Россен
источник
2

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

Дэвид Макгроу
источник
2

XNA - это довольно большая библиотека для ПК / Xbox360, которая поддерживает графику, звук, ввод и т. Д.

Брайан Денни
источник
2

Tao Framework (используется в этой книге , что я нашел очень полезным: C # Программирование игр для Serious Создание игры ), который оборачивает OpenGL и многие другие функции полезны игры программирования (доступные через C #) стоит посмотреть. Однако он был заменен библиотекой Open Toolkit (OpenTK), о которой упоминалось в другом ответе. Я нахожу странным, что книга использует Tao Framework вместо OpenTK, учитывая, что Tao неактивен около 2 лет (и книга совершенно новая). Тем не менее, полезные рамки, которые стоит проверить.

Джейсон Даун
источник
1

Не совсем то, что вы просили, но Unity - игровой движок, который поддерживает скрипты в c #

Hiena
источник
0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) - это хорошая библиотека / движок, ориентированная на прототипы, построенная на XNA, если вы ищете что-то более высокоуровневое.

Эндрю Брокерт
источник
0

Я считаю SFML.Net отличным выбором, и это то, что я лично использую. Остерегайтесь, однако, не используйте двоичные файлы, представленные на сайте, а вместо этого получите последнюю версию из SVN. Версия сайта сильно устарела.

Xeon06
источник