Spieleprogrammierung in Zukunft mit C#?



  • nman schrieb:

    Weder noch, die allermeisten Spiele werden nach wie vor in gutem altem(TM) C/C++ programmiert (und das aus gutem Grund).

    Es ging hier um die Zukunft. In Zukunft spielen Sprachen wie C# oder Java in der Spieleentwicklung sicherlich eine deutlich größere Rolle. C# hat natürlich den Vorteil, dass es von MS ist und viele Spielefirmen gehören MS.



  • Glaubich nicht... Abgesehen von so Kleinkram wie Handyspielen reizen Spiele den PC fast immer voll aus.
    Java wäre da unangebracht weil es nie die Geschwindigkeit von C++ erreichen wird(behaupte ich einfach mal, dafür hats ja andre Vorteile 🤡 ).

    Wie das mit C# aussieht weissich nicht... angeblich soll DX da ja schneller mit laufen als mit C++ aber selber probiert habichs nochnicht.

    Aber ich sag mal wenn C# sich halbwegs verbreitet(was ich, wenns das in Zukunft auch nur für Windows gibt bezweifle) und der Kram wirklch SchnelligkeitsGEWINNE gibt könnte es im Bereich des Möglichen liegen das C# für Spiele eingesetzt werden wird.

    Aber ein Unternehmen was schon 3 Spiele in C++ programmiert hat wird ohne triftigen Grund nicht auf C# umsteigen.
    Spontan fällt mir ein:
    a. wegen umlernen aller Programmierer
    b. wegen Codewiederverwendbarkeit(beim vierten Spiel wird sicher was von Spiel 1-3 übernommen)
    c. weil die meisten Dinge die das tägliche Programmieren erleichtern(fertige libs usw) halt in C++ geschrieben sind
    d. das Spiel unter Linux zum laufen bringen = no way (macht sonst zwar auch kaum jemand, aber die Möglichkeit hält man sich trotzdem gern offen)

    *edit* paar Fehler exekutiert



  • dreaddy schrieb:

    Glaubich nicht... Abgesehen von so Kleinkram wie Handyspielen reizen Spiele den PC fast immer voll aus.

    Ich kenne kein Spiel, das aktuelle Hardware voll ausnutzt. Ich habe eher das Gefühl, dass die Hardware momentan schneller besser wird, als Spiele mehr Performance benötigen. Eine Konsequenz daraus ist offensichtlich, dass das letzte bischen Performance-Optimierung bei Spielen auf Dauer nicht mehr nötig ist. Stattdessen werden Dinge wie Produktivität in den Vordergrund rücken und da sind Sprachen wie C# oder Java ja angeblich besser als C++. Zumindest hört man das immer wieder.



  • Also zu dem Zeitpunkt wo die Spiele entwickelt werden reizen die den PC schon aus denkich. 😃

    Nun wenn sie dann nach einem Jahr rauskommen sieht das schonwieder anders aus.

    Ausserdem ist "Rechner voll ausnutzen" immer relativ... wenn ein Spiel auf meinem etwas schwachbrüstigen Rechner nicht laufen würde weil es in Java programmiert ist na super.

    Ausserdem gibt es genug Leute die 2 Tage optimieren um von 110 fps auf 120 fps zu kommen, die sollen freiwillig was langsameres nehmen?



  • dreaddy schrieb:

    Also zu dem Zeitpunkt wo die Spiele entwickelt werden reizen die den PC schon aus denkich. 😃

    Nun wenn sie dann nach einem Jahr rauskommen sieht das schonwieder anders aus.

    Nun, früher hat das die Spiele nicht davon abgehalten, bei Erscheinen nur auf der besten Hardware gut nutzbar zu sein. Ich habe eben mal in eine aktuelle Spielezeitschrift geguckt: Das Spiel mit den höchsten Anforderungen (von den getesteten Spielen) läuft auf einem 2-GHz-Rechner optimal. Die Mindestanforderungen liegen natürlich weit darunter. Tomshardware hat den P4-2000 übrigens am 27. August 2001 getestet. Mit 2 Jahre alter Hardware läuft ein aktuelles Spiel also optimal.

    Ausserdem gibt es genug Leute die 2 Tage optimieren um von 110 fps auf 120 fps zu kommen, die sollen freiwillig was langsameres nehmen?

    Nein, nicht freiwillig. Die Entwicklung wird kommen, so dass sie einfach keine andere Wahl haben. 110 vs 120 fps interessiert vielleicht ein paar Freaks, für Spielefirmen ist das aber vollkommen uninteressant.



  • Hm.. mal hingestellt das Geschwindigkeit bei der Wahl der Programmiersprache keine Wahlentscheidung (mehr) ist.
    So wie Linux die letzten Jahre im kommen ist fragich mich ob eine Sprache die absichtlich Betriebssystemabhängig ist sich durchsetzen wird.
    Ich bin wirklich kein Linux Freak, aber in 5-6 Jahren oder so denkich schon das jeder 2te Normaluser Linux auf seinem PC hat wenn das so weiter geht.
    Und wer dann Spiele für Win only macht hat 50% weniger Einnahmen theoretisch.
    Oder sagen wir mal er braucht 15% mehr Zeit wenn er für beide BS entwickeln will... lohnt sich heute nochnicht, aber dann vor der Wahl stehen

    100% Arbeit -> 50% der Zielgruppe erreicht
    115% Arbeit -> 99% der Zielgruppe erreicht

    ist schon was andres.

    Stellt sich nur wieder die Frage obs dann C# nicht auch für Linux gibt was ja theoretisch möglich ist.



  • Naja, stimmt schon. Linux ist im Kommen, was ein Nachteil für C# ist. Dann bleibt diesbezüglich also noch Java.

    C# hat aber einen anderen Vorteil, nämlich die XBox. Ich bin überzeugt davon, dass das .NET-Framework darauf portiert werden wird, wenn es das nicht schon ist.

    ...und noch ein Vorteil: MS besitzt viele Spielefirmen und hat entsprechenden Einfluss. Die werden sicherlich versuchen, Windows als DIE Spieleplattform zu halten. Ein Spieler wird sich kein Linux-System zulegen, wenn es dafür fast keine Spiele gibt.



  • Hat einer von Euch schon mal C# verwendet?
    Vielleicht auch noch gemeinsam mit DirectX?

    Wenn ja dann wüsstet Ihr dass C# zwar vielleicht für RAD von Windows-only GUI-Apps ganz brauchbar ist aber bei performance-kritischen Multimedia-Anwendungen wie DirectX so schlimm abstinkt dass niemand sich freiwillig sowas antun würde.
    Es werden übrigens auch bei Weitem nicht so viele C#-Anwendungen geschrieben wie Microsoft sich das ursprünglich gewünscht hat da größtenteils die Nachteile überwiegen.

    (Und auf der XBox gibt es doch sowieso DirectX, da bringt die Verwendung von C# keinerlei Vorteil.)

    Warum sollte die Spiele-Szene Eurer Ansicht nach also auf C# oder Java umsteigen wollen? (Selbst wenn das Vorteile brächte: Die meisten Spiele sind noch nichtmal vernünftiges C++ sondern eher C mit Klassen und new, das hat schon so seine Gründe: Viele Spieleprogrammierer sind extrem konservativ was das Erlernen neuer Programmier-Techniken angeht.)



  • Gregor schrieb:

    ...und noch ein Vorteil: MS besitzt viele Spielefirmen und hat entsprechenden Einfluss. Die werden sicherlich versuchen, Windows als DIE Spieleplattform zu halten.

    Das ist Fakt aber kein Vorteil.
    Viele DirectX-Spiele kann ich übrigens auch unter Linux spielen, trotz proprietärer Technologien von MS. (Hoch lebe WinE(X)!)
    Google mal nach Mono oder dotGNU, in Verbindung mit WinE kann man (falls es dann C#-Spiele gibt) in ein paar Jahren auch C#-Spiele unter Linux spielen.

    Dennoch glaube ich nicht dass C# sich im Spielebereich durchsetzen wird, gibt es dafür irgendwelche Anzeichen?



  • Ich glaube, wenn dann werden die Leute auf Java umsteigen (btw. man kann mit Java auch DX nutzen). Warum? Weil Java einfach nen Heimvorteil hat. Ich kann nicht erkennen, was an C# besser sein soll wie Java, für mich ist das wirklich fast die selbe Sprache.
    Java war halt einfach früher da und ist mehr etabliert. Und Plattformunabhängig, falls man das mit Linux jetzt mal für bare Münze nimmt.



  • Es ist doch aber so, dass das Programm nur beim ersten mal(!) durch den Compiler geht und dabei an den eigenen Computer angepasst wird, dadurch ist es meistens so dass das Programm in c# bis zu 20% schneller ist!



  • BillyBlue schrieb:

    Es ist doch aber so, dass das Programm nur beim ersten mal(!) durch den Compiler geht und dabei an den eigenen Computer angepasst wird, dadurch ist es meistens so dass das Programm in c# bis zu 20% schneller ist!

    Das ist reine MS-Propaganda, glaub mir, ich habe schon mal mein Geld mit C#-Programmierung verdient und ich wünsche mir diese Zeit nicht zurück!

    Anderslautende Ergebniss dürfen teilweise einfach aufgrund diverser NDAs die eben auch Benchmarks von MS-Programmen betreffen gar nicht veröffentlicht werden.



  • nman schrieb:

    Anderslautende Ergebniss dürfen teilweise einfach aufgrund diverser NDAs die eben auch Benchmarks von MS-Programmen betreffen gar nicht veröffentlicht werden.

    Du brauchst ja nicht gleich nen Benchmark veröffentlichen, aber wirf doch einfach mal einen Faktor in den Raum! 🙂



  • Naja, bei richtig kleinen Spielchen ohne allzu komplexe Szenen (ein paar herumspringende Bälle mit Curved Surfaces und teilweise auch einfaches Environment Mapping) kam ich damals schon auf den Faktor 1.8 aufwärts, vielleicht wäre die Situation mit mehr RAM besser gewesen aber vor einem Jahr waren 256MB RAM nicht mal soo wenig...



  • Also ich werd`s trotzdem ein bisschen damit spielen.
    Lade mir gerade das DX9 SDK runter, und bin in voraussichtlich 16 Std. Online-Zeit fertig 🕶

    Naja und bis dorthin kann ich auch ordentlich C# Proggen. 🙄


Anmelden zum Antworten