Quali librerie C # possono essere utilizzate per supportare lo sviluppo di giochi? [chiuso]


58

Poiché i giochi si basano su molti sottosistemi diversi, come la grafica (DirectX, OpenGL, ...), il suono (OpenAL, Ogg Vorbis, ...) o la fisica (collisioni, ...), quali librerie sai che sono utili per lo sviluppo di giochi in C # e quali vantaggi offrono?

Risposte:


63

Grafica / Audio

  • XNA wrapper di alto livello su DirectX9. Ti permette di alzarti e correre velocemente. Supporta PC, Xbox 360 e Windows Phone 7. Supporta l'audio Xact e la sua API SoundEffect.
  • Avvolgitore di livello inferiore SlimDX su DX9 / 10/11. Se è nel DX SDK, è racchiuso qui.
  • Wrapper OpenTK su OpenGL / AL.
  • SDL.net Una porta della popolare libreria SDL.

motori

  • Architettura del motore di gioco basata su componenti WaveEngine , motore C # api, motore fisico 2d e 3d, splendidi effetti visivi, supporto multipiattaforma Android, Linux, Mac, iOS e Windows, sistema di layout avanzato e molto altro.
  • NeoAxis Un motore 3D con supporto per il motore fisico NVIDIA PhysX, collegamenti C #, supporta WPF e Windows Form, una ricca selezione di strumenti come mappe, oggetti, modelli, materiali, editor di terreni, nel browser di gioco usando Chromium, Pathfinding con Navigation Mesh e altro.
  • TorqueX Un motore 2D / 3D per XNA. Buon supporto dell'editor, i giochi in garage hanno recentemente reinvestito nel motore dopo un periodo di abbandono.
  • motore di gioco truevision 3d C ++ con attacchi c #
  • Assioma Una riscrittura di Ogre in c #. Supporta numerose API di rendering supportate.
  • Unity è un motore di grafica / gioco C ++ che supporta gli script di gioco in C #
  • AngelXNA Una porta del framework di protoipolazione dell'angolo open source di EALA

Fisica

  • Farseer Un popolare motore di fisica 2D, supporta .net (desktop), compatto (xbox) e micro (silverlight).
  • Jitter un motore di fisica 3D relativamente nuovo, molto meglio del suo completamento.
  • Box2Dx Una porta diretta di box2D
  • Box2D.XNA Un'altra porta di Box2D per XNA; più recente di Box2Dx
  • JigLib
  • BulletX Una porta c # di Bullet, sembra essere abbandonata.

1
Ottima panoramica, era esattamente il tipo di risposta che stavo cercando!
Michael Klement,

