GitHunt

Echelon

A C++20 hacking simulator engine with a desktop-like window manager, featuring draggable/resizable windows, a terminal emulator, fake browser, virtual filesystem, and network simulation.

Features

  • Desktop-like Window Manager: Multiple application windows with focus management and z-order
  • Draggable & Resizable Windows: Click and drag title bars, resize from corners
  • Terminal Emulator: Command-line interface (TODO: full implementation)
  • Fake Browser: Simulated web browser (TODO: full implementation)
  • Virtual Filesystem: In-memory file system simulation
  • Network Simulation: Fake network connections and data transfer

Architecture

The project is built with a modular architecture:

  • CoreEngine: Main event loop and SDL2 initialization
  • WindowManager: Manages all application windows, focus, and z-order
  • AppWindow: Base class for draggable/resizable windows
  • Terminal: Terminal emulator window (basic stub)
  • Browser: Fake browser window (basic stub)
  • Network: Network simulation system (basic stub)
  • FileSystem: Virtual filesystem (basic implementation)

Requirements

  • CMake 3.20 or higher
  • C++20 compatible compiler (GCC 10+, Clang 11+, MSVC 2019+)
  • SDL2
  • SDL2_ttf

Building

Ubuntu/Debian

# Install dependencies
sudo apt-get update
sudo apt-get install -y cmake g++ libsdl2-dev libsdl2-ttf-dev

# Build the project
mkdir build
cd build
cmake ..
make

# Run
./Echelon

macOS

# Install dependencies
brew install cmake sdl2 sdl2_ttf

# Build the project
mkdir build
cd build
cmake ..
make

# Run
./Echelon

Windows

# Install SDL2 and SDL2_ttf, then:
mkdir build
cd build
cmake ..
cmake --build .

# Run
.\Debug\Echelon.exe

Usage

  • Click on window title bars to drag windows
  • Click on the bottom-right corner to resize windows
  • Close the application with the window close button or Ctrl+C

TODO Subsystems

Terminal

  • Command processing and execution
  • Text rendering with SDL_ttf
  • Command history and completion
  • Cursor position tracking
  • Color support

Browser

  • HTML-like page rendering
  • Navigation history (back/forward)
  • Fake DNS resolution
  • Bookmark system
  • URL bar input

Network

  • Packet queue simulation
  • Bandwidth throttling
  • Packet loss simulation
  • Firewall simulation
  • DNS cache

FileSystem

  • Path normalization
  • File permissions
  • Symbolic links
  • File metadata (timestamps, owner)

License

TBD

Languages

C++96.2%CMake3.8%

Contributors

Created October 8, 2025
Updated October 9, 2025
bobrossrtx/Echelon | GitHunt