-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Overview
Re-implement the comprehensive kiosk mode system that was temporarily removed to improve test suite performance and development velocity.
Features to Implement
Core Kiosk System
-
KioskManager - Central state management singleton
- State machine: DISABLED → ATTRACT → DEMO_PLAYING → HIGH_SCORES
- User inactivity detection and automatic kiosk mode entry
- Configuration loading from JSON file
- Signal-based communication with game systems
-
KioskUI - Full-screen overlay system
- Responsive UI design for different screen sizes
- Smooth transitions between kiosk states
- Visual indicators and branding elements
- Touch-friendly controls for arcade deployment
AI Demo System
- DemoPlayer - Sophisticated AI demonstration
- Advanced spatial partitioning for threat detection
- Multiple difficulty presets (beginner, intermediate, expert)
- Realistic human-like behavior patterns
- Virtual input injection compatible with existing Player.gd
Attract Mode Components
- AttractScreenManager - Cycling promotional content
- Multiple screen types: logo, gameplay highlights, features, high scores
- Configurable timing and transitions
- Automatic demo session triggering
- Visual consistency with game branding
High Score System
- HighScoreManager - Persistent leaderboard
- Score validation and integrity checking
- Metadata tracking (survival time, enemies defeated, weapon progression)
- Automatic saving and backup functionality
- Display formatting for kiosk screens
Configuration System
- Flexible Configuration - JSON-based settings
- Deployment presets (arcade, exhibition, retail, demonstration)
- Timing adjustments for different environments
- AI difficulty and behavior customization
- Visual and audio settings per deployment type
Integration Points
- Game.gd Integration - Score reporting and state management
- Scene Management - Smooth transitions between game and kiosk modes
- Audio System - Attract mode music and sound effects
- Visual Effects - Enhanced particle systems for demonstrations
Testing Requirements
- Comprehensive Test Suite
- Unit tests for each component
- Integration tests for state transitions
- Performance tests to ensure 60 FPS target
- Memory usage validation
- Automated CI/CD integration
Performance Requirements
- Maintain 60 FPS during all kiosk operations
- Efficient memory management with automatic cleanup
- Smooth transitions without frame drops
- Minimal impact on core game performance
Deployment Considerations
- Support for various screen resolutions and aspect ratios
- Touch input compatibility for arcade cabinets
- Keyboard/controller navigation fallbacks
- Network connectivity for high score synchronization (future)
- Remote configuration updates (future)
Technical Architecture
- Autoloaded Singletons - KioskManager, HighScoreManager
- Scene-based Components - KioskUI, AttractScreens, HighScoreDisplay
- Signal-based Communication - Loose coupling between systems
- State Machine Pattern - Clear state transitions and validation
- Configuration-driven Behavior - JSON-based customization
Success Criteria
- ✅ Zero performance impact on core gameplay
- ✅ Robust state management with error recovery
- ✅ Professional visual presentation suitable for public deployment
- ✅ Comprehensive test coverage (>90%)
- ✅ Easy configuration for different deployment scenarios
- ✅ Smooth user experience with minimal loading times
Files Previously Implemented
For reference when re-implementing:
scripts/autoloads/KioskManager.gdscripts/kiosk/KioskUI.gdscripts/kiosk/DemoPlayer.gdscripts/kiosk/AttractScreenManager.gdscripts/kiosk/HighScoreManager.gdkiosk_config.json- Comprehensive test suite in
test/unit/andtest/integration/
Priority
Medium - Enhancement feature for production deployment
Labels
- enhancement
- kiosk-mode
- arcade
- ai-system
- ui-ux
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request