2
Poiché XNA è una comunità così ampia, vorrei aggiungere Henge3D alla fisica, Sunburn alla grafica e sgMotion e XNAnimation alla grafica (o all'animazione).
Chris Ridenour,

TorqueX non è più supportato dai giochi di garage.
Markus,

3
Negli anni dalla prima pubblicazione di questa risposta, Microsoft ha smesso di supportare XNA. Quella libreria probabilmente non è una buona idea da usare, usa invece MonoGame.
jhocking

10

Ovviamente c'è XNA di Microsoft stesso: http://creators.xna.com/en-US/ I giochi realizzati con XNA funzionano su Windows e (tramite Creators club) su Xbox360. Penso che sia perfetto per bagnare i piedi in un rapido sviluppo del gioco. Non ho ancora i piedi bagnati correttamente in XNA, quindi non posso ancora giudicarlo. Ma, guardando da margine, sembra la cosa migliore da quando il pane a fette. Certo, non puoi farci niente. Ma puoi realizzare prototipi veloci e giochi di lavoro di qualità indipendente e oltre.

Un'altra libreria è SlimDX - http://slimdx.org/ che alcuni potrebbero dire che è più vicino a metal / realtà se non si desidera lavorare con XNA. Quindi, ottimo per realizzare prototipi veloci, specialmente se lo sviluppo del tuo gioco principale è C o C ++. Inoltre, ottimo per fare strumenti.


3
SlimDX ha anche il vantaggio di essere compatibile con il supporto dell'interoperabilità Direct3D di WPF, che (a seconda del tipo di gioco che stai sviluppando) potrebbe essere molto utile. Non esiste un supporto ufficiale per l'interoperabilità di WPF / XNA, e mentre credo che alcune persone siano riuscite a far lavorare insieme i due, il processo è stato hack-y e fragile.
Mike Strobel,

Vorrei aggiungere che ci sia uno sforzo per ottenere XNA lavorare cross-platform con Mono (vedi MonoXNA), che fattore potrebbe nella decisione di quale quadro di riferimento per l'uso.
Mike Strobel,

@Mikw Strobel: +1, ma ricorda che un grande punto di forza per XNA è la capacità di distribuire / vendere su 360 e tutte le cose di WPF / XNA che ho visto non funzioneranno su 360.
Steven Evers

4

C'è anche una porta della libreria C da SDL a .NET, SDL.NET . Personalmente userei XNA in C # perché è solo una libreria ben messa insieme, molto personalizzabile e anche per i principianti.


XNA è adatto ai principianti, ma è anche in uno stato di flusso (soprattutto) in questo momento. 4.0 avrà una serie di cambiamenti di rottura ed è fastidioso tenere il passo quando ti bagnano i piedi.
Steven Evers,

4

Dichiarazione di non responsabilità: la seguente raccomandazione può essere o meno distorta a causa del mio coinvolgimento personale nello sviluppo di questo motore.

La dualità è un motore di gioco 2D estensibile fornito con un sistema di editor WYSIWYG. Veloce panoramica:

  • È basato su plugin . Non scrivi una nuova applicazione, ma un plugin che contiene tutto il tuo codice.
  • I plugin dispongono del runtime ricaricato dall'editor. Consente un'iterazione rapida.
  • Open Source , scritto interamente in C #, basato su OpenTK / OpenGL / OpenAL
  • Relativamente nuovo (2-3 anni) e ancora in fase di sviluppo, ma già utilizzabile .
  • Gestisce rendering, audio, input dell'utente, fisica, serializzazione, gestione delle risorse e degli oggetti
  • Molte classi di supporto e componenti predefiniti per iniziare.

Nel caso in cui tu voglia provare, puoi scaricare direttamente l' ultima versione binaria o compilarla tu stesso usando il codice sorgente da GitHub . Per ottenere ulteriori informazioni, una visita al sito Web delle informazioni e ai forum della comunità potrebbe essere utile. Segui i collegamenti dal sito Web informativo che ho incluso sopra.

Uno screenshot dell'ambiente di modifica.


Di solito è meglio rivelare che si è coinvolti nello sviluppo di qualsiasi software che si consiglia.
Josh

@JoshPetrie Forse hai ragione. Non ero sicuro che avesse o meno importanza in questo particolare contesto - comunque, ho aggiunto un disclaimer ora. :)
Adam,


3

Dal punto di vista degli strumenti un'incredibile libreria utile è il " Managed Extensibility Framework ", che attualmente fa parte di .Net 4.0. Ti consente di creare plug-in o il rilevamento automatico di istanze di classi in modo ridicolo facilmente, il che è molto utile per i tuoi strumenti.


2

Il più grande (e il più provato) fino ad oggi è il framework XNA. Puoi persino sfruttare XNA per creare i tuoi set di strumenti. Il vantaggio è che disponi di un framework che include le librerie di cui hai bisogno (fisica, audio, grafica) racchiuse in un unico pacchetto e l'enorme vantaggio è che se fai qualcosa di veramente buono puoi provare a pomparlo in XBLA.


2

XNA è una libreria abbastanza grande per PC / Xbox360, che gestisce la tua grafica, suono, input, ecc.


2

Il Tao Framework (usato in questo libro che ho trovato abbastanza utile: Programmazione di giochi C # per la creazione di giochi seri ), che avvolge OpenGL e molte altre utili funzioni di programmazione di giochi (accessibili tramite C #) merita una visita. Tuttavia, è stato sostituito da Open Toolkit Library (OpenTK), che è stato menzionato in un'altra risposta. Trovo strano che il libro usi Tao Framework invece di OpenTK, considerando che Tao è rimasto inattivo per circa 2 anni (e il libro è nuovo di zecca). Tuttavia, un quadro utile che vale la pena provare.


1

Non esattamente quello che hai chiesto, ma Unity è un motore di gioco che supporta gli script in c #


0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) è una libreria / motore orientato ai prototipi basato su XNA, se stai cercando qualcosa di più di alto livello.


0

Trovo che SFML.Net sia un'ottima scelta, ed è quello che uso personalmente. Attenzione però, non utilizzare i file binari forniti sul sito, ma invece ottenere le ultime novità dall'SVN. La versione del sito è molto obsoleta.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.