BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Wardly (formerly Dota AI Coach) is a Dota 2 coach for Windows that watches your game with you: short advice over the game (and out loud) during the match, and an honest review after it — where the farm went, why you died, when your item came, what the player of your rank did. Free, local, open source. Download for Windows · Website (на русском) · The 64 heroes with full advice · What's new · Privacy Free, no ads, no subscription, no Overwolf. The installer is not code-signed yet: VirusTotal report of 0.18.0 (0 of 67 engines); each release links its own report in its notes.README 전문 보기 ↗
| During the match | After the match |
|---|---|
| A card over the game (and out loud) at the right moment: low HP, farm pace for your position against this opponent, counter items for the enemy draft, your hero's own saves, skill order, map timers. | A score per area, the three things to fix next game, where you died and why, item timings against your rank, a match map, and an optional AI review where every number is checked against the match data. |
Wardly reads only Valve's official Game State Integration (GSI): Dota posts the visible game state to a local HTTP endpoint. No memory reading, no screen capture, no input automation, no injection.
flowchart LR
Dota[Dota 2 GSI] -->|HTTP, localhost| API[FastAPI backend]
Replay[Replay demo] --> API
API --> Norm[State normalizer]
Norm --> DP[Decision points]
DP --> Rec[Rule-based recommender]
Rec --> Sched[Advice scheduler]
Sched --> Overlay[Electron overlay + voice]
API --> Store[(SQLite history)]
Store --> Review[Post-match analysis]
Review -. optional .-> LLM[AI review, fact-checked]
App[Electron launcher] -->|starts, supervises| API
App -. opt-in .-> Worker[Cloudflare Worker + D1]
More: Architecture · Advice scheduler · Local API security · Desktop security
| Part | Stack | Where |
|---|---|---|
| Coach service | Python 3.11, FastAPI, SQLite, pytest, Ruff, mypy (gated baseline) | backend/ |
| Desktop app | Electron, plain JS (no framework), node:test | frontend/launcher/ |
| Cloud (opt-in) | Cloudflare Workers, D1, R2 | services/api/ |
| Website | Static HTML generated by Python, no tracking cookies | site/, scripts/build_site.py |
| Packaging | PyInstaller + NSIS, auto-update from GitHub Releases | docs/PACKAGING_WINDOWS.md |
| Automation | GitHub Actions: CI, Windows build and smoke test, GSI fuzzing, weekly data refresh, release, news | .github/workflows/ |
backend/ FastAPI service: GSI intake, live advice, history, reviews, AI coach
app/ live pipeline (gsi_state → match_memory → recommender → scheduler) and player history
tests/ ~1,500 tests: unit, replay regression, real thread and lifespan tests
frontend/launcher/ Electron app: process supervisor, tray, panel, overlay, updater
services/api/ Cloudflare Worker: problem reports, opt-in stats, shared reviews, transfers
site/ luhovyimvp.dev (UK + generated EN, hero pages, news)
scripts/ dev runner, site/news/changelog generators, release and Windows checks
data/ hero profiles, map timers, knowledge base, GSI samples, news posts
docs/ design notes per subsystem, release notes, roadmap
Requirements: Python 3.11, Node 22. Windows is the target platform; the backend, the desktop app in dev mode and all tests also run on Linux.
# backend
cd backend
python -m venv .venv && source .venv/bin/activate
python -m pip install --require-hashes --only-binary=:all: -r requirements-dev.txt
# desktop app: starts its own backend on a free port, the overlay and the tray
cd ../frontend/launcher
npm ci
npm run dev
No Dota at hand? The launcher's demo mode replays a recorded match through the real backend and overlay: Replay demo.
python scripts/dev.py check --changed --dry-run # shows what would run for your changes
python scripts/dev.py check --changed # runs it
python scripts/dev.py check --full # backend, desktop, Worker, site and version gates
CI runs the same gates on every pull request, plus a Windows build that installs the NSIS package and smoke-tests it. Details: Testing · Dev runner · Type checking.
The Windows installer is not code-signed yet, so SmartScreen may warn on first run («More info» → «Run anyway»). SignPath Foundation's program for open source has not accepted Wardly yet; we will apply again with a larger audience.
release.yml) builds the installer from this repository at the release commit. The website shows its SHA-256 next to the download button; compare it with Get-FileHash. Release notes link a VirusTotal report when one was made.The same policy on the website: luhovyimvp.dev/code-signing.html.
Dota 2 is a registered trademark of Valve Corporation. Wardly is not affiliated with or endorsed by Valve. Hero and item pictures are Valve's and are loaded from Valve's CDN.