Mit welcher programmiersprache 3D programmieren lernen?

4 Antworten

Python sollte auch gehen, aber für 3D games sollte Unreal Engine gehen habe aber keine erfahrung damit und was man bei UE braucht

Nun da stellen sich aber viele Fragen. Kannst du denn überhaupt schon programmieren? Wenn nein, dann solltest du erst einmal die Basis lernen. Übertragen kannst du dieses Wissen dann nachher leicht in andere Sprachen.

Ansonsten kommst es natürlich stark drauf an, welche Engines man später heran zieht, ob es Unity ist, wofür sich C# eignet oder z.B. die Unreal Engine, die soweit ich weiß eher auf C+ setzt. Klar gibt es noch etliche andere Engines und die Möglichkeit selbst was zu machen.

Wenn du die Basis im Programmieren hast, dann kannst du dich an die Basis im Bezug auf Games machen, Darstellungen, Kameras, Kollisionsabfragen, die Gameloop und ggf. ein paar einfache 2D Spiele erstellen z.B. mit SDL und C/C++.

Ergänzend kann zu der Zeit natürlich auch etwas Mathematik dazu kommen. Zumindest Vektoren und trigonometrische Funktionen sollten sitzen.

Dann hast du das Handwerkszeug um dich an entsprechende Games zu machen. Dann folgt die Auswahl der Engine, einarbeiten in die entsprechende Entwicklungsumgebung und ab geht es.

Wenn keine Bücher, dann sollte dir Google, als auch sowas wie Youtube mehr als genug rausschmeißen. Wenn du uns sagst wie deine Kenntnisse aktuell in den entsprechenden Bereichen aussehen, kann man dir sicher auch ein paar Links geben.

Nix desto trotz sollte deine #1 Fähigkeit als Programmierer sein, Google zu benutzen. Deine Probleme vernünftig zu beschreiben, wissen wie du was findest usw, denn das ist etwas, dass du gefühlt alle 2 Minuten brauchst, wenn du dich an einen neuen Bereich wagst.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012
Simi51 
Fragesteller
 18.08.2017, 19:18

Ich hab C++ und Sfml gelernt (Grundlagen und bisschen mehr) und ich google auch oft und hab damit auch oft schon eine Lösung gefunden

0
apachy  18.08.2017, 19:58
@Simi51

Nun wenn du C++ schon kannst, dann liegt die Unreal Engine nah. Natürlich kannst du dich auch direkt an Direct3D oder OpenGL ranwagen. Eine entsprechende Engine mit entsprechenden Entwicklungsumgebungen nimmt dir da aber natürlich eine Menge ab.

Auf der offiziellen Seite zur Unreal Engine selbst findest du einige kleine Videotutorials, ansonsten findest du auch bei Youtube genug Stoff. Je nachdem ob du was zu lesen haben möchtest oder Videotutorials und wie gut dir englisch liegt.

Was natürlich auch sehr schön ist, ist dass das aktuelle Unreal Tournament quasi zusammen mit der Community entwickelt wird und es da auch sehr viel Material zu gibt, um sich mal den Workflow anzuschauen usw.

Auch hat Twitch einige Communites zum Programmieren bzw. auch explizit zur Spieleprogrammierung und zur Unreal Engine findest du dort ebenfalls eigene Kanäle.

Wenn dir eher etwas Schriftliches taugt, dann sind die docs und die api Beschreibung auf der offiziellen Seite natürlich auch sehr hilfreich:

https://docs.unrealengine.com/latest/INT/Programming/index.html

Einfach mal reinschauen aber ggf. auch ein Blick über den Tellerrand wagen und mal 1-2 Stunden in einen Stream zu Unity reinschauen.

Meiste ist zwar im Web Englisch aber gerade Videos und Streams erlauben ein eben zu sehen was passiert, auch wenn man mit englisch nicht so klar kommen sollte. Viel ist bei den Engines ohnehin innerhalb der IDEs grafisch gelöst.

0

3D-Grafikbibliotheken wie OpenGL oder die DirectX API basieren auf C/C++, daher würde es sich lohnen, mit einer dieser beiden Sprachen zu beginnen.

Tutorials u.ä. findest du auf den Herstellerseiten, auf Videoplattformen wie video2brain und in Büchern (die man sich auch aus Bibliotheken ausleihen kann). Mit der englischen Sprache wirst du auf jeden Fall früher oder später konfrontiert werden. Also schau, dass du lernst, englische Texte zumindest zu verstehen.

Jede Programmiersprache hat mehr oder weniger komplexe Funktionen.

Das meiste habe ich nie gebraucht plus/minus und manchmal eine Mulotiplikation war alles -- selbst für GUIs.

Für 3D-Programmierung nehme ich mal stark an, wirst du auch komplexere Funktionen wie log, sin, cos usw. benutzten müssen/dürfen (könntest die natürlich herleiten).

Komischerweise -- obwohl dies aus deiner Frage nicht direkt rauszulesen ist -- habe ich den Eindruck, dass du dir erstmal Grundlagen über 3D (damit mein ich vor allem erst mal einfache Sachen, wie Perspektive, sichtbare/unsichtbare Flächen beibringen musst (um so Sachen z.B. in JAVA machen zu können) -- vielleicht auf einem Blatt Papier eine 3D-Zeichnung erstellen und dann versuchen von JAVA zeichnen zu lassen.

Oder du greifst auf eine der vielen 3D-Bibliotheken zurück und benutzt wild die vorgefertigten Funktionen, in der Hoffnung, dass das richtige passiert.

(Hast du dann noch bewegte Objekte ...)