Du bist nicht angemeldet.

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

Frischling

Beiträge: 76

Beruf: Rentner

  • 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 http://www.reinerstilesets.de

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


Wirago

Alter Hase

Beiträge: 1 132

Wohnort: Stockerau

Beruf: IT - Online Sevices

  • 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/
kleincodiert.at
Deine Seite für den schnellen Einstieg in C++, C# und Java


Aktuelles Projekt:
Twelve Orbs - The Balance Of Life (A 2D Fantasy RPG)

Schorsch

Supermoderator

Beiträge: 4 991

Wohnort: Wickede

Beruf: Student

  • 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 669

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.
Software documentation is like sex. If it's good you want more, if it's bad it's better than nothing.

Wirago

Alter Hase

Beiträge: 1 132

Wohnort: Stockerau

Beruf: IT - Online Sevices

  • 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
kleincodiert.at
Deine Seite für den schnellen Einstieg in C++, C# und Java


Aktuelles Projekt:
Twelve Orbs - The Balance Of Life (A 2D Fantasy RPG)

Werbeanzeige