🖥️ Virtual Operating System Systems Overview

This document provides a high-level overview of the major systems in CosterGraphics related to the Virtual In-game Computers and Operating System, their responsibilities, and how they connect. Each system has its own dedicated .md file with detailed documentation. This overview acts as the "map" for navigating the codebase and understanding the relationships between components.


📂 Systems Index

1. Operating System (OS)

  • Purpose: Core abstraction for in-game computers.

  • Responsibilities:

    • Hosts system-level services (logging, scheduling, app launching).
    • Provides hooks for display, input, and sound drivers.
    • Boot sequence simulation (e.g., DOS/Linux-like text boot before GUI).
  • Key Docs: OperatingSystem.md


2. Desktop Environment (DE)

  • Purpose: Visual layer running on top of the OS.

  • Responsibilities:

    • Provides UI metaphors (windows, taskbar, start menu).
    • Manages windowed applications.
    • Handles multi-instance/singleton app policy.
  • Key Docs: DesktopEnvironment.md


3. App System

  • Purpose: Handles installation, launching, and lifecycle of apps.

  • Responsibilities:

    • Registry of installed apps.
    • Process IDs and instance management.
    • Supports both background and UI-based apps.
  • Key Docs: AppSystem.md


4. UIWindow System

  • Purpose: Window manager for apps and tools.

  • Responsibilities:

    • Manages UIWindows (creation, focus, z-order, destruction).
    • Provides desktop-style interactions (dragging, resizing, closing).
    • Integrates with Task Manager and DesktopEnvironment.
  • Key Docs: UIWindowSystem.md


5. Console System

  • Purpose: Text-based interface for low-level control and debugging.

  • Responsibilities:

    • Captures and displays logs (Application.logMessageReceived).
    • Provides a shell-like environment with commands.
    • Bridges hardware console (log buffer) and UI console.
  • Key Docs: ConsoleSystem.md


6. Computer Hardware Layer

  • Purpose: Simulated "hardware" that backs each in-game computer.

  • Responsibilities:

    • Provides references to display, speakers, and console.
    • Acts as the bridge between Unity GameObjects (hardware) and OS (software).
  • Key Docs: ComputerHardware.md


7. Settings & Save Systems

  • Purpose: Persistent player/system data management.

  • Responsibilities:

    • SettingsSystem: Stores system-level config (graphics, audio, input).
    • SaveGameSystem: Handles player progress and economy.
  • Key Docs: SettingsSystem.md, SaveGameSystem.md


8. Supporting Systems

  • Currency & Ledger: Blockchain-inspired economy for in-game resources.
  • Time Control: Handles pausing, time scaling, and overlays.
  • Unit/Building Systems: Game mechanics for turrets, units, targeting, etc.

(Key docs still WIP, will be linked as they are authored.)


🔗 Integration Flow (Simplified)

Computer (GameObject)
   ├── Hardware Layer
   │     ├── Display
   │     ├── Speaker
   │     └── Console (log buffer)
   │
   └── OperatingSystem
          ├── DesktopEnvironment
          │     └── UIWindowSystem
          │     │      └── Apps (UI)
          │     └── UIFloatingPanelSystem
          │
          ├── ConsoleSystem
          │     └── ConsoleUI (interactive shell)
          │
          └── AppSystem
                └── Apps (UI & non-UI)

🧭 Usage

  • Start from System Overview.md → jump into the relevant .md for deeper info.
  • Each .md describes architecture, flow diagrams, and example usage.
  • New systems should be added here as they are created.