Skip to content

Implement Advanced Kiosk Mode System #15

@stphung

Description

@stphung

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.gd
  • scripts/kiosk/KioskUI.gd
  • scripts/kiosk/DemoPlayer.gd
  • scripts/kiosk/AttractScreenManager.gd
  • scripts/kiosk/HighScoreManager.gd
  • kiosk_config.json
  • Comprehensive test suite in test/unit/ and test/integration/

Priority

Medium - Enhancement feature for production deployment

Labels

  • enhancement
  • kiosk-mode
  • arcade
  • ai-system
  • ui-ux

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions