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?
58
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.
źródło
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.
źródło
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:
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.
źródło
BulletX jest portem Bullet Physics w 100% C #, który można używać z XNA.
źródło
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.
źródło
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.
źródło
XNA to dość duża biblioteka na PC / Xbox360, która obsługuje grafikę, dźwięk, dane wejściowe itp.
źródło
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ć.
źródło
Nie do końca to, o co prosiłeś, ale Unity to silnik gry, który obsługuje skrypty w języku c #
źródło
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.
źródło
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.
źródło
Spójrz na silnik Ploobs - teraz obsługuje XNA 4, jego otwarte oprogramowanie i ma wiele fajnych funkcji:
źródło