Game UI Bildschirme
Sorge dafür, dass sich jeder Bildschirm wie ein Teil desselben Spiels anfühlt. Arbeite vom besten eigenen Bildschirm des Spiels ausgehend, nicht von generischen Web-Stilen. Halte die Navigation spieltypisch und überprüfe jeden Bildschirm in den Größen, die die Spieler verwenden. Passe dich an die UI-Technologie an (DOM über einer Canvas, Engine-UI oder In-Scene-UI). Verwende game-foundation für den Bildschirmfluss selbst, falls verfügbar; diese Fähigkeit deckt ab, wie Bildschirme aussehen und sich verhalten.
1. Bestandsaufnahme
Liste jeden Bildschirm und jedes Overlay auf, einschließlich derer, die man leicht vergisst: Titel, Hauptmenü, jedes Modus-Menü, Garage oder Ausrüstung, Einstellungen, Lobby- oder Raumbildschirme, Teilnahme- und Einladungsflüsse, Laden, Pause, Ergebnisse, Fehler, leere Zustände, das HUD und reine Entwickler-Bildschirme. Notiere für jeden die Datei, wie er erreicht wird, wie er verlassen wird und ob er einen Server oder gespeicherte Daten benötigt, um angezeigt zu werden. Bildschirme, die den Spielserver benötigen, müssen mit diesem ausgeführt oder als nicht verifiziert gemeldet werden.
2. Extrahiere den Stilvertrag
Wähle den Anker: den Bildschirm, der bereits am meisten wie das Spiel aussieht (normalerweise der Titel oder das Hauptmenü). Schreibe seine Regeln auf, bevor du andere Bildschirme anfasst: Schriftarten und Titelbehandlung, Farbtokens, Hintergrund (Live-3D-Szene, unscharfer Hintergrund, Kunst), Panelformen, Button-Zustände (inaktiv, hover, fokussiert, gedrückt, deaktiviert), Abstandsskala, Bewegung und Soundsignale. Fasse die gemeinsamen Teile in Tokens oder gemeinsam genutzten Klassen zusammen, damit die Bildschirme nicht auseinanderdriften. Lese style-contract.md für die Vorlage und die In-Game-Konventionen.
3. Anwenden
- Vollbild-Spiellayouts, keine Web-Karten. Kein Dokument-Scroll auf dem Desktop; Modale passen in den Viewport; lange Listen scrollen innerhalb ihres eigenen Panels.
- Spielnavigation. ESC oder die Zurück-Taste verlässt jeden Bildschirm; Tastatur- und Gamepad-Fokus bewegt sich vorhersehbar mit einem sichtbaren Fokus-Zustand; die primäre Aktion ist offensichtlich.
- Onboarding-Gates als Fluss. Wenn ein Name oder Profil vor bestimmten Modi erforderlich ist, frage in einem kurzen Startschritt danach (Namensfeld + Spielen), anstatt ein Menü voller gesperrter Schaltflächen zu zeigen. Behalte die gleiche Validierung in den Einstellungen bei, damit eine spätere Bearbeitung sie nicht zerstört.
- Ein Eintrag, wo einer ausreicht. Bitte die Spieler nicht, zwischen Optionen zu wählen, die zum gleichen Ort führen (z. B. drei Spawnpunkte auf einer Karte); gib eine primäre Aktion und biete die Varianten im Spiel an.
- HUD-Hierarchie. Lese hud-and-loading.md. Jede Zahl beschriftet, nichts, das wie Debug-Ausgabe aussieht, kontextbezogene Elemente nur wenn relevant.
- Ladebildschirme haben Bewegung, die zum Spiel passt, echten Fortschritt, wo verfügbar, und kein Blinken bei kurzen Ladezeiten.
- Abstände skalieren mit der Viewport-Höhe (
clamp()oder Viewport-Einheiten), damit hohe Menüs weder zusammengequetscht noch auf großen Bildschirmen auseinandergezogen wirken.
4. Umbenennung von spielerorientierten Namen
Beim Umbenennen des Spiels, von Modi, Orten oder Gegenständen: suche nach jeder Schreibvariante (Groß-/Kleinschreibung, Leerzeichen, Bindestriche, Tippfehler) in UI-Strings, HTML-Titeln, Manifesten, Dokumentationen, Paketnamen und Speicherschlüsseln. Migriere gespeicherte Daten, wenn sich ein Speicherschlüssel ändert, damit bestehende Spieler ihr Profil behalten. Behalte interne IDs stabil, es sei denn, die Aufgabe erfordert ihre Änderung.
5. Überprüfen
Überprüfe jeden bearbeiteten Bildschirm bei 1440×900, 1280×720, 1024×600 und Telefongröße (375×812), plus den eigenen Zielen des Projekts. Verwende Screenshots und verwende __pt.layout() von playtest (oder eine gleichwertige Bounding-Box-Prüfung) für Seiten-Scroll, nicht erreichbare Steuerelemente und Überlappungen. Gehe jeden Eintritt und Austritt der Bildschirme durch. Melde Bildschirme, die du nicht öffnen konntest, inklusive Grund.