(a.k.a. next-gen UI widgets)
Doomsday Script should be used to control how the Doomsday GUI behaves, what function each button does, what kind of menus are available, etc.
Replaces the fixed-functionality Doomsday GUI code, game-side menu screens, and the InFine subsystem.
The original games have very basic UI controls for the needs of the in-game menus. Doomsday introduced a separate UI subsystem for its own needs (console, Control Panel and Multiplayer Setup). Later on, InFine was added as yet another separate system for on-screen animations (such as the episode finales in Hexen).
This means there are multiple, disjoint UI-related subsystems in the engine and games. Ideally, the engine should provide a single UI system that is powerful enough to handle all these use cases:
- In-game menus (New Game, etc.)
- Control Panel
- Bindings and controls setup
- Multiplayer setup and joining
- In-game editors
- Ringzero GUI: game profiles and resource package management
- Automatic updater
Furthermore, the old Doomsday UI code (implemented in C) is a quite awkward to use and does not implement full-fledged event processing, widget hierarchy/ownership, and layout mechanisms. It should be discontinued and replaced with a flexible C++ class hierarchy.