welche benutzerfreundliche 3d game engine für anfänger - c++?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Du kannst dir Panda3D oder die FLAX Engine anschauen. Die erstgenannte Engine hat im ungefähren Vergleich eine etwas größere Community und meines Erachtens auch eine deutlich bessere (C++-)Dokumentation. FLAX hingegen ist technisch moderner angelegt (sie wurde halt auch 2020 erstmals veröffentlicht) und enthält auch einen eingebauten Scene-Editor.


x0RRY01 
Beitragsersteller
 25.02.2025, 19:36

ja, panda3d's dokumentation gefällt mir auch, ist allerdings nur eine framework für 3d rendering, also hat keinen eigenen editor.

was sagst du zu diesen hier:

  • o3de
  • ogre3d / irrlicht
  • urho3d
  • cryengine
  • flax engine
  • magnum engine
  • anki engine
  • torque3d
  • unigine engine
  • esenthe engine

raylib soll auch sehr beliebt sein.

regex9  25.02.2025, 22:28
@x0RRY01

Ja, Panda3D hat keinen eingebauten Scene-Editor (es gibt lediglich ein paar halbfertige Community-Projekte wie FRAME oder Panda3D Studio). Trotzdem ist es eine vollständige Game Engine, nicht nur ein Rendering-Framework.

Hast du dir die Tools, die du da auflistest, denn selbst schon einmal angeschaut? Mehrere von denen passen doch gar nicht in das Raster, nach dem du suchst.

  • AnKi 3D fokussiert sich bei seinen Features vorwiegend auf Grafikrendering und für die Logikimplementation ist eigentlich Lua angedacht. Außerdem gibt es zu der Engine nur sehr wenig Dokumentation und wie man der offiziellen Seite entnehmen kann, ist sie in noch keinem stabilen Zustand. Für einen Anfänger halte ich das Projekt daher nicht geeignet.
  • Das Irrlicht-Projekt kann als tot betrachtet werden, die letzten offiziellen Releases waren nur noch für Bugfixes und liegen mehrere Jahre zurück. Du kannst dich natürlich immer noch einarbeiten und damit Spiele entwickeln (oder einen Projektfork suchen, der von irgendwem womöglich noch weiterentwickelt wird), aber einem Anfänger würde ich es nicht empfehlen.
  • O3DE nutzt Lua oder Script Canvas für die Logikimplementation. C++-Kenntnisse sind nur gefragt, wenn du die Engine funktional erweitern möchtest (wie im Grunde bei all den vorhandenen Engines, die auf C++ aufbauen). Damit würdest du dich jedoch von deinem eigentlichen Ziel, ein Spiel zu entwickeln, entfernen.
  • Ogre3D ist ein SDK, welches fast nur Rendering Features bietet. Es gibt zwar einiges an Dokumentation, die ich aber trotzdem nicht so gut (für Einsteiger) empfinde.
  • Torque3D nutzt TorqueScript für die Logikimplementation.
  • Das ursprüngliche Urho3D-Projekt ist offiziell tot, nachdem es von einem beteiligten Entwickler zu stark umgekrempelt wurde. U3D wäre das stabile Nachfolgeprojekt, welches für das Scripting auf AngelScript oder Lua setzt. Weitere Forks wie Rebel Fork (rbfx) oder Turso3D sind noch als experimentell eingestuft.

Zu den anderen:

  • CryEngine: Offensichtlich ist die Dokumentation wieder erreichbar. Das war sie über mehrere Monate nämlich nicht. Ich würde dir die Engine trotzdem nicht empfehlen, da du ja Unreal für dich schon als zu schwierig bewertet hast.
  • Unigine: Die Engine habe ich in meiner Antwort nicht erwähnt, da ich eine Einarbeitung im Vergleich zu Unreal nicht als eklatant einfacher erachte (generell stufe ich die Lernkurve aber als moderat ein). Die Dokumentation ist ungefähr gleich gut, doch im Gegensatz zu Unreal gibt es weniger Anlaufstellen für Support.
  • Titan Engine (von Esenthel): Die musst du selbst einmal ausprobieren.
  • Magnum Engine: Das ist ein Framework, welches bis auf einen OpenAL-Wrapper nur auf Grafikrendering fokussiert ist. Ich stufe sie nicht als anfängerfreundlich ein.
