Mars · hexo — hex-based Mars colonization game for Mars IT School
Find a file
Ruslan 8e7ea524a8 Prototype v5 + universal PDA + deploy to hexo.marshub.uz
Universal PDA (tile-agnostic tablet terminal)
- PDA now opens on ANY scanned tile, not just wonders
- Context-aware tabs:
  * Wonder tile: Overview / Specs / History / Sources / Notes
  * Building tile: Status / Log / Notes
  * Empty tile: Tile / Notes
  * Wonder + building: all tabs
- Status tab shows live diagnostics for buildings:
  * Network supply/demand/balance/size
  * Type-specific specs (production, power, residents, bonuses)
  * Offline diagnostics with actionable fix (how many Solars to build)
- Log tab: chronological events with Mars-date timestamps
  * built, upgraded, dismantled, power transitions
  * Color-coded per event type
- Notes tab: per-tile editable textarea, persisted in session

Power grid + HUD
- Power HUD indicator: green  X/Y when supply ≥ demand, red blinking when low
- Solar upgraded to 2 supply/level (was 1) — more forgiving balance
- Dome consumes 0 power (was 0.5) — it's a shelter, not a factory
- Network flood-fill computation on every recompute

Critical bug fix
- marsTime() was called from logTile but never defined in prototype
- Caused silent cascading failure: tryBuild threw ReferenceError,
  recomputeRates() never ran, metal didn't count, scan didn't expand,
  all buildings showed OFFLINE despite visual animation working
- Ported marsTime + DARIAN_MONTHS from overview.html

Deploy to https://hexo.marshub.uz/
- Static files uploaded to /home/mars/hexo-static/ on core.marsit.uz
- Caddy wildcard matcher added: @hexo host hexo.marshub.uz → file_server
- hexo added to RESERVED list in marshub-api/api/routes/public.js
- pm2 restart marshub-api + Caddy reload via admin API (no sudo)
- TLS provisioned via Caddy on_demand
- Landing: https://hexo.marshub.uz/
- Game:    https://hexo.marshub.uz/prototype/
- Docs:    https://hexo.marshub.uz/docs/CHANGELOG.md

Documentation updates
- README: deployment section with live URLs
- CHANGELOG: deploy notes + full v5 feature list
- 07-roadmap: Phase 0.5 (prototype) + 0.6 (deploy) marked done,
  added Deploy section with re-deploy recipe
2026-04-16 00:05:37 +05:00
docs Prototype v5 + universal PDA + deploy to hexo.marshub.uz 2026-04-16 00:05:37 +05:00
prototype Prototype v5 + universal PDA + deploy to hexo.marshub.uz 2026-04-16 00:05:37 +05:00
.gitignore Initial commit: v0.1 docs + overview + prototype v3 2026-04-15 21:54:32 +05:00
CLAUDE.md Initial commit: v0.1 docs + overview + prototype v3 2026-04-15 21:54:32 +05:00
overview.html Initial commit: v0.1 docs + overview + prototype v3 2026-04-15 21:54:32 +05:00
README.md Prototype v5 + universal PDA + deploy to hexo.marshub.uz 2026-04-16 00:05:37 +05:00

Mars · hexo

Mars — персистентный мульти-пользовательский мир Mars IT School, где ученики, менторы и выпускники колонизируют реальный Марс через автономных роботов. Игра живёт как Telegram Mini App, синхронизирована с настоящими марсианскими сутками (сол) и месяцами (дэрианский календарь), и сохраняет всё, что построил игрок — навсегда.

hexo — кодовое имя первой версии Mars. Hex-based, async, tick-driven, no-combat. Следующие версии могут экспериментировать с другими механиками (real-time, 3D, AR и т. д.), но hexo — фундамент: тайлы, ресурсы, роботы, терраформирование.


Статус

  • Версия документации: v0.1 (см. docs/v0.1/)
  • Фаза: design + playable prototype v5
  • Прототип задеплоен: https://hexo.marshub.uz (landing) · https://hexo.marshub.uz/prototype/ (игра)
  • Следующий milestone: MVP на 6 недель (первый сезон с 10 учениками)

🌐 Публичные URL

URL Что
https://hexo.marshub.uz/ Landing-страница с живыми марсианскими часами
https://hexo.marshub.uz/prototype/ Играбельный прототип v5 (single-file HTML)
https://hexo.marshub.uz/docs/CHANGELOG.md История изменений
https://hexo.marshub.uz/docs/v0.1/README.md Design docs

Деплой: статические файлы в /home/mars/hexo-static/ на core.marsit.uz через Caddy wildcard (@hexo matcher). See 07-roadmap.md § Deploy for details.

Навигация

Файл О чём
docs/v0.1/01-vision.md Концепция, позиционирование, референсы
docs/v0.1/02-game-design.md Механики, роботы, сезоны, прогрессия
docs/v0.1/03-mars-time.md Сол, дэрианский календарь, часы
docs/v0.1/04-world-and-data.md Реальные данные Марса, гекс-сетка, лицензии
docs/v0.1/05-tech-architecture.md Стек, БД, деплой, open-source рефы
docs/v0.1/06-visual-style.md Арт, рендер, палитра, Townscaper-вайб
docs/v0.1/07-roadmap.md 6-недельный план MVP + будущее
docs/v0.1/08-open-questions.md Что решить перед стартом
docs/CHANGELOG.md История версий документации

Философия

  1. No combat. Роботы не воюют, они строят. Игра positive-sum: игроки могут только помогать друг другу или идти своим путём.
  2. Persistence first. Построенное остаётся навсегда, даже после ухода ученика из школы.
  3. Real Mars. Карта — настоящая планета (MOLA + HRSC + USGS Gazetteer). Время — настоящие сол и дэрианские месяцы. Ресурсы лежат там, где они лежат на самом деле.
  4. Server authoritative. Вся логика на бэке. Фронт — чистый view. Дети учатся кодить в IT-школе и обязательно попробуют прочитать localStorage.
  5. Lazy-eval tick. Никаких фоновых тиков на каждого игрока. Ресурсы пересчитываются только при заходе.
  6. Seasons, not forever. Сезон = 1 дэрианский месяц = ~28 солов ≈ 28.77 земных дней. Ученик за 3 месяца школы проживает 3 сезона.

Связанная инфраструктура Mars IT School

  • Mars ID (https://id.marshub.uz) — SSO для авторизации учеников.
  • Caddy wildcardmars.marshub.uz или hexo.marshub.uz (решим в v0.2).
  • GlitchTip (https://glitch.marshub.uz) — error tracking.
  • Pulse — Umami analytics.