Game Game Engineering

Dieses Thema im Forum "Offtopic" wurde erstellt von DJPX, 22. November 2016.

  1. DJPX
    Offline

    DJPX

    Registriert seit:
    20. Juli 2015
    Beiträge:
    26
    Ort:
    Darknet
    Minecraft:
    IDJPXI
    Hallo Community,
    Ich möchte gerne ein Spiel entwickeln (auf 3D Basis) und mich würde interessieren ob es noch Sinn macht mit OpenGL anzufangen oder ob es schon was neueres gibt. (Was ich nicht suche sind solche Gameengines wie Unity3D oder Unrealengine). Das Spiel wird auch nicht nur von mir entwickelt sondern mit noch 6 - 8 anderen Leuten die mit mir daran arbeiten.

    (Sprachen die ich schon kann sind Java, C++ und Javascript das Spiel wird wahrscheinlich auf C++ geschrieben was OpenGL auch begünstigen würde)

    MfG DJPX
     
    #1
  2. Xhadius
    Online

    Xhadius Administrator

    Registriert seit:
    9. März 2012
    Beiträge:
    762
    Ort:
    Freiburg im Breisgau
    Minecraft:
    Xhadius
    Hallo DJPX,

    um deine Frage kurz und knapp zu beantworten: Ja, es gäbe Vulkan welche als Nachfolger von OpenGL gilt und hierbei eine extremst hohe Effizienz vorweist, da es sehr Hardwarenah ist.
    Dementsprechend ist Vulkan aber auch ziemlich komplex.

    Gruß
    Xhadius
     
    #2
  3. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    656
    Das ist so nicht ganz korrekt. OpenGL und Direct 3D sind aktuelle Standards zur Ansteuerung von Grafikbeschleunigern aka Grafikkarten. OpenGL und Direct 3D sind dabei aber noch immer sehr abstrakt und verschenken daher Performance an manchen Bereichen, weil man durch den hohen Abstraktionsgrad nicht auf alle Bereiche vollen Einfluss hat.

    Mit Vulkan wurde daher eine neue Schnittstelle geschaffen, welche extra dafür gedacht ist aus der Hardware die maximale Leistung rauszukitzeln. Vulkan ist daher keine Verbesserung gegenüber OpenGL oder Direct 3D sondern schlicht eine alternative, wenn man mehr Kontrolle über die Grafikkarte haben möchte. Dazu sollte man aber auch sagen, dass es dumm ist direkt Vulkan zu lernen. Zum einen ist das ganze noch recht jung, wesshalb Wissen darüber vermutlich nicht so weit verbreitet ist als über OpenGL und Direct 3D. Und vor allem richtet sich Vulkan wirklich an Leute, die genau wissen was sie tun. Wenn man z.B. OpenGL lernt, lernt man Grundlagen, die man für Vulkan braucht.

    Wenn es dir übrigens darum geht Spiele zu entwerfen brauchst du keines davon. Nahezu niemand, der Spiele designt arbeitet heute noch direkt mit OpenGL oder Direct 3D. Das wird normalerweise von der Grafikengine abstrahiert. Das heißt man muss einmal unterscheiden zwischen dem Softwareentwickler, der OpenGL benutzt um darauf die Grafikengine mit Partikelsystem, Schatten, Animationssystem und auch das grundsätzliche Laden der Geometrie zu entwickeln und zum anderen zum Softwareentwickler, der dann aufbauend auf dieser Engine die eigentliche Spielogik implementiert.

    So eine Grafikengine kommt normalerweise immer als Paket mit Soundsystem, Framework zum laden der Ressourcen, einem Szeneneditor, einer Skriptsprache für die Spiellogik und oft auch mit einem Framework für Netzwerkprotokolle. Beispiele hierfür sind Unity 3D, Unreal Engine oder auch die Cry Engine. Dazu gibts jede Menge kleinerer Engines die teilweise auch komplett Open Source sind. Die Engine sollte halt zum geplanten Spiel passen. Für einen Oldschool Platformer würde ich z.B. nicht unbedingt Unity verwenden, auch wenn das natürlich möglich ist.

    Was du dir vermutlich komplett abschminken kannst ist auf OpenGL aufbauen und dann direkt dein Spiel drauf zu entwickeln, das ist eine gewaltige Menge Arbeit, bis du überhaupt erst mal verstanden hast, wie OpenGL funktioniert. Wenn du außerdem Grundlegende 3D Elemente haben willst (also nicht nur 2D), wirst du relativ schnell einsehen müssen, dass selbst einfache Geometrie unglaublich viel Performance kostet, wenn man sie nicht korrekt optimiert. Plötzlich musst du dich über Renderreihenfolge, Render Batching, Shader und andere Themen kümmern, bevor du überhaupt halbwegs schöne Framerates siehst.
     
    #3