C# & Gameprogramming

Fireface

Grünschnabel
Hi Leute!
Es ist mir zwar schon aufgefallen das C# sehr an OOP hängt und leistungsfähig ist, aber steckt in C# auch das potential einr leistungsfähigen 3D Engine? Ich kein Freund der OOP, deshalb kann ich mir einfach nicht vorstellen nur mit Klassen und co zu proggen!

CU Fireface
 
IMHO wird C# durch den JIT-Compiler so abgebremst, dass z.B. ein 'Unreal Tournament' damit nicht realisiert werden könnte.
Außerdem glaube ich, dass der Zugriff auf 3D-APIs wie OpenGL oder Direct3D mit C# nicht so einfach wenn nicht sogar unmöglich ist. Aber glauben heißt nichts wissen, also bitte ich mal um Aufklärung, falls da jemand genaueres weiß :)
 
Hmm, es ist bestimmt möglich, sofern man es schafft Zugriff auf DirectX zu kriegen *g*.
Wegen dem OOP mach ich mir die wenigsten Sorgen, da schließlich die Engines in C++ auch längst auf OOP (oft sogar COM) basieren.
Das größere Problem sehe ich darin, dass es kaum jemanden interessieren dürfte von C++ auf C# zu wechseln, da C++ vom Sprachumfang her leistungsfähiger ist (Und wenn man schon in C# programmiert wird man dennoch WinAPI & DirectX brauchen, das heißt die CLR ist kein Argument *g* (abgesehen davon gibt's für C++ (standard oder auch zusätzlich) umfangreichere Libraries)
 
compiler

hast ja recht, der Zugriff auf die Apis ist sicher möglich, ich meinte mit OOP nur, das ich glaube dass wegen ihr einer Ordentlichen Engine das potential fehlt.....
egal jetzt, ich hab mich entschlossen dass ich mir Sprache mal ansehen werde, Probleme hab ich nur mit dem Compiler. Gibts da schon einen Freeware, weil ich will jetzt nicht schon wieder wegen Raubkopien diskutiern.... ;)

cu :)
 
Im .NET-Framework SDK is AFAIK einer drin.
Wg. OOP: Ich glaube ohne OOP fehlt einer modernen Engine das Potential. (Der Code würde unüberschaubar, Modularität & Erweiterbarkeit ein Fremdwort, "den Code warten" ein Äquivalent zu "am besten wir schreiben's gleich neu")
 
Das größere Problem sehe ich darin, dass es kaum jemanden interessieren dürfte von C++ auf C# zu wechseln, da C++ vom Sprachumfang her leistungsfähiger ist

Das ist nur zur haelfte richtig. Das .net Framework liefert jetzt bei der version 1.0 schon 4000 Klassen von haus aus.
Und da schon 2004 ein Windows.net geplant ist wird .net die WinAPI wie sie jetzt besteht abschaffen und abstrahieren.
Sprich zur Zeit stimmt das noch aber in naher zukunft nicht mehr.

IMHO wird C# durch den JIT-Compiler so abgebremst, dass z.B. ein 'Unreal Tournament' damit nicht realisiert werden könnte.

Das ist richtig. Aber fuer Spieleprogrammierung ist C# auch nicht entwickelt worden. Genausowenig spielte auch Visual Basic in Gameprogrammierung keine!! rolle.
Ist wie bei allen anderen Werkzeugen auch:
Mann kann mit ner Schere(C#) Papier zerschneiden, mit der Motorsaege (C/C++) wohl eher nicht dafuer aber Baeume(Spiele :)) faellen...

In allen faellen sei gesagt :
C# und .net allgemein ist fuer Windowsanwendungen und Webanwendungen entwickelt worden und auf k einen Fall fuer Spiele !
 
Original geschrieben von HolyFly
Das ist nur zur haelfte richtig. Das .net Framework liefert jetzt bei der version 1.0 schon 4000 Klassen von haus aus.
Und da schon 2004 ein Windows.net geplant ist wird .net die WinAPI wie sie jetzt besteht abschaffen und abstrahieren.
Sprich zur Zeit stimmt das noch aber in naher zukunft nicht mehr.

Es geht nicht um die Klassen, schon gar nicht um die vom .NET-Framework (die sind ja schließlich auch in C++) verfügbar und es drüfte kein Problem sein Millionen von Klassen für C++ aufzutreiben... (Schon allein die STL is ja auch nicht gerad klein).
Es geht primär um den Umfang der Sprache selbst, hier mal ein paar Stichworte (wenn du willst kriegst du mehr auch ;)): Templates, Multiple-Inheritance, Pointer & Referenzen (ich weiß dass C# das "intern" handlet, was aber meiner Meinung nach dadurch die Typsicherheit von C# weit unter die von C++ absenkt), generelle Container-Klassen (-> STL, ich hab sowas unter C# zumindest noch nicht gefunden) ...
 
Schau dir ArrayList
Stack Quoe Klasse an und insgesammt im Verzeichniss :
System.Collections

Wegen Typsicherheit laesst sich streiten, denn C++ ist ebenso bekannterweise nicht unbedingt sooo typsicher.

Aber wie gesagt:
C# ist ein Werkzeug fuer Windows Anwendungen genauso wie es z.b auch Delphi ist. In delphi wirst du als C++ Programmierer auch nicht gluecklich weil Templates usw in der Form nicht auffindbar sind (oder sindses ? Delphi knowledge == false)
Doch wenns darum geht fuer einen Kunden nen DB Admin aufzusetzen dann ist Delphi die perf. wahl :) ...klick klick ...fertig :D

Es ist eine Frage der Aufgabe. Ne die STL ist nicht klein. Aber die STL ist als einzige als eine "allgemein" gueltige Library enthalten also das was dem "mitgelieferten" Framework am nahesten kommt.

Ich geh aufgrund deinem Textes davon aus das du grad C# bzw .net lernst ?
Was sind deine "sonstigen" Eindrueck ?
 
Hmm, Vergleich mal das "kleine" System.Collections mit der STL (z.B. http://www.sgi.com/tech/stl/).

C++ konvertiert zwar implizit z.b. 32-Bit auf 16-Bit oder real -> integerm allerdings MIT WARNUNG (sofern du den Warn-Level nicht runterdrehst ;))

Wohingegen das meiner Meinung nach absolut falsch für eien Programmiersprache ist:

System.Int32 eineZahl; // Wert, wie erwartet
MeineKlasse eineKlasse; // Referenz?? woher, wieso??

Während Referenzen in C++ mit '&' eindeutig gekennzeichnet werden:

int eineZahl; // Wert
MeineKlasse eineKlasse; // Wert
MeineKlasse& refEineKlasse; // Referenz
MeineKlasse* ptrEineKlasse; // Pointer

Nur damit du nmich nicht falsch verstehst: Für Webanwendungen ist C# IMO gut geeignet, aber so "stark" wie C++ wird es sicher nie sein.
(Ich persönlich sehe C# gern als "kleiner Bruder" von C++ (kompakt, aber eben nicht so umfangreich) ;))

EDIT:
Ich habe C# mal vor nem halben Jahr oder so ein wenig programmiert, aber bin eigentlich bei C++ geblieben und hab nur nebenbei ein wenig mit C# "rumgespielt" (für ASP.NET ist es wirklich nützlich).
In letzter Zeit hatte ich wieder ein wenig mehr damit zu tun, da meine COM Objekte unter allen Sprachend ei COM unterstützen funtkionieren sollen (allerdings teste ich sie nur unter C++, C#, VB(.NET) und evtl. SmallTalk)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück