C, C# oder C++?


  • Mod

    bleib bei java, niemanden juckt es am ende in welcher sprache du deine privaten spiele gemacht hast.

    falls du mit anderen mal zusammenarbeiten moechtest, nimm das gelaeufigste, c++.



  • Gregor schrieb:

    Delryn schrieb:

    Seh ich auch so, ich würde da nicht mehr mit C++ anfangen.
    Mittlerweile gibt es für Spieleprogrammierung mit C# genau so viele Ressourcen.

    Fast der gesamte kommerzielle Spielemarkt wird von C++ dominiert. Da glaubst Du doch nicht ernsthaft, dass es in diesem Umfeld für C# genau so viele Resourcen gibt, oder?

    Die Anzahl an Resourcen ist bei C++ sicher höher, aber qualitative Resourcen findet man bei C# inzwischen auch zu jedem Gebiet.

    Mit C# entwickelt es sich deutlich schneller, wobei das so nicht stimmt man sollte sagen mit .NET und managed DirectX entwickelt es sich deutlich schneller.
    managed DirectX ist nicht nur ein einfacher Wrapper um DirectX sondern bringt auch extrem viel Komfort mit sich, der einem viele lästigen Kleinigkeiten abnimmt mit denen man sich beim nativen DirectX rumschlagen muss.

    Wenn man unter C++ Manns genug ist das DXUT Framework zu verwenden, dann ist die Initialisierung von DirectX und die kleinen Fallstricke wie Fenster vergrößern, vollbild und fenster Modus Wechsel, etc. auch nicht mehr so wild.
    Aber viele Programmierer sind ja nichtmal Manns genug D3DX zu verwenden..



  • User--: vollständigkeitshalber solltest du opengl erwähnen - damit lassen sich nämlich auch spiele entwickeln



  • Naja, mit OpenGL lässt sich Spielegrafik entwickeln. Das ich mit OpenGL Spiele entwickeln kann, bezweifel ich. DirectX bringt halt so nette Sachen wie Audio, Joystick-Abfragen usw. mit. Das hast du alles bei OGL nicht.



  • @User--! Wenn ich schnell zu Ergebnissen kommen will, dann benutze ich auch nicht direkt DX, wenn ich C++ code. Dann nehme ich eine fertige C++-3D-Engine, mit der ich dann wieder schneller am Ziel bin, wie mit C# und Managed DX!

    Ich finde hier wird auch immer zu viel durcheinander gebracht. Der eine sagt, er will schnell ein Spiel entwickeln. Gleizeitig will er aber erstmal mit DX oder OpenGL seine Basis bauen. Ist doch eigentlich ein Widerspruch?! Selbst in C# oder Java bin ich immer noch schneller, wenn ich dort eine fertige Engine nehme. Dann bin ich immer noch schneller als mit Managed DX oder Java3D!

    Klar, wenn ich lernen will, wie man DX benutzt, dann darf ich zwangsläufig keine Engine nehmen. Aber dann darf ich mich auch nicht über "zu viel Zeit um Ergebnisse zu haben" beschweren. Ich wollte es ja schliesslich so. Man muß nicht nur die richtige Sprache wählen, sondern auch das richtige Framework.



  • Artchi schrieb:

    Naja, mit OpenGL lässt sich Spielegrafik entwickeln. Das ich mit OpenGL Spiele entwickeln kann, bezweifel ich. DirectX bringt halt so nette Sachen wie Audio, Joystick-Abfragen usw. mit. Das hast du alles bei OGL nicht.

    OpenGL ist eben nur für die Grafik da. Für Audio/Joystick etc muss man eben andere Sachen nehmen (zB SDL oder gar DirectX). Immerhin schafft id-Software es ja auch OpenGL für die Spiele-Programmierung zu benutzen 🙄



  • rüdiger schrieb:

    Immerhin schafft id-Software es ja auch OpenGL für die Spiele-Programmierung zu benutzen 🙄

    Wollten die jetzt nicht auch DX unterstützen?



  • Artchi ich hab hier zwei "Äpfel" miteinander verglichen, wenn du hier mit ner Engine kommst, dann vergleichst du ja nichtmehr zwei gleiche Sachen.
    Dann müsste man in C# auch ne Engine her nehmen, damit es wieder passt.
    Aber mir ist schon klar worauf du hinaus willst.

    Nur für einfache Sachen reicht C# und managed DirectX allemal, da managed DirectX schon ne kleine Engine ist wenn man so will. Wer sich mit 3D Grafik auskennt, kann eigentlich fast direkt loslegen mit learning by doing. C# ist sehr intuitiv für jemand der C++ kennt und man etwas Java programmiert hat und managed DirectX ebenfalls für jemanden der mal mit DirectX ein wenig gespielt hat.



  • rüdiger schrieb:

    OpenGL ist eben nur für die Grafik da. Für Audio/Joystick etc muss man eben andere Sachen nehmen (zB SDL oder gar DirectX).

    Was ist mit OpenAL? Ist das nicht so populär, wenn es um Audio geht?



  • OpenGL + SDL zusammen ist doch wie DirectX nur sogar einfacher zu programmieren und plattformunabhängig dazu. Deswegen kann ich DirectX nicht empfehlen.

    Mit C# oder Java kann man ein Spiel programmieren dass so schnell läuft wie Doom 3 ????



  • da hier Leute immer wieder 3D-Engine im Mund nehmen. Ihr meinst doch nicht in allen ernstes mit Irrlich & Co könnt ihr so eins wie Doom 3 entwickeln???
    also die sind noch lange nicht konkurrenzfähig oder gibt es etwas was noch viel besser ist als irrlicht?



  • Naja, mit OpenGL lässt sich Spielegrafik entwickeln. Das ich mit OpenGL Spiele entwickeln kann, bezweifel ich. DirectX bringt halt so nette Sachen wie Audio, Joystick-Abfragen usw. mit. Das hast du alles bei OGL nicht.

    dann linke ich halt die sdl(oder was auch immer, gibt genug möglichkeiten) dazu.
    und wenn du es so willst kannst du mit directx auch keine spiele entwickeln - du brauchst ja immerhin mindestens noch eine sprache in der du dein vorhaben umsetzt.



  • xBlackKnightx schrieb:

    OpenGL + SDL zusammen ist doch wie DirectX nur sogar einfacher zu programmieren und plattformunabhängig dazu. Deswegen kann ich DirectX nicht empfehlen.

    Mit C# oder Java kann man ein Spiel programmieren dass so schnell läuft wie Doom 3 ????

    Komischer vergleich. Seit wann läuft Doom3 "schnell", was heist das überhaupt in diesem Zusammenhang?

    Was du meinst ist wohl, ob man die gleichen 3D-Effekte wie in Doom3 bei der Schnelligkeit von Doom3 schreiben kann. Da sowieso 98% aller rechenintensiven Dinge von der GPU verarbeitet wird, spielt es sowieso keine Rolle ob man C++, C, C#, Phyton, Ruby oder Java verwendet.

    Die Fragen sind doch die:
    - brauche ich Templates-Programmierung?
    - brauche ich eigene Speicherverwaltung?
    - brauche ich Operator-Überladung?
    - welche Bibliotheken will ich verwenden?
    - für welches OS will ich schreiben?
    - will ich OO programmieren?


  • Mod

    xBlackKnightx schrieb:

    da hier Leute immer wieder 3D-Engine im Mund nehmen. Ihr meinst doch nicht in allen ernstes mit Irrlich & Co könnt ihr so eins wie Doom 3 entwickeln???
    also die sind noch lange nicht konkurrenzfähig oder gibt es etwas was noch viel besser ist als irrlicht?

    was hindert dich daran die Doom3, Quake4, HL2, CryEngine, Nebula engine oder sonstige engine mit SDK zu nutzen?



  • die einigen SDK kosten ne menge Geld? hindert doch was?

    @DEvent:
    naja ich erinnere mich noch an Zeiten da hat microsoft directX-Beispiele auf Plattformen einmal auf C++ und einmal auf VB rausgebracht. Beide haben dieselben Funktionalitäten nur läuft auf VB die examples total langsam. Ist es jetzt so dass andere Sprachen wie du bereit welche genannt hast genau so schnell? man sagt immer neben assembler sei c++ das schnellste



  • xBlackKnightx schrieb:

    man sagt immer neben assembler sei c++ das schnellste

    Wer sagt das? C++ kann durchaus viel langsamer sein als z.B. Java. Nur weil C++ die Möglichkeit bietet schnelle Programme zu entwickeln is das nicht der Standard. 🙂



  • xBlackKnightx schrieb:

    die einigen SDK kosten ne menge Geld? hindert doch was?

    @DEvent:
    naja ich erinnere mich noch an Zeiten da hat microsoft directX-Beispiele auf Plattformen einmal auf C++ und einmal auf VB rausgebracht. Beide haben dieselben Funktionalitäten nur läuft auf VB die examples total langsam. Ist es jetzt so dass andere Sprachen wie du bereit welche genannt hast genau so schnell? man sagt immer neben assembler sei c++ das schnellste

    Wann war den das und gibts sie noch? Ausserdem hab ich von VB keinen Schimmer, vielleicht wird VB interpretiert?



  • David_pb schrieb:

    C++ kann durchaus viel langsamer sein als z.B. Java.

    Naja, man kann sicherlich Fälle konstruieren, in denen Javaprogramme schneller als äquivalente C++Programme sind. Aber das müsste man dann auch direkt zu diesem Zweck konstruieren. Man müsste sich entsprechende Schwächen von C++ und Stärken von Java heraussuchen, die man in diesem Programm gezielt ausnutzen kann. Der Normalfall ist das natürlich nicht. Normalerweise werden C++Programme einen leichten Geschwindigkeitsvorteil gegenüber Javaprogrammen haben. Da sollte man sich nichts vormachen.

    xBlackKnightx schrieb:

    Mit C# oder Java kann man ein Spiel programmieren dass so schnell läuft wie Doom 3 ????

    Ich kenne keine 3D-Spiele in Java, die wirklich mit den momentanen kommerziellen Spielen auf einer Ebene sind, was die Grafikpracht gepaart mit der entsprechenden Geschwindigkeit betrifft. Aber man kommt da langsam näher heran. Vermutlich würde man soetwas haben, wenn eine große Spielefirma sich bei so einem Titel für Java entscheiden würde. Ich glaube, das ist weniger eine Frage der Geschwindigkeit als vielmehr eine Frage der Infrastruktur um die Sprachen herum, die man zur Spieleentwicklung benötigt. Für die Spieleprogrammierung existieren im C++ Umfeld nunmal deutlich mehr Werkzeuge, Bibliotheken und ähnliches, was man hierzu gebrauchen kann. Und nicht zuletzt ist durch die Tatsache, dass C++ diesen Bereich dominiert, auch eine ganze Menge C++ Wissen bei Spieleprogrammierern vorhanden. Von entsprechendem Javawissen kann hingegen eher nicht ausgegangen werden.

    Einen Doom 3 Clone in Java habe ich zwar nicht anzubieten, aber probier mal Jake 2 aus: Das ist ein Quake 2 Clone in Java. "Tribal Trouble" (Strategiespiel) und "Wurm Online" (MMORPG) sind zwei weitere Beispiele für 3D-Spiele in Java - wobei die, wie schon gesagt, auch nicht auf der Höhe der Zeit sind, was die Grafik betrifft.



  • jo, die alten VBs wurden interpretiert. vb.net wird natürlich wie alle anderen .NET-Sprachen in die il übersetzt.


  • Mod

    xBlackKnightx schrieb:

    die einigen SDK kosten ne menge Geld? hindert doch was?

    die sdks gibt es gratis zum spiel dazu.

    das einzige was kostet ist, falls du den source der engine haben moechtest und/oder ein produkt unabhaengig vom spiel veroeffentlichen willst.

    was ja beim entwickeln von spielen erstmal nicht sehr wichtig ist, zudem gibt es auch komplett freie engines die gut sind, z.b. Q3.

    und sag nicht "die ist schon urisch alt" denn 1. als HL rauskam, war die benutzte Q1 engine auch extrem alt und 2. bevor man anforderungen stellt die die neuste engine beduerfen, sollte man erstmal mit den bisherigen klarkommen, gute spiele hab schliesslich mehr als nur graphik.


Anmelden zum Antworten