C++ oder C#?

Lohnt es sich noch c++ zu lernen oder sollte man C# lernen?
Für 3D Spieleprogrammierung.

henneholle2007-01-05T15:09:08Z

Beste Antwort

Kommt drauf an, wie zeitkritisch und hardwarenah Dein Spiel sein soll und wo Du es überall eingesetzt sehen willst.

C++ ist sehr systemnah mit direktem Zugriff auf die Windows API und anderen APIs (OpenGL, DirectX) und daher sehr schnell, dafür aber ein bissl umständlich und altmodisch (Speicherverwaltung und Pointer und Pointer auf Pointer und naja).

C# ist eine moderne objektorientiert Sprache, bei der Du Dich um Speicherverwaltung usw nicht kümmern musst, weil es den Garbage-Collector gibt. Pointer brauchst Du auch nicht, weil Du mit Objekten arbeitest. Und es gibt eine Menge Assemblies, die für Dich den Zugriff auf Grafik, Sound und andere Effekte kapseln.

Dafür wird aber kein systemnaher Code erzeugt sondern ein Bytecode, der von der Runtime des .NET Frameworks interpretiert wird. D.h. Dein Spiel wird nur auf Systemen mit einem .NET Framework laufen, womit das Ganze einen sehr hohen Anspruch an die Ressourcen des Rechners stellt, auf dem Dein Spiel laufen soll.

Wenns also ein zeitkritisches Spiel sein soll (Egoshooter oder sowas) wäre eher C++ angesagt.

Für ein Strategieaufbauspiel wo 3D Effekte eher Beiwerk sind dafür aber ein ordentliches Objektmodell wichtig für eine strukturierte Repräsentation der voneinander abhängigen Daten ist, tät ich mal sagen, bist Du mit C# besser bedient.

(Abgesehen davon sind in C# soviele Elemente von C, C++, Delphi und Java enthalten, dass Du locker beide Sprachen in kurzer Zeit lernen kannst. Du bist ja ein cleveres Kerlchen, denk ich mal...)

Anonym2007-01-06T12:20:07Z

Also ich bin echter C++er. Ich muss auch C# auf der Arbeit benutzen, aber ich bleibe C++ für immer treu!!!!

Leider wird früher oder später C++ weniger benutzt werden als C#, daher lerne lieber C#. M$ unterstützt auch mehr C# als VC++.Net. Oben ist aber schon alles super erklärt.
Hier noch ein link zu einem Spiel von M$, da kannst du dir noch den Quellcode sogar runterladen. Geschrieben natürlich in C#.

Viel Spaß beim lernen!

difficultchild_20052007-01-06T10:22:29Z

henneholle verdient sich mit seiner Erklärung einen Daumen hoch und beerhand hat unrecht.
Es ist eine Frage dessen, was man mit dem zu erstellenden Programm vorhat..
Obwohl es mittlerweile das .Net-Framework auch als portable-Version gibt, bietet es sich im embeded-Bereich immer noch an, mit C++ zu arbeiten. Man ist einfach näher an der Hardware und kann auf jeden überflüssigen Schnickschnack verzichten.
Wer C++ kann, dem fällt ein späterer Umstieg auf "C sharp" nicht schwer. Mit C++ hat man auch beruflich immer noch die besseren Karten.

Warum beerhand unrecht hat, möchte ich auch noch kurz begründen:
Natürlich ist das .Net Framework eine Microsoft-Erfindung, das ist unstrittig. Aber C# kann man nicht nur unter .Net Framework programmieren.
Da die Spezifikationen von Microsoft freigegeben wurden, setzten sich ein paar findige Entwickler um Miguel de Icaza zusammen und versuchten das .Net Framework plattformunabhängig nachzubauen. Es entstand das Mono-Projekt.
Mittlerweile ist Mono ein ausgereiftes Framework und es lassen sich damit komplexe Anwendungen (sogar Fensteranwendungen) programmieren, welche plattformunabhängig lauffähig sind. Die Anwendungen laufen sowohl unter Linux/Unix als auch auf Windows und Mac.
Die wichtigste Programmiersprache unter Mono ist C# (es sind auch andere Sprachen eingebunden, sogar VB ist dabei), somit hat beerhand unrecht, wenn er sagt, dass C# nur unter Windows läuft.
Mittlerweile existieren sowohl in KDE als auch in Gnome einige Programme welche mit Mono entwickelt wurden.
Die bekanntesten sind wohl "Beagle" die Desktopsuchmaschine und "Bunshee" der Musikplayer.

beerhand2007-01-05T23:35:44Z

C# ist ein MS Produkt und deine Programme werden dann auch nur unter Windows laufen. Compiler fuer C++ gibt es fuer alle Systemplattformen. Das heisst wenn du betriebssystemunabhaengig programmieren willst, ist C++ die bessere Wahl. Wenn du dich auf WIN spezialisierst geh mit C#.

Lucius T Fowler2007-01-05T22:32:30Z

"Echte" Programmierer schwören auf C++, aber "C mesh" ist kommerzieller. Mach Letzteres, wenn Du es ernst meinst.