Laden...

Kombination: C# und DirectX

Erstellt von ZeHa vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.085 Views
ZeHa Themenstarter:in
13 Beiträge seit 2006
vor 17 Jahren
Kombination: C# und DirectX

Hallo!

Bin neu hier und hab in C# noch nix gemacht, kann aber einigermaßen in Java und C++ programmieren und denke, daß ein Umstieg auf jeden Fall durchführbar wäre.

Wollte aber mal nachfragen, wie sinnvoll und performant die Kombination aus C# und DirectX ist. Gibt es irgendwo gute Beispiele (Grafikdemos oder Spiele, die in C# programmiert wurden), wo man sich mal einen kleinen Überblick verschaffen kann, was denn so alles geht und was nicht?

Natürlich denke ich, daß DirectX so gesehen uneingeschränkt nutzbar ist - die Frage ist halt nur, inwiefern es sinnvoll ist. Hauptsächlich programmiere ich 2D-Spiele, die ja heutzutage meist nicht mehr die allerhöchsten Anforderungen brauchen 🙂 aber dennoch bin ich mir halt nicht sicher, ob C# für sowas geeignet ist.

Ich hab auch nicht vor, von vorneherein C# schlecht zu machen oder sonstwas - aber da ich einfach bisher noch keine Beispiele gesehen / gefunden habe, kann ich es eben nicht beurteilen. Hier im Forum scheint es auch nicht allzu viel zu geben, was DirectX benutzt. Sicherlich wird C++ mit DirectX performanter sein - die Frage ist letztendlich aber, wie groß der Unterschied zu C# mit DirectX momentan ist und wie stark er sich evtl. noch verkleinern wird.

Ich hätte auf jeden Fall Lust, mich mal ein wenig in C# einzuarbeiten. Für Office-Anwendungen oder andere Tools sehe ich auch keine / kaum Gründe, warum man dafür C# nicht benutzen sollte. Aber wie gesagt, wie das mit DirectX aussieht, konnte ich bisher noch nirgends feststellen.

Ist es eigentlich auch möglich / sinnvoll, OpenGL einzubinden (von wegen Microsoft etc)?

Und noch was, wie ist denn die vorhandene Graphics-Lib einzuordnen? Ist das dann vergleichbar mit den bisherigen Win32-API GDI Sachen? Oder gibt's da auch schon irgendwelche Verbesserungen (natürlich auch hauptsächlich im Sinne von Performance)?

So, genug gelabert 🙂 freue mich über eure Antworten!
ZeHa

G
38 Beiträge seit 2006
vor 17 Jahren

Hallo ZeHa,

erst mal willkommen im Forum! C# und DirectX vertragen sich sehr gut. Allerdings musst du ein relativ neues DirectX haben, denn nur darin ist Managed DirectX enthalten, eine .NET-Erweiterung zu DirectX. Damit hast du unter .NET vollen Zugriff auf DirectX.

C# ist auf jeden Fall schnell genug für Spiele! Es gibt ja auch schon die ersten Spiele, die in C# geschrieben wurden, Arena Wars z. B.

Gerade bei einem 2D-Spiel solltest du da keine Probleme haben, die sind ja nicht ganz so hardware-intensiv wie moderne 3D-Spiele.

Folgendes Werkzeuge brauchst du: die neueste DirectX Runtime, das neueste DirectX-SDK und natürlich einen C#-Compiler. Ich empfehle Visual C# Express Edition von MS. Das Beste: alle diese Werkzeuge kannst du kostenlos bei MS downloaden und unbegrenzt benutzen!

Falls du des Englischen mächtig bist empfehle ich dir die Bücher von Tom Miller. Tom ist der Projektleiter von Managed DirectX bei MS, also einer der weiss über was er da schreibt. Ebenfalls gut ist Beginning .NET Game Programming in C# von David Weller u.a. (deren Namen ich im Moment nicht weiss und das Buch ist nicht in Reichweite). Eine Suche bei amazon sollte dich aber schnell auf die richtige Fährte bringen.

Zu OpenGL kann ich dir leider nicht viel sagen, ich weiss nur, dass es auch hier eine .NET-Anbindung gibt, habe es aber noch ausprobiert.

Wenn du weitere Fragen hast, einfach wieder hier melden!

270 Beiträge seit 2005
vor 17 Jahren

Hallo ZeHa,

Ich kann Gimley nur zu seinen Äusserungen recht geben,und wollte nur noch hinzufügen das dir evtl. mal unsere Tutorial Ecke anschauen solltest da findest du schonmal ein gutes Einsteiger Seminar!

Die vom Framwork verwendete Grafikklasse ist Gdi+ die sich aber keines wegs für,
"schnellere" Spiele eignet(auch im 2d Bereich ->halt zu langsam)...!
OpenGl für C# ist auch möglich,es gibt da anscheinend einige Wapper(einfach mal Googeln).

Alternativ schlag ich dir noch SDL.net vor das sich evtl. für 2d Games anbietet
(habe leider noch nicht damit gearbeitet).

Ansonsten viel Spass hier im Forum!

mfg Hulk!

ZeHa Themenstarter:in
13 Beiträge seit 2006
vor 17 Jahren

Okay, vielen Dank schonmal für die Informationen!

Arena Wars werd ich mir wohl mal anschauen, gibt's noch andere kommerzielle C#-Spiele (ich nehme zumindest an, daß es sich bei dem von Dir genannten um was größeres handelt)?

Mit SDL hab ich auch schon programmiert, daher werd ich wohl auch SDL.net mal anschauen.

Okay, dann meld ich mich wohl wieder wenn ich die ersten Fragen zur Programmierung habe 😁

Bis dann irgendwann
ZeHa

G
38 Beiträge seit 2006
vor 17 Jahren

Arena Wars ist ein kommerzielles Spiel, ja. Es handelt sich um ein Echtzeitstrategiespiel. Verwendet allerdings nicht Managed DirectX sondern OpenGL, ein Großteil des Codes ist in C# geschrieben. Programmiert wurde das Spiel von einem Team namens exdream. Die Entwickler hatten damals im eigenen Forum recht offen über ihre Entscheidung für C# geplaudert. Damals gab es MDX halt noch nicht, darum wurde OpenGL verwendet.

Fang einfach mal an, und wenn Fragen auftauchen einfach hier wieder melden. Viel Glück!

1.549 Beiträge seit 2004
vor 17 Jahren

also zur preformans ist zu sagen das DirektX eigendlich unangetastet geblieben ist und nur ein .NET warper geschrieben wurde.

also ist die Preformance von .NET der Begrenzende Faktor und die wird sich höchst warscheinlich mit vista noch einmal steigern.

was OpenGL angeht würde ich abraten da ich irgendwo mal gelesen habe das OpenGL in zukunft unter win nur noch über DirektX laufen soll.

Wir Arbeiten eigendlich nicht wir nehmen nur das geld