Wie realisiert man am besten ein in-Game Menu (GUI) für ein Computerspiel bei Verwendung von OpenGL



  • Hallo,

    ich habe mal folgende Frage.

    Wie geht man am besten vor, wenn man für ein Computerspiel ein GUI Menu schreiben
    will, das mit OpenGL realisiert werden soll?

    Das Menu sollte flexibel und leicht zu ändern sein
    und optisch auch gut aussehen.
    Die Bedienung soll wie bei GUIs üblich mit der Maus und der Tastatur
    möglich sein.

    Desweiteren sollte die Möglichkeit bestehen, daß im Hintergrund
    die 3d Welt des eigentlichen Spieles abläuft.
    D.h. es sollte nicht nur eine normale 2d GUI sein die in ihrem eigenen 2d Fenster läuft bei der dann erst hinterher die eigentliche 3d Spielwelt
    geladen wird nachdem man auf Start gedrückt hat, sondern
    das, was ich mir als GUI vorstelle sollte mehr etwas wie
    das Intro Menu von Unreal 1 oder Command & Conqueror Generals sein,
    bei dem im Hintergrund irgendeine Spielzene des eigentliches Spieles
    abläuft und man davor im Vordergrund dann die eigentliche GUI mit ihren Buttons und Info Fenstern hat.

    Wie macht man so etwas, wenn es professionell gemacht sein soll?
    Wie ist die beste Vorgehensweise?

    Aufgrund dessen, das das Menu leicht änderbar sein sollte, sollte
    es auch wenn möglich nicht fest in den Progammcode (also hardcoded)
    eingearbeitet sein, sondern z.B. über eine XML Datei definierbar sein.



  • sdf schrieb:

    <jeder menge anforderungen>

    zwei möglichkeiten.. du suchst eine fertige lib, die deine ansprüche bedient, oder du schreibst selbst eine, was dann aber grade in bezug auf callbacks schon ein bißchen ahnung voraussetzt (einen funktionszeiger sollte man schonmal gesehen haben und man darf sich entscheiden, ob parameter in einheitlicher form übergeben werden oder als variabler block, der dann auch besser zur funktion paßt, wenn es nicht in die hose gehen soll).

    außerdem: elemente von "außen" mit einer funktion verbinden ist wieder lästiger aufwand (wird auf eine lustige tabelle rauslaufen, die strings einem funktionszeiger zuweisen).

    eine nicht von außen konfigurierbare (aber im zweifelsfall leicht änderbare) version:

    http://festini.device-zero.de/Programming/Downloads/minigui.zip
    die flexible ist noch in arbeit

    nebenbei ist es nicht sache der gui ob sie vorne, hinten, allein, auf einer autoscheibe oder vor der szene gerendert wird. gui ist gui und schert sich im zweifelsfall nicht darum, wo, wie und warum sie gerendert wird.



  • Auch zu empfehlen sind die GUI Parts von Clanlib. www.clanlib.org Sieht im Defaultstil etwa so aus, wie Halflife/Steam.


Log in to reply