Skip to content

Latest commit

 

History

History
48 lines (38 loc) · 2.12 KB

File metadata and controls

48 lines (38 loc) · 2.12 KB

Hyperbot Agent Guidelines

Hyperbot is a toolkit for automating the MMORPG Silkroad Online. It uses a custom loader DLL and packet proxy to control one or more game clients from a single host process. The core framework is written in C++ and built with CMake, pulling dependencies via vcpkg, while Python modules provide reinforcement learning logic.

Code Style

  • Use 2 spaces for indentation (no tabs).
  • Private members often use a trailing underscore (foo_).
  • .hpp/.cpp files are preferred for headers and sources.
  • Avoid modifying anything under third_party/ unless necessary.
  • Order include statements by project proximity:
    1. Local headers from the current target (quoted).
    2. Headers from silkroad_lib (angled).
    3. Other third-party libraries, excluding Abseil.
    4. Abseil headers.
    5. Operating system headers.
    6. C++ standard library headers. Leave a blank line between each group.
  • Avoid auto unless the type is overwhelmingly verbose (like container iterators).
  • Place pointer asterisks & ampersands next to the variable name (Type *var or Type &var).

Design Philosophy

  • Hyperbot aims to be an extensible platform for automating Silkroad Online.
  • Components are separated into loader, proxy, bot logic, and user interfaces.
  • Clean abstractions are favored so new features or RL algorithms can be added with minimal coupling.

Project Structure

  • bot/ – core bot source code and tests
  • client_manager/ – launches and controls game clients on Windows
  • loader_dll/ – DLL injected into the game client for connection redirection
  • silkroad_lib/ – shared utilities and game-specific data types
  • rl_ui/ – Qt application for reinforcement learning monitoring
  • ui/ – legacy UI code and widgets (deprecated; do not modify)
  • ui_proto/ – protobuf definitions shared between components
  • tools/ – helper scripts for packet parsing and state machine creation
  • third_party/ – vendored libraries; keep changes here to a minimum
  • documents/ – design notes and assorted documentation

No build or test commands are provided here as the setup is fairly involved.