C # ha un futuro nello sviluppo di giochi?


18

Di recente ho appreso che MMO Minecraft è basato su Java da una recente intervista su CVG.co.uk su una possibile collaborazione tra due ex colleghi e ora concorrenti. Nell'intervista ha affermato senza mezzi termini che il fondatore di Minecraft è un programmatore Java ed è un programmatore C o C ++, quindi sono incompatibili tra loro. Quindi collaborare a progetti futuri sarà difficile.

Questo mi ha fatto pensare, se Java potesse farlo? Che cosa riserva il futuro per il linguaggio C # e la piattaforma .Net molto popolari per quanto riguarda lo sviluppo di giochi o giochi tradizionali?



3
Riguarda le prestazioni di cui hai bisogno, Minecraft è ok in una lingua gestita, ma per i giochi di grafica di fascia alta, sono preferiti C o C ++ o altre lingue native

19
Minecraft non è in realtà un MMO.
DeadMG

3
@ Guillaume86: il codice jitter può attualmente sovraperformare il codice nativo e Jits stanno migliorando continuamente. Inoltre, le lingue gestite producono programmi molto più efficaci. Quindi alla fine C ++ perde il suo vantaggio in termini di prestazioni ed è significativamente più difficile scrivere programmi robusti (il che significa tempi di sviluppo più lunghi e maggiori costi)
Martin

4
Un JIT può battere il codice nativo scritto male, i loop interni non ottimizzati e ottimizzati. Concesso anche con C # hai la possibilità di scrivere quei segmenti sensibili in C / C ++ se vuoi davvero.
coderanger,

Risposte:


22

Dovresti dare un'occhiata a XNA . Una piattaforma per la creazione di giochi per Windows, Xbox 360 e Windows Mobile 7. Tutto in C # e .NET.


11

Lavoro nello sviluppo di giochi professionali da oltre 5 anni. Il più delle volte, ho usato C # quasi esclusivamente.

Lo stack C # e .NET in generale è davvero ottimo per la tecnologia lato server. Ho lavorato su non meno di 4 giochi MMO con server scritto in C #. Inoltre, con Unity3D che sta guadagnando popolarità, molti browser e giochi per dispositivi mobili richiedono C #. Non dimenticare il framework XNA: non è il motore di scelta per i titoli della console AAA, ma ci sono molti fantastici giochi realizzati con esso e molti altri attualmente in fase di realizzazione.

Nel complesso, C # ha sicuramente un futuro nello sviluppo del gioco.


è una vecchia domanda, ma una cosa mi disturba. "tecnologia lato server" - cosa intendi esattamente con questo? Un servizio Windows in esecuzione su alcuni server Windows utilizzando .NET Framework? Ho sempre pensato che i server fossero realizzati in c ++ e funzionassero su unix os. Ero solo curioso
Marshall il

Sì, esattamente quello. Esistono molti server in esecuzione su Windows, inclusi quelli che eseguono proprio questo sito, AFAIK.
Nevermind,

grazie per essere tornato da me. Solo per chiarire: "in esecuzione su Windows" come servizi Windows senza testa o programmi come WinForms (con configurazione integrata o qualcosa del genere)?
Marshall,

Il servizio senza testa è di solito un'idea migliore, ma nulla ti impedisce di eseguire solo un'applicazione console. O anche una GUI, tranne per il fatto che sul server non è presente nessuno che usi detta GUI.
Nevermind,

10

Come è stato menzionato, Mono porta C # su più piattaforme. Nella stessa area troverai Tao , una libreria multipiattaforma per Mono e .NET che consente l'accesso a Cg, DevIL, FreeGLUT, GLFW, GLU, ODE, OpenAl, OpenGL, PhysicsFS, SDL e WGL. Ovviamente non è così robusto quando si tratta di funzionalità come XNA (che fornisce componenti fondamentali del motore direttamente allo sviluppatore); ma è molto potente.

Quindi, la piattaforma multiplo oltre il sistema operativo e l'hardware controllati da Microsoft è sicuramente possibile. Solo che non molti giochi indie popolari hanno ancora utilizzato questa abilità.

Come è stato anche menzionato, XNA associato a C # consente agli sviluppatori indipendenti di pubblicare su 360, PC e Windows Phone 7.

Nel complesso, C # è vivo e vegeto nello sviluppo del gioco come motore / linguaggio di gioco.

Come linguaggio degli strumenti, è in uso ovunque. Ho creato strumenti per EA, THQ e ora Arkadium tutti usando C #.


5

