Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻译准备中
正在加载完整 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.