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.
- Use 2 spaces for indentation (no tabs).
- Private members often use a trailing underscore (
foo_). .hpp/.cppfiles are preferred for headers and sources.- Avoid modifying anything under
third_party/unless necessary. - Order include statements by project proximity:
- Local headers from the current target (quoted).
- Headers from
silkroad_lib(angled). - Other third-party libraries, excluding Abseil.
- Abseil headers.
- Operating system headers.
- C++ standard library headers. Leave a blank line between each group.
- Avoid
autounless the type is overwhelmingly verbose (like container iterators). - Place pointer asterisks & ampersands next to the variable name (
Type *varorType &var).
- 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.
bot/– core bot source code and testsclient_manager/– launches and controls game clients on Windowsloader_dll/– DLL injected into the game client for connection redirectionsilkroad_lib/– shared utilities and game-specific data typesrl_ui/– Qt application for reinforcement learning monitoringui/– legacy UI code and widgets (deprecated; do not modify)ui_proto/– protobuf definitions shared between componentstools/– helper scripts for packet parsing and state machine creationthird_party/– vendored libraries; keep changes here to a minimumdocuments/– design notes and assorted documentation
No build or test commands are provided here as the setup is fairly involved.