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 arbeitnebenbei 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.