raylib soll auch sehr beliebt sein.

Bei raylib handelt es sich, so wie es der Name schon sagt, um eine Bibliothek, keine Engine. Sie hat zwar Basisfunktionen für ein 3D-Rendering, ist allerdings mehr auf 2D-Entwicklung ausgelegt. Für sehr einfache Projekte (z.B. einen Low-Poly Endless Runner) dürfte es reichen.

x0RRY01 
Beitragsersteller
 26.02.2025, 01:48
@regex9
Ja, Panda3D hat keinen eingebauten Scene-Editor (es gibt lediglich ein paar halbfertige Community-Projekte wie FRAME oder Panda3D Studio). Trotzdem ist es eine vollständige Game Engine, nicht nur ein Rendering-Framework.

ich denke, ich werde für den anfang wirklich erstmal mit panda3d gehen und später dann mit youtube tutorials auf die unreal engine umsteigen.

vielen dank für deine hilfe!

Ich bin der Meinnung dass du nach dem Kurs nicht direkt in eine Game Engine gehen solltest, das frustriert dich eher mehr als dass es dir was bringt.

Der Kurs selbst bringt dir ja nur bei wie du einfache Dinge in C++ umsetzt nicht aber tiefgehendes wissen.

Ich würde hier erst einfache Konsolenprogramme umsetzen wie zB für Beginner einen Rechner auf der Kommandozeile der "1 + 2" parsen kann und dann eben das Ergebnis ausgibt. Wenn du jetzt AdHoc sagen kannst wie du das lösen würdest dann kannst du es überspringen wenn du da erstmal lang überlegen musst dann solltest du es auch machen.

Spiele Engines wie das genannte Panda3D unterstützen dich zwar massiv bei dem ganzen allerdings kanns da auch schnell zu solchen Problemen kommen die auf den ersten Blick für einen Anfänger schlichtweg unmöglich scheinen werden.


x0RRY01 
Beitragsersteller
 23.02.2025, 19:47
das frustriert dich eher mehr als dass es dir was bringt.

warum sollte es, wenn ich hoch motiviert dafür bin?

Der Kurs selbst bringt dir ja nur bei wie du einfache Dinge in C++ umsetzt nicht aber tiefgehendes wissen.

wie du darauf kommst, dass man in diesem kurs nur "einfache" dinge lernt?

Ich würde hier erst einfache Konsolenprogramme umsetzen wie zB für Beginner einen Rechner auf der Kommandozeile der "1 + 2" parsen kann und dann eben das Ergebnis ausgibt. Wenn du jetzt AdHoc sagen kannst wie du das lösen würdest dann kannst du es überspringen wenn du da erstmal lang überlegen musst dann solltest du es auch machen.

ich weiss nicht, welche vorstellung du von diesem kurs hast aber dieses thema wurde bereits in 4.10 chapter 4 gelehrt, was bedeutet, dass ich das schon lange kann - ich bin bald bei chapter 6.

Kelec  23.02.2025, 19:52
@x0RRY01
warum sollte es, wenn ich hoch motiviert dafür bin?

Weil es sehr demotivierend sein kann wenn man die Doku nicht versteht oder wenn man lange an einem Problem hängt weil man sich zu viel vorgenommen hat.

Ich weiß ja am Ende auch nicht wie du das ganze beginnen willst, wenn du mit einer Spielelogik beginnst wirds so auch kein Problem sein. Wenn du direkt ein vollwertiges Spiel programmieren willst kann es eben gut sein, dass du relativ bald an einem Punkt bist wo du nicht weiter kommst.

wie du darauf kommst, dass man in diesem kurs nur "einfache" dinge lernt?

Weil ich die meisten Kurse so kenne, dass du eben ein Set an bestimmten Dingen lernst, zB Syntax usw aber so Dinge wie "Problemlösungsskills" kann man schlecht vermitteln die lernt man selbst.

ich weiss nicht, welche vorstellung du von diesem kurs hast aber dieses thema wurde bereits in 4.10 chapter 4 gelehrt, was bedeutet, dass ich das schon lange kann - ich bin bald bei chapter 6.

