Skip to content

Social Hub und UI

Status: Social Hub produktiver Prototyp; allgemeines UI-System minimal

Zweck und wichtigste Pfade

Features/Hub/Client/HubClientScene.tscn enthält World, Player, RemotePlayers, drei Dungeon-Terminals, Camera, Shared-Hub-Marker, Terminal-Overlay und Chat. HubController.cs orchestriert Chat, Interaction, Runauswahl und Verlassen. HubRemotePlayersController.cs verwaltet Remote-Avatare. HubSharedWorldRenderer3D.cs und Marker binden die Shared-Hub-Definition an 3D.

Main Menu: Features/MainMenu/MainMenu.tscn/MainMenuController.cs für Guest/Email Auth, Sessionrestore, Startupsettings, Hub Discovery/Join und ENet Connect. Theme: Resources/Themes/Default.tres. Globale Loading-/Cursor-/Network-UI liegt unter Core/UI.

Ablauf

Nach Auth lädt MainMenu UserSettings/GlobalConfig, sucht per HubDiscoveryService einen joinbaren Server, joint Nakama-Hub/Realtimesocket und verbindet ENet. ConnectedToServerEvent navigiert zum Hub. Hub registriert LocalPlayer, startet Chat und zeigt Interaction-Prompts. DungeonTerminal publiziert TerminalInteractionRequestedEvent; HubController zeigt TerminalRunOverlay, erzeugt Seed/Config, speichert Context und navigiert zum Dungeon. Rückkehr lädt die HubScene neu.

UI-Architektur

Keine ViewModel-/Binding-Schicht. Controller lösen Nodes auf, binden Godot-Signals und abonnieren IEventBus. Netzwerkaufrufe gehen über injizierte Services. Loading wird über LoadingScreenService/SceneLoader angezeigt. Text wird direkt in Scenes/Code gesetzt; ein Localization-System ist nicht erkennbar. Neue sichtbare Strings sollten für eine spätere Translation-Migration zentralisierbar bleiben.

Neues Terminal oder UI-Gebiet

Terminal: DungeonTerminal.tscn instanziieren, eindeutige SeedDefinition, FloorIndex und DisplayName setzen; Shared-Hub-Marker/Geometrie nur ändern, wenn Client und Server dieselbe HubDefinition/Version/Hash erhalten. UI: Scene/Controller unter dem Feature, IServiceConsumer, Signalbindung/Unbinding, Navigation über GameFlow. Siehe UI-Screen.

Tests, Debugging, Performance und Fallstricke

Automatisierte UI-Tests fehlen. Manuell Authfehler, Loading/Disabled-State, Fokus, Mausmodus, Chat Pending→Confirmed, Overlay Cancel/Enter, Disconnect und Rückkehr prüfen. HubController ist ein großer Änderungspunkt; Chat-Render-Queue und Playerliste nicht pro Frame neu aufbauen. Leere Dashboard-Services sind nicht Teil der Game-UI.

Verwandt: Multiplayer, Game3D Lifecycle, Szenen, Troubleshooting.