Jakich bibliotek C # można użyć do wspierania tworzenia gier? [Zamknięte]

58

Ponieważ gry oparte są na wielu różnych podsystemach, takich jak grafika (DirectX, OpenGL, ...), dźwięk (OpenAL, Ogg Vorbis, ...) lub fizyka (kolizje, ...), jakie znasz biblioteki, które są przydatne do tworzenia gier w C # i jakie oferują korzyści?

Michael Barth
źródło

Odpowiedzi:

63

Grafika / dźwięk

  • Opakowanie wysokiego poziomu XNA na DirectX9. Pozwala szybko rozpocząć pracę. Obsługuje PC, Xbox360 i Windows Phone 7. Obsługuje dźwięk Xact oraz własny interfejs API SoundEffect.
  • Owijarka SlimDX na niższym poziomie w DX9 / 10/11. Jeśli jest w DX SDK, jest tutaj zawinięty.
  • OpenTK Wrapper na OpenGL / AL.
  • SDL.net Port popularnej biblioteki SDL.

Silniki

  • Architektura silnika gry WaveEngine Component, C # API, silnik fizyki 2D i 3D, piękne efekty wizualne, obsługa wielu platform Android, Linux, Mac, iOS i Windows, zaawansowany układ układu i wiele więcej.
  • NeoAxis Silnik 3D ze wsparciem dla silnika fizyki NVIDIA PhysX, powiązań C #, obsługuje formularze WPF i Windows, bogaty wybór narzędzi, takich jak mapa, obiekt, model, materiał, edytor terenu, w przeglądarce gier wykorzystujących Chromium, Pathfinding z Navigation Mesh i więcej.
  • TorqueX Silnik 2D / 3D dla XNA. Dobry edytor, wsparcie, gry garażowe niedawno zainwestowały w silnik po okresie zaniedbania.
  • silnik gry truevision 3d C ++ z powiązaniami c #
  • Axiom Przepisz Ogre in c #. Obsługuje wiele wspieranych interfejsów API renderowania.
  • Unity to silnik grafiki / gry C ++, który obsługuje skrypty rozgrywki w C #
  • AngelXNA Port frameworka kątowego otwartego oprogramowania EALA

Fizyka

  • Farseer Popularny silnik fizyki 2D, obsługujący .net (desktop), compact (xbox) i micro (silverlight).
  • Jitter stosunkowo nowy silnik fizyki 3D, znacznie lepszy niż jego ukończenie.
  • Box2Dx Bezpośredni port box2D
  • Box2D.XNA Kolejny port Box2D dla XNA; nowszy niż Box2Dx
  • JigLib
  • BulletX Port c Bullet wydaje się być opuszczony.
Cubed2D
źródło
1
Świetny przegląd, właśnie takiej odpowiedzi szukałem!
Michael Klement
2
Ponieważ XNA jest tak dużą społecznością, chciałbym dodać Henge3D do fizyki, Sunburn do grafiki, a sgMotion i XNAnimation do grafiki (lub animacji).
Chris Ridenour,
TorqueX nie jest już obsługiwany przez gry garażowe.
Markus
3
Przez lata od opublikowania tej odpowiedzi Microsoft przestał wspierać XNA. Ta biblioteka prawdopodobnie nie jest dobrym pomysłem do używania, zamiast tego użyj MonoGame.
jhocking
10

Oczywiście istnieje XNA od samego Microsoft: http://creators.xna.com/en-US/ Gry wykonane przy użyciu XNA działają w systemie Windows i (przez klub Creators) na Xbox360. Myślę, że jest to idealne rozwiązanie, aby zmoczyć stopy w szybkim rozwoju gry. Jeszcze nie zmoczyłem moich stóp w XNA, więc nie mogę jeszcze tego ocenić. Ale patrząc z boku wygląda to najlepiej od krojonego chleba. Jasne, nie możesz zrobić z tym wszystkiego. Ale możesz tworzyć szybkie prototypy i działające gry o niezależnej jakości i nie tylko.

Inną biblioteką jest SlimDX - http://slimdx.org/, która zdaniem niektórych jest bliższa metalowi / reality, jeśli nie chcesz pracować z XNA. Dlatego świetnie nadaje się do szybkiego tworzenia prototypów - zwłaszcza jeśli twoją podstawową wersją gry jest C lub C ++. Świetnie nadaje się również do robienia narzędzi.

Klatka kluczowa
źródło
3
SlimDX ma również tę zaletę, że jest kompatybilny z obsługą interpolacji Direct3D WPF, co (w zależności od rodzaju tworzonej gry) może być bardzo przydatne. Nie ma oficjalnego wsparcia dla współdziałania WPF / XNA i chociaż uważam, że niektórym ludziom udało się zmusić obie do współpracy, proces był hack-y i kruchy.
Mike Strobel
Trzeba dodać, że nie jest to wysiłek, aby XNA pracy cross-platform z Mono (patrz MonoXNA), które mogłyby wpływać na decyzję, których ramy do używania.
Mike Strobel
@Mikw Strobel: +1, ale pamiętaj, że dużą zaletą XNA jest możliwość wdrożenia / sprzedaży na 360, a wszystkie rzeczy WPF / XNA, które widziałem, nie będą działać na 360.
Steven Evers
4