Ich kenne deinen Kurs nicht, aber das war lediglich ein Beispiel. Es geht darum wie lange du brauchst bis du eine Idee hast damit du ein Problem lösen kannst welches du vorher noch nie gesehen hast.

Ich kenne es von einigen Personen aus meinem bekannten Kreis und die konnten zwar die Beispiele die im Kurs gelehrt wurden Problemlos lösen aber oftmals fehlte dann das Abstrakte Denken welches notwendig ist, damit man ein komplexes Problem in Teilbereiche zerlegt und das gelernte auch Anwenden kann wenn man vor einem Problem steht welches man vorher noch nie gesehen hat.

Und da geht es natürlich nicht um kleine Probleme die du leicht googeln könntest.

Das geht eben über das "reine Programmieren" weit hinaus.

x0RRY01 
Beitragsersteller
 23.02.2025, 20:01
@Kelec
Weil es sehr demotivierend sein kann wenn man die Doku nicht versteht oder wenn man lange an einem Problem hängt weil man sich zu viel vorgenommen hat.

ich weiss, was du meinst aber ich hatte mit diesem problem ja schon zb in chapter 4 von diesem kurs zu tun und konnte dieses problem dann mit ein paar tricks in 1-2 tagen lösen.

Ich weiß ja am Ende auch nicht wie du das ganze beginnen willst, wenn du mit einer Spielelogik beginnst wirds so auch kein Problem sein.

ich will mich (erstmal) hauptsächlich auf indie games konzentrieren.

Wenn du direkt ein vollwertiges Spiel programmieren willst kann es eben gut sein, dass du relativ bald an einem Punkt bist wo du nicht weiter kommst.

ich will jetzt kein fortnite 2.0 machen^^

aber verstehe deinen punkt!

Weil ich die meisten Kurse so kenne, dass du eben ein Set an bestimmten Dingen lernst, zB Syntax usw aber so Dinge wie "Problemlösungsskills" kann man schlecht vermitteln die lernt man selbst.

tatsächlich werden in diesem kurs auch problemlösungsskills gelehrt, was ich zb in anderen online-kursen wieder nicht gesehen habe, was ich an diesem kurs wieder toll finde.

Ich kenne es von einigen Personen aus meinem bekannten Kreis und die konnten zwar die Beispiele die im Kurs gelehrt wurden Problemlos lösen aber oftmals fehlte dann das Abstrakte Denken welches notwendig ist, damit man ein komplexes Problem in Teilbereiche zerlegt und das gelernte auch Anwenden kann wenn man vor einem Problem steht welches man vorher noch nie gesehen hat.
Und da geht es natürlich nicht um kleine Probleme die du leicht googeln könntest.
Das geht eben über das "reine Programmieren" weit hinaus.

das ist mir absolut bewusst.

Kelec  23.02.2025, 20:08
@x0RRY01

Wenn du dir darüber im klaren bist kannst du es gerne versuchen. Mein Punkt ist nur, dass du in keinem Kurs (zumindest keinen den ich kenne, auch nicht an der Universität) welche die Problemlösungsskills direkt mitbekommst.

Du hörst davon kennst vielleicht einige Strategien nur die Anwendung in der Praxis sieht dann eben wieder ganz anders aus.

Das ist zB auch das Ding warum viele Studenten ein technisches Studium und insbesondere die Mathematik darin schwer finden.

Ein Beispiel aus meinem Studium um es mal zu verdeutlichen, wir haben in der Uni zB Wärmeübertragungen gerechnet. In der Vorlesungen hatten wir ein Beispiel von einem Balken welcher an einem Ende geheizt wird und wir haben den Temperaturverlauf an der anderen Seite gerechnet.

In der Prüfung war das Beispiel "Ein runder Satellit befindet sich in einem Kreisförmigen Orbit um die Erde und wird da 6h lang von der Sonne beleuchtet und 3h lang nicht. Welche Temperatur stellt sich in der Mitte des Satelliten im Mittel ein und um wie viel schwankt sie".

Das ist genau genommen das selbe Beispiel du hast eben nur eine Kugel die du von einer Seite heizt und keinen Balken, die Mathematik ist aber sehr ähnlich, nur muss man das erstmal erkennen und zum erkennen hast du in dieser Situation maximal 10min Zeit.