Hat C # eine Zukunft in der Spieleentwicklung?


18

Ich habe kürzlich aus einem Interview auf CVG.co.uk über eine mögliche Zusammenarbeit zwischen zwei ehemaligen und jetzt konkurrierenden Kollegen erfahren, dass das MMO Minecraft von Java angetrieben wird. Im Interview sagte er unverblümt, dass der Gründer von Minecraft ein Java-Codierer und er ein C- oder C ++ - Codierer ist, so dass sie nicht miteinander kompatibel sind. Daher wird es schwierig sein, bei zukünftigen Projekten zusammenzuarbeiten.

Das brachte mich zum Nachdenken, ob Java das könnte? Was hält die Zukunft für die sehr beliebte C # -Sprache und .Net-Plattform von MS in Bezug auf Spiele oder die Entwicklung von Mainstream-Spielen bereit?



3
Es dreht sich alles um die Leistungen, die Sie benötigen. Minecraft ist in einer verwalteten Sprache in Ordnung, aber für High-End-Grafikspiele werden C oder C ++ oder andere Muttersprachen bevorzugt

19
Minecraft ist eigentlich kein MMO.
DeadMG

3
@ Guillaume86: Jittered Code kann derzeit den nativen Code übertreffen, und Jits werden immer besser. Verwaltete Sprachen erzeugen auch wesentlich robustere Programme. Am Ende verliert C ++ seinen Leistungsvorteil und es ist bedeutend schwieriger, robuste Programme zu schreiben (was längere Entwicklungszeiten und höhere Kosten bedeutet)
Martin,

4
Ein JIT kann schlecht geschriebenen nativen Code schlagen, nicht eng optimierte und optimierte innere Schleifen. Selbst mit C # haben Sie die Möglichkeit, diese sensiblen Segmente in C / C ++ zu schreiben, wenn Sie dies wirklich möchten.
coderanger

Antworten:


22

Sie sollten XNA überprüfen . Eine Plattform zum Erstellen von Spielen für Windows, Xbox 360 und Windows Mobile 7. Alles in C # und .NET.


11

Ich arbeite seit über 5 Jahren in der professionellen Spieleentwicklung. Die meiste Zeit habe ich fast ausschließlich C # verwendet.

C # - und .NET-Stack im Allgemeinen eignen sich hervorragend für die serverseitige Technologie. Ich habe an nicht weniger als 4 MMO-Spielen mit Server in C # gearbeitet. Da Unity3D immer beliebter wird, benötigen viele Browser- und Handyspiele C #. Vergessen Sie nicht das XNA-Framework: Es ist nicht die Engine der Wahl für AAA-Konsolentitel, aber es gibt viele großartige Spiele, die damit erstellt wurden, und viele weitere, die derzeit in Arbeit sind.

Insgesamt hat C # definitiv eine Zukunft in der Spieleentwicklung.


Es ist eine alte Frage, aber eines stört mich. "server-side tech" - was genau meinst du damit? Ein WindowsService, der auf einem Windows Server mit .NET Framework ausgeführt wird? Ich dachte immer, dass Server in C ++ erstellt werden und unter Unix OS laufen. Ich war nur neugierig
Marshall

Ja, genau das. Es gibt viele Server, die unter Windows laufen - auch die, auf denen genau diese Site läuft, AFAIK.
Nevermind

Danke, dass du zu mir zurückgekehrt bist. Nur um zu verdeutlichen - "läuft unter Windows" als kopflose Windows-Dienste oder Programme wie WinForms (mit eingebauter Konfiguration oder so ähnlich)?
Marshall

Headless Service ist normalerweise eine bessere Idee, aber nichts hindert Sie daran, nur eine Konsolenanwendung auszuführen. Oder sogar eine GUI, es sei denn, auf dem Server befindet sich niemand, der diese GUI verwendet.
Nevermind

10

Wie bereits erwähnt, bringt Mono C # auf mehrere Plattformen. Im selben Bereich finden Sie Tao , eine Multiplattform-Bibliothek für Mono und .NET, die den Zugriff auf CG, DevIL, FreeGLUT, GLFW, ODE, OpenAl, OpenGL, PhysicsFS, SDL und WGL ermöglicht. Es ist offensichtlich nicht so robust, wenn es um Features geht wie XNA (das dem Entwickler grundlegende Engine-Komponenten direkt zur Verfügung stellt). aber es ist viel mächtiger.

Eine plattformübergreifende Steuerung über Microsoft-Betriebssysteme und -Hardware hinaus ist also definitiv möglich. Nur haben noch nicht so viele beliebte Indie-Spiele von dieser Fähigkeit Gebrauch gemacht.

Wie bereits erwähnt, ermöglicht XNA in Verbindung mit C # unabhängigen Entwicklern die Veröffentlichung auf 360, PC und Windows Phone 7.

Insgesamt ist C # in der Spieleentwicklung als Engine- / Spielsprache am Leben und gut.

Als Werkzeugsprache ist es überall im Einsatz. Ich habe Tools für EA, THQ und jetzt Arkadium mit C # erstellt.


5

C # hat nicht nur eine Zukunft in der Spieleentwicklung , sondern auch ein Geschenk: Schauen Sie sich Magicka an , ein Spiel, das kürzlich mit XNA veröffentlicht wurde (und sich gut verkauft). Schauen Sie sich auch die Gewinner von Dream.Build.Play an . C # ist ein praktikabler Weg, um Spiele zu machen (obwohl ich im Moment nicht glaube, dass es die richtige Wahl für alle Spiele ist).

