Robust widget-based GUI system. Each element in its own window that can be minimized, moved, and resized. Hotkey toggles for each widget.
Separate game viewport from GUI viewport, render GUI on dedicated thread.
This enables full-screen map game-play (requires increasing "view distance" slightly on serverside, from 25 to maybe 35/40).
Core Requirements:
- Positioning, size, visibility and enabled states
- parent/child hierarchy
- input focus handling
- dirty/redraw flagging
- title bar with drag to move
- Resizable (optional per instance)
- Minimizable (optional per instance)
- Close button (optional per instance)
- Z-order management (click to bring to front)
- Skin/theming
- Animations (stretch goal)
- drag and drop, eg; inventory to equipment widget. Inventory to game map, game map to inventory, etc.
Common Widgets Needed
- Button, Label, TextInput
- ItemSlot (for inventory/equipment/trading)
- ScrollableContainer, Grid/List
- ProgressBar, Tooltip
Robust widget-based GUI system. Each element in its own window that can be minimized, moved, and resized. Hotkey toggles for each widget.
Separate game viewport from GUI viewport, render GUI on dedicated thread.
This enables full-screen map game-play (requires increasing "view distance" slightly on serverside, from 25 to maybe 35/40).
Core Requirements:
Common Widgets Needed