Перейти к основному содержанию

OHOL Bot

Обзор проекта

OHOL Bot — исследовательский каркас для создания ботов One Hour One Life на частном сервере. Текущий этап — воспроизводимый частный сервер и живой Python-бот, сфокусированный на движении: телеметрия в режиме ожидания, следование по чат-командам и более плавная ходьба с подтверждением сервера.

Ключевые возможности

  • HMAC-вход и постоянная живая сессия с keep-alive
  • Чат-команды: следование, сбор, запас лагеря и крафт
  • 8-направленный поиск пути с учётом препятствий, опасности и заблокированных клеток
  • Терминальная панель (--watch) с состоянием бота, картой и диагностикой
  • Регрессионный набор из 307 тестов со скриптами проверки движения

Терминальная панель

OHOL Bot Dashboard
====================================================
Mode: run-live (6 Hz)   planner tick 22 (+3.4/5s)   world tick 30 (+3.9/5s)   server frames 2 (+0.6/5s)   KA pings 25 (+3.9/5s)
Account: bot_001@local   Player id: 2

Self
  Name: (unnamed)
  Lineage: Eve line: 2
  Position: (0, 0)   Home: unknown
  Age: 0.00 years (live estimate, 1yr/15s)
  Can move/self-act: no (need age 0.2+)   Stationary: yes
  Action blocked by: nothing
  Holding: nothing   Carried by: nobody
  Biome: Swamps (id 2, floor 0)

Actions
  Goal: none
  Last chat: none
  Last action: wait
  Actions sent: 0
  Status: waiting (idle)

Movement Map
  Tracked tiles: 76   Tracked biome tiles: 960
  Objects in range: 68 (radius 24)   Blocked tiles: 0   Danger tiles: 1
  Danger nearby: Wolf (0,-7)
  Last path: none yet
  Nearby biomes: Grasslands=395, Yellow Prairies=190, Swamps=255, Badlands=35

Local Tile Map
  ................o
  ...o...#o........
  ......#...o......
  .................
  .................
  oo..#............
  .................
  .................
  ........B....o..#
  o................
  .................
  .................
  ........o........
  ..........#......
  ....o....#.#.....
  .......o!.....#..
  ...........#.....
  B=bot L=leader T=target C=collect F=fire 1-8=camp *=path #=blocker !=danger f=food o=object p=player
  0,-4: Teosinte (object)
  5,0: Flowering Milkweed (object)
  -4,3: White Pine Tree with Needles (blocker)
  0,-7: Wolf (object)

Working memory (short)
  Objects in working memory: 68 (radius 24, 27 types)
  Long-term landmarks: 0
  Top types in working memory:
    - Bald Cypress Tree: 9
    - Juniper Tree: 8
    - Stone: 4
    - Tule Reeds: 4
    - White Pine Tree With Needles: 4
    - Clay Deposit: 3
    - Milkweed: 3
    - Sapling: 3
    - Wild Onion: 3
    - Canada Goose Pond With Egg: 2

Nearby players
  (none within range)

Технические детали

Используемые технологии

  • Python (клиент протокола, планировщик движения, поведение)
  • PowerShell-скрипты (настройка частного сервера и запуск бота)
  • pytest (307 модульных и интеграционных тестов)
  • Песочница частного OHOL-сервера (.ohol_runtime)
  • Собственный OholProtocolClient с разбором состояния мира

Открытый код

Проект с открытым исходным кодом под лицензией MIT. Исходный код, документация и скрипты установки доступны на GitHub.

Посмотреть на GitHub
OHOL bot