Laden...

C# zur 3D Grafikprogrammierung

Erstellt von Gaander vor 12 Jahren Letzter Beitrag vor 12 Jahren 9.612 Views
Thema geschlossen
Gaander Themenstarter:in
6 Beiträge seit 2012
vor 12 Jahren
C# zur 3D Grafikprogrammierung

Hallo liebes Forum!

Ich stehe gerade vor einer Entscheidung und habe gehofft, dass ihr mir dabei helfen könnt.

Zuerst ein wenig Vorgeschichte:
Nachdem ich als Kind meine ersten Programmiererfahrungen in Basic auf einem damals sagenhaft schnellen 386er gemacht hatte, wusste ich, dass ich irgendwann mal
Computerspiele programmieren wollte.

Leider, wie es im Leben nunmal oft läuft, habe ich eine solche Kariere nie begonnen und arbeite nun als Informatiker (immerhin habe ich stapelweise Computer um mich...)
Das Programmieren hat mich aber nie wirklich losgelassen. Es ist aber leider nur bei einem Hobby geblieben.
Im Studium habe ich mich noch ein wenig darin vertiefen können.

Ich behersche C/C++ nach einigen Jahren endlich gut genug um damit relativ zufriedenstellende Ergebnisse zu erzielen (Das dürft ihr euch auslegen wie ihr mögt 😉 )
Vor einer Weile habe ich C++ in Kombination mit .Net gelernt und bin dann ganz schnell zu C# gekommen, weil es in Kombination mit .Net doch um einiges komfortabler ist (oh ja.. ich habe mich fast schon in die erfrischend "saubere" Art von C# verliebt 😉 )

...

Alsdann!
Beflügelt von dem momentanen Boom der Indi-Games (Hut ab, Herr "Notch"!), möchte ich mein Hobby ein wenig ausdehnen und ENDLICH anfangen grafisch zu programmieren. genauer gesagt, soll es in Richtung 3D-Programmierung gehen.
Doch so einfach ist das nicht! Was ich mir früher so einfach vorgestellt hatte, ist heute ein Sammelsurium an Möglichen Herangehensweisen.
Ich grübel nun schon seit Wochen, wie ich an die Sache herangehen soll, lese Blogs, Foren, Probeweise Bücher, etc..

Die Optionen wären z.B.:
C++ und DirectX
Java und OpenGL
C# und XNA
oder jede beliebig mögliche Kombination daraus.

Industriestandard ist C++/DX. Soviel ist klar.

Aber am liebsten hätte ich C# und DirectX genommen doch schein Microsoft das ganze mittlerweile sehr stiefmütterlich zu behandeln.

Wenn ich richtig informiert bin,
gab/gibt es ja für C# ein managed DX, was inzwischen tot ist und mehr oder weniger durch XNA abgelöst wurde.
XNA soll wiederum nicht so der Kracher und eher auf die XBox ausgelegt sein.
Außerdem soll die Unterstützung im kommenden Win8 non-existent sein..
Daher will mir das ganze Konzept von XNA nicht wirklich gefallen.
Hier ein sehr schöner Artikel dazu:
DirectX vs XNA

So sehr ich mein so unheimlich liebgewonnenes C# benutzen möchte, habe ich die Befürchtung, dass es in Richtung Spieleprogrammierung eher mager aussieht.

Java und OpenGL ist ja inzwischen auch ziemlich Hip geworden, aber ich bin da noch etwas skeptisch.