Istnieje również port biblioteki C SDL do .NET, SDL.NET . Osobiście użyłbym XNA w C #, ponieważ jest to po prostu dobrze skomponowana biblioteka, bardzo konfigurowalna i przyjazna dla początkujących.

Spidey
źródło
XNA jest przyjazny dla początkujących, ale jest również w stanie flux (szczególnie) w tej chwili. W wersji 4.0 pojawi się wiele przełomowych zmian, co jest denerwujące, gdy trzeba nadążyć za zmoczeniem stóp.
Steven Evers,
4

Oświadczenie: Poniższe zalecenie może lub nie być stronnicze ze względu na moje osobiste zaangażowanie w rozwój tego silnika.

Duality to rozszerzalny silnik do gier 2D, który jest wyposażony w system edytora WYSIWYG. Szybki przegląd:

  • Jest oparty na wtyczkach . Nie piszesz nowej aplikacji, ale wtyczkę zawierającą cały kod.
  • Wtyczki umożliwiają ponowne ładowanie środowiska wykonawczego z edytora. Umożliwia szybką iterację.
  • Open Source , napisany całkowicie w języku C #, oparty na OpenTK / OpenGL / OpenAL
  • Stosunkowo nowy (2-3 lata) i wciąż w fazie rozwoju - ale już nadający się do użytku .
  • Obsługuje renderowanie, audio, wprowadzanie danych przez użytkownika, fizykę, serializację, zarządzanie zasobami i obiektami
  • Wiele klas pomocniczych i domyślnych komponentów na początek.

Jeśli chcesz spróbować, możesz bezpośrednio pobrać najnowszą wersję binarną lub skompilować ją samodzielnie, korzystając z kodu źródłowego z GitHub . Aby uzyskać więcej informacji, wizyta na stronie internetowej i forach społeczności może się opłacić. Wystarczy skorzystać z linków z witryny informacyjnej, którą zamieściłem powyżej.

Zrzut ekranu środowiska edycji.

Fetze
źródło
Zazwyczaj najlepiej jest ujawnić, że jesteś zaangażowany w rozwój dowolnego polecanego oprogramowania.
Josh
@JoshPetrie Być może masz rację. Nie byłem pewien, czy ma to znaczenie w tym konkretnym kontekście - w każdym razie dodałem teraz wyłączenie odpowiedzialności. :)
Adam
3

BulletX jest portem Bullet Physics w 100% C #, który można używać z XNA.

Steven Evers
źródło
3

Po stronie narzędzi niesamowitą użyteczną biblioteką jest „ Managed Extensibility Framework ”, który w rzeczywistości jest teraz częścią .Net 4.0. Pozwala na łatwe tworzenie wtyczek lub automatyczne wykrywanie instancji klas, co jest bardzo przydatne dla twoich narzędzi.

Sander van Rossen
źródło
2

Największym (i najbardziej sprawdzonym) do dziś jest szkielet XNA. Możesz nawet skorzystać z XNA, aby zbudować swoje zestawy narzędzi. Korzyścią jest to, że masz framework, który zawiera potrzebne biblioteki (fizyka, dźwięk, grafika) opakowane w jednym pakiecie, a ogromną zaletą jest to, że jeśli robisz coś naprawdę dobrze, możesz spróbować wypompować go do XBLA.

David McGraw
źródło
2

XNA to dość duża biblioteka na PC / Xbox360, która obsługuje grafikę, dźwięk, dane wejściowe itp.

Bryan Denny
źródło
2

Framework Tao (używane w tej książce, że znalazłem całkiem przydatne: Programowanie C # gra dla poważnych tworzenia gier ), która owija OpenGL i wiele innych funkcji programowania użyteczne gry (dostępne za pośrednictwem C #) jest wart obejrzenia. Została jednak zastąpiona przez bibliotekę Open Toolkit Library (OpenTK), o której wspomniano w innej odpowiedzi. Dziwne wydaje mi się to, że książka używa Tao Framework zamiast OpenTK, biorąc pod uwagę, że Tao jest nieaktywna od około 2 lat (a książka jest zupełnie nowa). Mimo to przydatne ramy, które warto sprawdzić.

Jason Down
źródło
1

Nie do końca to, o co prosiłeś, ale Unity to silnik gry, który obsługuje skrypty w języku c #

Hiena
źródło
0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) to fajna biblioteka / silnik zorientowany na prototypy zbudowany na XNA, jeśli szukasz czegoś na wyższym poziomie.

Andrew Brockert
źródło
0

Uważam, że SFML.Net to świetny wybór i właśnie tego używam. Uważaj jednak, nie używaj plików binarnych dostarczonych na stronie, ale zamiast tego pobierz najnowszą wersję z SVN. Wersja strony jest bardzo nieaktualna.

Xeon06
źródło