← Back to Applications
T

The Tanks

Multiplayer 3D tank battles

Downloads

v0.17.26 1 file(s)
Jun 28, 2026
0.17.26: SVG icons + dedup buttons + Select=settings
v0.17.25 1 file(s)
Jun 28, 2026
0.17.25: HUD pointer-events audit + BMP icons + gamepad-friendly create-room
v0.17.24 1 file(s)
Jun 28, 2026
0.17.24: game-over gamepad activation
v0.17.23 1 file(s)
Jun 28, 2026
0.17.23: prime gamepad state at startup
v0.17.22 1 file(s)
Jun 28, 2026
0.17.22: lobby mode icons
v0.17.21 1 file(s)
Jun 28, 2026
0.17.21: lobby back + app quit on gamepad
v0.17.20 1 file(s)
Jun 28, 2026
0.17.20: per-device controls tutorial
v0.17.19 1 file(s)
Jun 28, 2026
0.17.19: tutorial dismiss + gamepad menu
v0.17.18
Jun 27, 2026
0.17.18: AppImage in CI + apps.bukazone.ru
No files available
v0.17.17
Jun 27, 2026
0.17.17: Linux desktop build via Electron
No files available
v0.17.16
Jun 27, 2026
0.17.16: gamepad menu navigation
No files available
v0.17.15
Jun 27, 2026
0.17.15: gamepad support
No files available
v0.17.14
Jun 25, 2026
0.17.14: radar widens edge arrows to all tanks
No files available
v0.17.13
Jun 25, 2026
0.17.13: random corners, flags everywhere, universal time
No files available
v0.17.12
Jun 25, 2026
0.17.12: smaller arrows + dvh fix
No files available
v0.17.11
Jun 25, 2026
0.17.11: arrows enabled in local team games
No files available
v0.17.10
Jun 24, 2026
0.17.10: edge-of-screen team-mate arrows
No files available
v0.17.9
Jun 24, 2026
0.17.9: lift + polygon-offset player/team markers
No files available
v0.17.8
Jun 24, 2026
0.17.8: disable frustum culling on shared wreck/turret/drowned pools
No files available
v0.17.7
Jun 24, 2026
0.17.7: revert wreck-pool dispose
No files available
v0.17.6
Jun 24, 2026
0.17.6: mission delta as tank-type pips
No files available
v0.17.5
Jun 24, 2026
0.17.5: restore mission delta
No files available
v0.17.4
Jun 24, 2026
0.17.4: hide campaign fleet UI
No files available
v0.17.2
Jun 24, 2026
0.17.2: mission narrative for all locales + radar arc
No files available
v0.17.1
Jun 24, 2026
0.17.1: stop overriding wreck materials
No files available
v0.16.99
Jun 24, 2026
0.16.99: turret-wreck placeholder reload fix; campaign narrative rewrite
No files available
v0.16.98
Jun 24, 2026
0.16.98: transparent-wreck fix on quality switch (onLoad reset + force opaque)
No files available
v0.16.97
Jun 24, 2026
0.16.97: extend quality-switch reset to wreckMeshes/turretMeshes
No files available
v0.16.96
Jun 24, 2026
0.16.96: wreck/turret InstancedMesh pool survives quality switch; even turret distribution on 4-team maps
No files available
v0.16.95
Jun 24, 2026
0.16.95: team rooms no longer weld bots onto one tile
No files available
0.16.2
Jun 13, 2026
release: 0.16.2 — slim GLB models, CI deploy fix, deflate yandex zip Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
No files available
0.16.1
Jun 13, 2026
chore(assets): shrink car/moto/wreck GLBs ~80% via gltf-transform Textures resized to 512 (high) / 256 (low) and meshes re-meshopt-compressed. Vehicles and the destroyed-tank wreck aren't core gameplay — 2048×2048 PBR maps were overkill for something the player glances at while driving past. ~9.6 MB shaved off the bundle (both detail tiers combined). car-1.glb 1.70 MB → 318 KB high / 218 KB low car-2.glb 1.73 MB → 697 KB high / 620 KB low moto.glb 1.45 MB → 258 KB high / 182 KB low tank-destroyed.glb 1.40 MB → 217 KB high / 144 KB low Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
No files available
0.15.71
Jun 10, 2026
release(0.15.71): fix dropped wall/tank explosions on hardTs advance prevSimEventCounts wasn't reset when hardTimestamp moved forward (self-advance / state_sync). A shrinking simEvents array on the next projection would fail the `length >= prev` check and brand-new destruction events were silently dropped — manifested as the "wall sometimes doesn't explode visually" and "the kill that I just made played no boom" bugs. Backport of the lossy-event diagnosis behind the state-derived VFX dispatch refactor in 0.16.0-alpha.1, but kept minimal here: still event-driven, just resets prevSimEventCounts whenever hardTimestamp changes. ~7 lines, no protocol/sim changes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
No files available
0.16.0-alpha.1
Jun 10, 2026
release(0.16.0-alpha.1): campaign foundation + Mission 1 + vehicle targets - Campaign mode foundation gated by rulesVersion=2 + client_hello capabilities. v1 rooms/clients never see v2 rooms — server filters getRoomList by conn.capabilities. Campaign runs entirely client-side via local-game + scenario layer; no protocol surface changes. - Mission 1 (wooden-base tutorial) — 24×24 grass map, wooden base with flag fenced by wood walls + 5 spare tanks, two-tile south exit, scattered cover/trees, prisoner pen at SE corner walled in LowSteel with a locked enemy tank. Objective: destroy the prisoner-pen tank. - New ObjectTypes (v2 only): TargetCar, Motorcycle (drive-through; tank crushes them on contact → DestroyedCar/DestroyedMoto wrecks that slow speed to 0.5×); SpareTank chain → TankWreck (30s smoke, stays till end of match); Flag; LowSteel (knee-high steel — solid for tanks, bullets pass over). - 5-color paint variants per vehicle model via sharp hue+satur
No files available
0.15.70
Jun 09, 2026
release(0.15.70): game-over freeze + per-second timer + map variety + own-tank explosion Five related changes shipped together. Game-over render fully freezes after 3 frames. The 5 fps throttle from 0.15.69 wasn't enough — getProjectedState still clones state and replays events every frame, and the server-side room keeps accumulating entities (smoke clouds, drowned tiles, burning trees), so the per-projection cost grew the longer the player sat on the results screen. Now the entire render block is gated by gameOverFrozenFrames: first 3 frames render normally (so the final shot's smoke/explosion can finish), then we skip projection AND render entirely until the player leaves game-over. Per-second round timer. Server still broadcasts the timer every 5-10 s — HUD anchors a local deadline (performance.now() + remaining * 1000) on each broadcast and runs a 1 Hz interval re-rendering against it. Counts down smoothly between server syncs; hideTimer clears the inte
No files available
0.15.69
Jun 09, 2026
release(0.15.69): throttle render to ~5 fps on game-over screen The game-over CSS overlay sits on top of the canvas, but the render loop kept the scene running at 60 fps behind it — projecting state, emitting particles, animating water and trees, regenerating shadow maps, all for a match nobody is playing any more. User reported fans spinning on the results screen. Now the render block gates on lastGameRenderTime and skips when appState == 'game_over' and less than 200ms have passed since the last frame, so the dead match renders at ~5 fps instead of 60. in_game and team_select unaffected. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
No files available
0.15.68
Jun 09, 2026
release(0.15.68): asset diet round 2 — total client assets 26 MB → 2.9 MB (-89%) Big visual-quality-preserving cleanup of every static asset the client ships. Aggressive simplify on rubble/walls/destroyed/ice. ratio=0.25 for wood-destroyed/wall1-destroyed (rubble — silhouette barely matters), 0.3 for tree-burned, 0.15 for ice-cube + wall1, 0.2 for wood-wall; low/ folder variants applied at 0.6× of those ratios. Triangles overall: 190,579 → 88,236 (-54%). wood-destroyed 13162→3279 tris (-75%), wall1 3842→728 tris (-81%). Terrain textures PNG → WebP (sharp, q=85). 3083 KB → 466 KB (-85%). terrain-snow 356 KB → 15 KB. wall-destroyed kept as JPEG — WebP was bigger for that small grain texture. texturePath() callers in map-renderer updated to .webp, Vite glob extended. Tank weapon dedup. tank-fire/frozen/leader/longshot share geometry with tank1 — only baseColor and metallicRoughness differ. Extracted those as standalone WebP in src/assets/ta
No files available
0.15.67
Jun 09, 2026
release(0.15.67): Meshopt-compressed GLBs (-77% on disk) + assetlinks for Play Console Two bundled changes; both reach the user as a single client image. GLB optimization. Aggregate over 57 files in packages/client/src/assets/models: file size 23.04 MB → 5.28 MB (-77.1%) vertices 214,146 → 209,782 (-2.0%) triangles 190,579 → 183,922 (-3.5%) texture bytes 14.91 MB → 2.86 MB (-80.8%) Geometry barely shrinks — the wins come from EXT_meshopt_compression quantizing attributes (positions/normals/UVs from f32 → int16) and re-encoding embedded JPEGs as WebP via gltf-transform optimize. Decoder is wired through a new packages/client/src/renderer/gltf-loader.ts factory that registers MeshoptDecoder once and returns a cached GLTFLoader; tank/map/ice-cube renderers swapped over from `new GLTFLoader()`. Decoder ships as ~20 KB wasm loaded lazily on the first decode. assetlinks.json for Google Play Domain Ownership. Added Google's
No files available
0.15.65
Jun 07, 2026
release(0.15.65): profile popup, identity merge, hashed assets — combined release This commit bundles four version bumps (0.15.62 → 0.15.65) that were each deployed to prod separately but never tagged. CI rebuilds + uploads the Yandex bundle on tag, and we want that bundle to carry all four improvements. 0.15.62 — Cache strategy switched fully to content-hashing. - GLB models + terrain textures migrated from public/ to src/assets/, resolved via import.meta.glob('?url'). Vite emits each as /assets/<name>-<hash>.ext; nginx /assets/ regex extended to .glb so they cache for a year immutable. - Version-mismatch WS reload removed (it dropped query params like ?play=1 and was redundant once every asset is content-hashed). 0.15.63 — Server-side identity merge. - UserStore.resolveUserWithLink binds Yandex identity + localStorage APP token to a single userId. Five cases handled (same userId, adopt APP for new platform, bind APP to existing platform, merge two
No files available
0.15.60
Jun 04, 2026
release(0.15.60): nginx Cache-Control hardening for tanks-client Before: every static asset got nginx defaults (heuristic ~1 week TTL). After: - /assets/<name>-<hash>.{js,css,png,...} — public, immutable, 1 year Vite injects a content hash into the filename, so URL changes when content changes. Cache "forever" is safe and cheap. - /models/*.glb + other non-hashed binary assets — 1 hour, must-revalidate. Updates to a model land within an hour without an explicit cache-bust. Same treatment for non-hashed icons / fonts. - /sw.js — no-cache, no-store. Otherwise a stale SW serves old responses indefinitely. - /manifest.webmanifest, /.well-known/assetlinks.json — no-cache. These rotate per release (icons, fingerprints). - *.html, /index.html — no-cache, must-revalidate. The Vite entry points need to be fresh so the user fetches the new hashed assets. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
No files available
0.15.57
Jun 03, 2026
Privacy: contact change + Yandex-only marks
No files available
0.15.55-bundle
Jun 03, 2026
AAB for Play Console upload (touchscreen-required)
No files available
0.15.55 1 file(s)
Jun 03, 2026
TWA: real SHA-256 in assetlinks + twa-manifest
0.15.54
Jun 03, 2026
Large-map ad hint placement fix
No files available
0.15.53
Jun 03, 2026
Large-map ad: inline hint instead of confirm popup
No files available
0.15.52
Jun 03, 2026
Large online map gated by rewarded ad
No files available
0.15.51
Jun 03, 2026
Remove sticky banner diagnostics
No files available
0.15.50
Jun 03, 2026
Sticky diagnostics + interstitial on 3rd leave
No files available
0.15.49
Jun 03, 2026
Sticky banner: leave-mid-game path + clear on win
No files available
0.15.48
Jun 03, 2026
Auto-detect caps at medium; landing skips mobile; remove dev link
No files available
0.15.47
Jun 02, 2026
Sticky banner: first match of day is free
No files available
0.15.46
Jun 02, 2026
Sticky banner via API — desktop only, only after first non-winning match
No files available
0.15.45
Jun 02, 2026
Quality default → medium; PWA + landing; bot back-fire fix; 3-min match option
No files available

Info

Created: Jun 02, 2026
Updated: Jun 03, 2026
Versions: 53