Tja.. C++ ... gutes altes C++... jetzt wo ich C# kennengelernt habe will man eigentlich nicht wieder zurück 👅
Aber kann es denn echt sein? Wird es immer bei C++ und DX bzw. OGL bleiben?
Das muss doch auch moderner gehen X(

Da es ein Hobby ist, und das bedeutet nunmal leider, dass ich wenig Zeit pro Woche investieren kann, möchte ich ungerne einen Weg einschlagen um dann nur nach etlichen Monaten zu merken, dass eine anderer Weg wohl doch der Bessere gewesen wäre. Klar, dass da XNA oder Unity mit ihrer Einfachheit locken.. aber es würde mir nie das Gefühl geben es wirklich "verstanden" zu haben..

Daher würde ich sehr gerne eure Meinungen hören.

Auch auf die Gefahr hin, dass ich wegen subjektiver Fragestellung virtuell gesteinigt werde 👅

Grüße
Gaander

Hinweis von herbivore vor 12 Jahren

... nicht wegen der subjektiven Fragestellung, sondern weil du nicht vorher in die FAQ 3D Logistiksimulation: Wie ist das realisiert bzw. wie kann man sowas realisieren? geguckt und uns damit den Thread erspart hättest.

B
357 Beiträge seit 2010
vor 12 Jahren

Hi ho,

ich glaube vorab sollte man sich von der Vorstellung verabschieden, dass man mal in ein paar Monaten einen Spielekracher in Eigenregie produzieren kann. Das gilt umso mehr, wenn man auch das Grundgerüst selbst entwickeln will.

Ich selbst habe mich einige Zeit mit XNA beschäftigt. Allerdings weiß ich auch nicht, wie es dort weitergeht, zumindest würde ich gerne wissen, wie es unter Win8 damit aussieht (ich denke zwar, es läuft weiterhin, aber offizieller Support wäre halt doch noch etwas besser). Daher habe ich mich auch mit Unity beschäftigt und mache dort meine ersten Gehversuche. Bisher bin ich davon recht angetan.

Was deine Sorge des "nicht richtig verstehens" angeht... da muss man sich wohl irgendwann entscheiden, ob man eher der Technik-Guru ist, oder doch eher die richtig guten Spieleideen hat (entscheiden ist das falsche Wort, "begabt sein" trifft es eher. Beides zusammen tritt wohl so selten auf, dass mir niemand bekannt wäre. Insofern musst du wohl entscheiden, ob du mehr in die Technik gehen willst (Grundgerüste entwickeln) oder aber vielleicht doch eher der geniale Spieleerfinder bist, der lauter gute Ideen hat, sich aber mehr mit der Contenterschaffung, statt dem Technikkram unter der Haube, beschäftigen will.

Prinzipiell aber halte ich C# ebensogut möglich, wie C++.

223 Beiträge seit 2009
vor 12 Jahren

Eine ähnliche Frage hatte ich letztens auch gestellt.

siehe 3D Logistiksimulation: Wie ist das realisiert bzw. wie kann man sowas realisieren?

Dazu wurde auf folgenden Beitrag in den FAQ verwiesen:

[FAQ] Wie finde ich den Einstieg in die 3D-Programmierung mit C#?

Vielleicht hilft dir das weiter.

Grüße Pico

5.658 Beiträge seit 2006
vor 12 Jahren

Hi Gaander,

also wenn dein Ziel ist, so schnell wie möglich etwas "vorzeigbares" auf die Beine zu stellen, würde ich dir zu C# und einer Spiele-Engine wie Irrlicht oder Ogre.NET raten.

C++ mag zwar "Industriestandard" sein, aber die Techniken sind mit C# die gleichen. Wenn man für einen Spieleentwickler arbeitet, muß man sich auch nicht unbedingt mit den "Basics" beschäftigen, weil die Spieleengine ja meist schon fertig ist und nur verwendet wird.

Es gibt übrigens noch eine Variante ganz ohne C++ oder C#: Die CryEngine Sandbox für nicht-kommerzielle Nutzung.

Christian

Weeks of programming can save you hours of planning

Gaander Themenstarter:in
6 Beiträge seit 2012
vor 12 Jahren

Hallo Pico, bredator und MrSparkle!

Danke für eure schnellen Antworten!

Natürlich möchte ich nicht direkt einen Spiele-Kracher programmieren! 😉
Mich würde es anfangs schon völlig begeistern, wenn ich es schaffe eine steuerbare Kamera in einem quadratischen Raum zu programmieren. 😁
Ich möchte schon gerne ein wenig unter die Haube gucken und schrauben können. Direkt eine Spiele-Engine zu benutzen halte ich daher für zu früh. Aber ist am Ende sicherlich interessant!

Mit deinem Ansatz, zu überlegen, ob ich eher der kreative oder der technische Typ bin , hast du nicht unrecht! Ich denke, ich bin eher der Ideen-Mensch mit einer Faszination für's Technische 😉

Pico, herzlichen Dank für den Link zum FAQ! Da sind ja großartig die Möglichkeiten der 3D-Programmierung unter C# geschildert! Werde ich mir gleich mal durchlesen!
(Irgendwie muss ich bei meiner Suche was falsch gemacht haben 🤔 )

Irgendwie beschleicht mich aber wieder das Gefühl, dass die Schnittstellen für C# in Sachen 3D-Programmierung noch in den Kinderschuhen stecken..

Mich würde mal interessieren, was hier der "Main-Stream" ist.
Was 'nutzt' denn so die Masse? Welche Technologie hat auf langer Sicht die besten Aussichten?

Fragen über Fragen 😉

5.658 Beiträge seit 2006
vor 12 Jahren

Hi Gaander,

Mich würde es anfangs schon völlig begeistern, wenn ich es schaffe eine steuerbare Kamera in einem quadratischen Raum zu programmieren. 😄

Dann würde ich dir unbedingt ans Herz legen, mal ein paar Einsteiger-Tutorials von SlimDX und von XNA durchzuarbeiten. Dann weißt du sehr schnell, wie es funktioniert und ob dir das liegt.

Irgendwie beschleicht mich aber wieder das Gefühl, dass die Schnittstellen für C# in Sachen 3D-Programmierung noch in den Kinderschuhen stecken..)

Ganz im Gegenteil. Man hat unglaublich viele Möglichkeiten, und es ist im Gegensatz zu allen anderen Möglichkeiten wesentlich einfacher! Die hardwareseitige Programmierung ist mit SlimDX oder XNA (OpenGL wollen wir aber auch nicht vergessen) perfekt abgebildet, und es gibt ausgereifte Spiele-Engines, die das GamePlay, das Szenen-, Netzwerk- und Soundmanagement übernehmen.

Mich würde mal interessieren, was hier der "Main-Stream" ist.
Was 'nutzt' denn so die Masse? Welche Technologie hat auf langer Sicht die besten Aussichten?)

Eine solche pauschale Frage kann auch nur so pauschal beantwortet werden: Kommt darauf an 😃
Auf jeden Fall findest du in dem verlinkten Artikel ein paar gute Gründe für oder gegen die jeweilige Technologie.

Viel Spaß schonmal beim Einstieg!
Christian

Weeks of programming can save you hours of planning

Gaander Themenstarter:in
6 Beiträge seit 2012
vor 12 Jahren

Es ist tatsächlich mehr mit C# möglich als ich Anfangs angenommen hatte! 8o
Wie schön, immer wieder damit überrascht zu werden wie wenig man doch weiß und wie viel es noch zu entdecken gibt. 😁

Dann werde ich erstmal Spaß am Experimentieren mit den verschiedenen Technologien haben und dabei mit C# weitermachen können. Prima!

Ich danke euch, für eure raschen Antworten und Meinungen zu dem Thema.

You made my day 👍

925 Beiträge seit 2004
vor 12 Jahren

Wenn es unbedingt C# sein muss, und ich verstehe durchaus, warum, dann kann ich dir für einen Einstieg auch die Unity 3D Engine empfehlen (http://www.unity3d.com). Diese lässt sich wunderbar in C# programmieren und bietet enorme Möglichkeiten.

Beispielsweise programmieren wir vom RobOtter Club Hamburg (nein, das ist kein Tippfehler) unseren Otter 2 damit, obwohl's in erster Linie eine Spieleengine ist. Es

gibt sie auch in einer Free Version, die allerdings ein wenig eingeschränkt ist. Beispielsweise enthält sie keine vorgefertigten Wegfindungsroutinen, im Gegensatz zur Pro. Das ist allerdings keine Hürde, denn die kann man sich, genügend Hirnschmalz und Motivation vorausgesetzt, auch selber schreiben.

Darüber hinaus ist das Ding komplett erweiterbar mit eigenen Editoren und Plugins. Wir basteln zum Beispiel gerade an einem Strategie-Editor, der es uns ermöglicht, die Spielstrategie des Roboters quasi im Betrieb per Klickibunti zu ändern.

Schau's dir mal an! Ich find das Ding ziemlich cool. Es sei denn, du hast wirklich vor, alles komplett von Null an selbst zu schreiben.

Thema geschlossen