Non solo C # ha un futuro nello sviluppo dei giochi, ma ha anche un regalo - Dai un'occhiata a Magicka , un gioco recentemente rilasciato (e venduto bene) che è stato sviluppato usando XNA. Dai un'occhiata anche alle voci vincenti di Dream.Build.Play . C # è un modo praticabile per creare giochi (anche se in questo momento non credo sia la scelta giusta per tutti i giochi).

Col passare del tempo vedremo che sta diventando sempre più popolare nel settore dei giochi per computer, tuttavia non mi aspetto un improvviso passaggio a C # in nessun momento.


4

Java è sempre stato un linguaggio molto versatile e c'è sempre stata la possibilità per le persone di codificare i giochi in esso, dai semplici giochi basati sul web (applet Java / GWT con il plug-in canvas) alle bestie 3D complete (checkout JMonkey ). Quindi non direi che il fatto che Java possa fare quel genere di cose è un killer C #, perché la maggior parte delle persone sa che Java può già farlo.

C # rimarrà comunque popolare, dato che inevitabilmente si collega a Windows, Windows mobile e Xbox molto meglio di Java (che, in realtà, tutti gli sviluppatori di giochi si preoccupano davvero del targeting, quindi il vantaggio multipiattaforma che Java ha è perso.) ha anche XNA che è davvero decollato in termini di sviluppo del gioco.

Quindi sì, Java è una piattaforma perfettamente valida per lo sviluppo di giochi se qualcuno desidera seguire questa strada, ma sicuramente non è un killer C # o .NET.


4

Dai un'occhiata a Unity 3D; Scripting C # (e JavaScript e Boo) in un motore 3D ad alte prestazioni.

Aggiungi XNA al mix e stai guardando un paio di fantastiche piattaforme per l'utilizzo di C # per lo sviluppo di giochi.


Unity ha anche un web player in modo da poter giocare nel browser. Il plugin non ha un'enorme penetrazione nel mercato come Flash o Java, ma è possibile.
Michael Coleman,

yay per unità !!
Daniel Pendergast,

1

Sì, C # ha un futuro, con il framework XNA. La maggior parte preferisce il C ++ a causa della velocità, ma C # non è più così lento ...


2
Non è affatto lento. Raramente è peggiore di circa il 70% della velocità C ++ e talvolta può anche essere più veloce!
Noldorin,

4
Le operazioni legate alla CPU in C # sono piuttosto veloci, esegue alcuni controlli extra che migliorano notevolmente la sicurezza del codice a scapito di alcune prestazioni minori ma in cui è molto peggio di C ++ nel consumo e nella gestione della memoria. È molto più facile e meno soggetto a perdite in C #, ma i risultati delle prestazioni del GC possono essere un cane assoluto.
justin.m.chase

Fai attenzione quando scegli come target Xbox360. Il runtime XNA non ha la capacità di alcune delle principali ottimizzazioni e ti impedisce di spostare parti sensibili alle prestazioni in codice non gestito.
drxzcl,


1

Quello che ha fatto con Java in questo caso è stato creare un'applet in modo da poter accedere al sito e giocare con un plugin molto comune, completamente trasparente su quale sistema operativo veniva utilizzato. Immagino che il suo pensiero fosse che Java fosse abbastanza trasparente quando usato in questo modo e avrebbe facilitato il rapido sviluppo / test iterativo che i fan stavano facendo. Non credo che tu possa farlo con XNA perché di solito il tester deve avere tutto installato, il gioco e alcune conoscenze generali su come compilare ed eseguire questo.

Quindi direi che non vi è alcun cambio di paradigma da questo, si adattava solo a ciò di cui aveva bisogno in quel momento e ovviamente funzionava bene.


1

Certo, molti linguaggi di programmazione hanno un futuro nello sviluppo dei giochi. È un falso dilemma spesso usato nella stampa informatica che ci può essere un solo strumento di tipo X e che tutti vogliono che ciò accada.

Niente potrebbe essere più lontano dalla verità.

C # e Java sono stati usati nei giochi per molto tempo. C e C ++ sono ancora più lunghi e lo sono ancora. Lua è usato come linguaggio di scripting per alcuni giochi incredibilmente popolari, con il motore scritto in C / C ++.

Quindi, chiaramente, nessun linguaggio di programmazione sta facendo esplodere altri linguaggi di programmazione come The Game Programming Language. In effetti, vediamo la tendenza a far sì che i giochi principali siano composti da un linguaggio di programmazione compilato ad alte prestazioni per lo sviluppo del motore (i) in.

La chiave al momento è la prestazione. Se uno qualsiasi dei linguaggi / librerie di programmazione utilizzati provoca pause imprevedibili / incontrollabili nell'applicazione, allora in un gioco d'azione, questo si staccherà in faccia. In un gioco di avventura basato su testo, tuttavia, potrebbe andare bene.

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.