Mit der Zeit wird es in der Computerspielbranche immer beliebter, aber ich erwarte zu keinem Zeitpunkt eine plötzliche Umstellung auf C #.


4

Java war schon immer eine sehr vielseitige Sprache, und es gab immer die Möglichkeit für Leute, darin Spiele zu programmieren , von einfachen webbasierten Spielen (Java-Applets / GWT mit dem Canvas-Plugin) bis zu vollständigen 3D-Bestien (checkout JMonkey) ). Ich würde also nicht sagen, dass die Tatsache, dass Java so etwas kann, ein C # -Killer ist, weil die meisten Leute wissen, dass Java das bereits kann.

C # wird jedoch weiterhin beliebt sein, da es unweigerlich besser zu Windows, Windows Mobile und der Xbox passt als Java (was eigentlich allen Spieleentwicklern wichtig ist, damit der plattformübergreifende Vorteil, den Java bietet, größtenteils verloren geht.) Es ist Außerdem gibt es XNA, das in Bezug auf die Spieleentwicklung wirklich auf dem Vormarsch ist.

Ja, Java ist eine perfekte Plattform für die Spieleentwicklung, wenn jemand diesen Weg beschreiten möchte, aber es ist sicherlich kein C # - oder .NET-Killer.


4

Testen Sie Unity 3D. C # (und JavaScript und Boo) -Skripting in einer leistungsstarken 3D-Engine.

Wenn Sie XNA zum Mix hinzufügen, sehen Sie sich einige großartige Plattformen für die Verwendung von C # für die Spieleentwicklung an.


Unity hat auch einen Web-Player, mit dem Sie im Browser spielen können. Das Plugin hat keine große Marktdurchdringung wie Flash oder Java, aber es ist möglich.
Michael Coleman

yay for unity !!
Daniel Pendergast

1

Ja, C # hat mit dem XNA-Framework eine Zukunft. Die meisten bevorzugen C ++ , weil die Geschwindigkeit, aber C # ist nicht , dass mehr langsam ...


2
Es ist überhaupt nicht langsam. Es ist selten schlechter als etwa 70% der C ++ - Geschwindigkeit und kann manchmal sogar schneller sein!
Noldorin

4
CPU-gebundene Vorgänge in C # sind recht schnell. Es werden einige zusätzliche Überprüfungen durchgeführt, die die Sicherheit des Codes erheblich verbessern. Dies geht mit geringfügigen Leistungseinbußen einher, aber in Bezug auf Speicherverbrauch und -verwaltung ist C ++ weitaus schlechter als C ++. Es ist verdammt viel einfacher und in C # weniger leckanfällig, aber die Leistungstreffer des GC können ein absoluter Hund sein.
justin.m.chase

Vorsicht beim Anvisieren der Xbox360. Die dortige XNA-Laufzeitumgebung kann einige der wichtigsten Optimierungen nicht ausführen und hindert Sie daran, leistungsempfindliche Teile auf nicht verwalteten Code zu verlagern.
drxzcl


1

In diesem Fall hat er mit Java ein Applet erstellt, sodass Sie sich einfach auf der Site anmelden und mit einem sehr verbreiteten Plugin spielen können, das völlig transparent ist, welches Betriebssystem verwendet wird. Ich stelle mir vor, er war der Meinung, dass Java auf diese Weise ziemlich transparent war und es für die schnelle iterative Entwicklung / Prüfung, zu der er die Fans aufforderte, leicht machen würde. Ich glaube nicht, dass Sie dies einfach mit XNA tun können, da der Tester normalerweise alles installiert haben muss sowie das Spiel und einige allgemeine Kenntnisse darüber, wie man dies kompiliert und ausführt.

Ich würde also sagen, dass es keinen Paradigmenwechsel gibt, sondern nur das, was er zu der Zeit brauchte und offensichtlich gut funktioniert hat.


1

Sicher, viele Programmiersprachen haben eine Zukunft in der Spieleentwicklung. Es ist ein in der Computerpresse häufig verwendetes falsches Dilemma, dass es nur ein Werkzeug vom Typ X geben kann und dass dies von allen gewünscht wird.

Nichts könnte weiter von der Wahrheit entfernt sein.

C # und Java werden seit langem in Spielen eingesetzt. C und C ++ haben noch länger gedauert und sind es immer noch. Lua wird als Skriptsprache für einige unglaublich beliebte Spiele verwendet, wobei die Engine in C / C ++ geschrieben ist.

Es ist also klar, dass keine Programmiersprache andere Programmiersprachen als The Game Programming Language aus dem Wasser jagt. Tatsächlich sehen wir die Tendenz, dass führende Spiele aus einer hochleistungsfähigen kompilierten Programmiersprache für die Entwicklung der Engine (s) und einer übergeordneten dynamischen Programmiersprache für die Skripterstellung für das Verhalten der Benutzeroberfläche und der Inhalte bestehen.

The key at the moment is performance. If any of the programming languages/libraries used cause unpredictable/uncontrollable pauses in the application then in an action game, that will fall flat on its face. In a text-based adventure game, that might be okay however.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.