Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

08.09.2017, 03:46

Wie sinnvoll einsteigen in die 3D Programmierung mit C#?

Hallo zusammen,

Seit einiger Zeit lerne ich bereits C# und komme mit der Sprache mittlerweile recht gut klar.
Jetzt wollte ich mich etwas in die 3D Programmierung einarbeiten und bin völlig verwirrt.
Ich habe ein Tut zu DirectX gefunden in Visual Stuidio.
Das Problem was sich allerdings daraus ergab war das die .net 4.0 Version scheinbar damit nicht klar kommt ich habe zwar eine Möglichkeit das Problem zu beheben allerdings bin ich mir nicht sicher ob das "legallisieren" der 1.1 .net Version der sinnvollste Weg ist.....

Um das Problem zusammen zu fassen:
Ich habe derzeit überhaupt keinen Plan mit was ich genau anfangen soll?
Was ist derzeit der sinnvollste Weg um permanente Spiele zu entwickeln?
Von der Performens sollte ein "Minecraft" drin sein.

Ich hoffe mein Problem ist verständlich :)
Vielen Dank für jede Hilfe :)

Tiles

Treue Seele

Beiträge: 168

Wohnort: none

  • Private Nachricht senden

2

08.09.2017, 08:38

Hi Benny93,

Das kommt drauf an wo du hinwillst. Willst du entwickeln oder programmieren?

Willst du Spiele entwickeln? Dann würde ich zu Unity raten. Das nutzt C#. Und du könntest sofort loslegen ohne überhaupt an der Grafik irgendwas machen zu müssen. Denn das bringt Unity ja schon alles mit. Und ein Minecraft sollte damit gehen. Da habe ich schon einige Voxelansätze gesehen.

Willst du Grafik programmieren? Dann führt der Weg wohl nach C++. Wobei es auch ein paar Beispiele von 3D Tools gibt die mit C# entwickelt wurden. Der 3D Modeler Nvil zum Beispiel.

LG

Tiles
Free Game Graphics, Freeware Games https://www.reinerstilesets.de

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tiles« (08.09.2017, 08:46)


Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

3

08.09.2017, 09:08

Auch wenn ich es persönlich nicht so mag, bei 3D in C# ist wohl Unity der gängiste Weg.
Du kannst natürlich auch tiefer in die Materie einsteigen: https://mellinoe.wordpress.com/2017/01/1…re-game-engine/

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

11.09.2017, 11:26

Hier gibt es auf MSDN selbst eine Tutorial Reihe. Wie aktuell das ist kann ich dir nicht genau sagen. Ansonsten gibt es natürlich Alternativen. Zuerst solltest du dir wie bereits gesagt wurde die Frage stellen womit du dich beschäftigen willst. Bei DirectX oder OpenGl musst du dich halt um allen Blödsinn selbst kümmern. Du kannst nicht einfach ein Modell laden und in deinem Code eine passende Animation abspielen. Das musst du alles selbst machen. Du bist hier einfach auf einer sehr sehr niedrigen Ebene auf der normalerweise eine Engine aufbaut, mit welcher dann letzten Endes Spiele entwickelt werden. Für mich gibt es drei Möglichkeiten.
1, du willst dir den Low Level Kram mal ansehen. Dann nimmst du dir halt entweder DirectX wie oben verlinkt oder guckst dir OpenGl an. Da gibt es zum Beispiel das Tao Framework welches dir benötigte C# Bindings liefert. Wenn du auf dieser tiefen Ebene einsteigst würde ich mir jedoch fast überlegen das ganze mit C++ zu machen.
2, du möchtest gerne Spiele ( oder andere 3D Anwendungen ) entwickeln. Hier wurde Unity ja schon genannt. Die Engine liefert dir erst mal unglaublich viel fertig. Du kannst Modelle laden, die im Editor per Drag&Drop platzieren, Verhalten per Mausclick hinzufügen, hast integrierte Physik und vieles mehr. Als Einstieg wäre das erst mal gar nicht schlecht weil du dich hier auf deine Ideen konzentrieren kannst, nebenher aber siehst was da so hinter steckt. Als Beispiel benötigst du Vektor Rechnung, auch wenn dir Unity da schon einiges abnimmt, du lernst Meshs kennen, Materialien und vieles mehr.
3, du möchtest einen Mittelweg. Dann könntest du einen Blick auf Mogre oder Irrlicht Lime werfen. Hierbei handelt es sich um .Net Bindings für Engines welche eigentlich C++ nutzen. Diese Engines nehmen dir zwar auch einiges an Arbeit ab, jedoch nicht ganz so viel wie Unity. Du musst dich nicht darum kümmern wie du ein Fenster erzeugst, wie du ein Modell lädst oder eine Animation abspielst, hast dafür aber kein Komplettpaket was fertiges Verhalten, Physik, Materialeditoren und so weiter angeht. Wenn du hier einsteigen willst wirst du auch mit C++ Code lernen müssen. Es gibt zwar Material zu den Bindings, die meisten Quellen und Tutorials nutzen aber C++. Dort kannst du Code also nicht blind abtippen sondern musst dir überlegen wie du ihn zu C# umschreiben kannst. Das ist an sich gar nicht so schwer, hängt aber davon ab wie fit du mit C# bist und in wie fern du einfachen C++ Code lesen kannst. Zur Not kannst du dir das einfach mal ansehen wenn du dir ein Basis Tutorial zu einem der Bindings in C++ ansiehst und versuchst das ganze mit C# umzusetzen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

5

11.09.2017, 18:00

Also bevor ich mir irgendwelche .NET Bindings angucke, würde ich doch eher direkt was nehmen, was in .NET entwickelt ist. MonoGame fällt mir da auf Anhieb ein.

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

6

11.09.2017, 19:02

MonoGame geht natürlich auch. Ist aber halt "nur" ein Framework und keine Engine. Der Aufwand ist deutlich größer. Allerdings hat man natürlich alle Möglichkeiten. Und OpenSource Engines wie zB DigitalRune

Werbeanzeige