Cosmogram
Уворачивайся от астероидов, лови бонусы, ставь рекорды. Небо одно для всех: от старого телефона до 4K-монитора трасса одинаковая — честность вшита в код («протокол seed»).
Руль — палец, гироскоп, мышь, клавиатура или геймпад.
Без доната и рекламы. Исходники открыты для изучения.
▶️ Играть: https://exxxit-game.github.io/cosmogram-app/
Текущая версия: v1.400.2 «Небо помнит». Имена версий у нас поэтичные — и это священно.
Курс корабля
Одно небо — для всех пилотов и всех экранов. Мы строим первую равную онлайн-игру: от старого телефона до широкого монитора небо одно, механика одна, шансы одни. Там, где браузер встречается с геймпадом, штурвал уже ждёт — курс на любой экран, вплоть до ТВ-приставок.
Что умеет игра (на v1.400.2)
Режимы полёта
- Классика — бесконечный полёт на рекорд, всё небо в твоём распоряжении.
- Трасса дня — одна трасса на всех пилотов мира: эталонный коридор 390 мер, одинаковая геометрия на любом экране.
- Спидран — короткий заезд на скорость.
- Театр призраков (v1.94.0) — зрительский автопилот: самолётик сам идёт по записанной ленте дня, руки со штурвала убраны.
- Кузница — конструктор собственного неба с пресетами.
- Витрина «Режимы» (v1.108.0) — особые заезды широкой дверью, для всех пилотов: Затишье, Касание, Таран, Замедление, Коридор ворот.
Полёт
- Пять штурвалов на выбор: палец, наклон телефона («Полёт без рук» с калибровкой и судом компасов), мышь, клавиатура, геймпад.
- Шесть бонусов: щит, магнит, замедление, жизнь, таран, сверхновая.
- Препятствия: камни (тона — база, лёд, железо), рукотворный мусор семьями (спутники и обломки по четыре лица), тёплая комета.
- Золотая звезда дня — редкий снич: золотые искры догоняют героя.
- Позывной пилота — твоё имя в небе: шлейф пишет его морзянкой, виброэфир отстукивает в ладонь (см. «Морзянка»).
- Живое небо «Планетарий» (v1.100.0): метеор, маяк, станция светом и дымом, отметины пути, вспышка крыла, корма со скоростью, искры звезды.
Вокруг полёта
- Экран итогов с карточкой: поделиться в сторис или в чат, сохранить картинку.
- Достижения и рекорды; прогресс синхронизируется в облако.
- Ангар — витрина самолётика.
- Музыка и все звуки синтезируются на борту — ни одного аудиофайла.
- Чёрный ящик — бортовой самописец: калибровки, штурвалы, отказы — всё в ленте для диагностики.
- Почта неба (v1.107.0) — ошибки прилетают сами: анонимная открытка экипажу с версией и симптомом, офлайн бережёт очередь; честный выключатель «Помогать экипажу отчётами» в настройках.
- Штурман по желанию (v1.106.0) — замок гироскопа двусторонний: вернул штурвал пальцу одним касанием.
- Два языка: русский и английский.
- Работает офлайн (сервис-воркер); плакат «Вышло новое небо» честно предлагает обновление.
- Погружение (v1.58.0): полный экран, замок ориентации, защита от случайного свайпа-закрытия в полёте.
Соревнование
- Топ пилотов — таблица рекордов по категориям, живёт на сервере.
- Дуэль — вызов другу: побей планку его верифицированного рекорда.
- Призраки — полетай бок о бок с трассой чужого рекорда; владелец трека может его скрыть.
- Трасса дня — один зачётный коридор на всех.
Экраны: Старт → Режимы → Полёт → Итоги → Карточка; витрины — Достижения, Ангар, Кузница, Настройки; служебные — Пауза, Диагностика, Золотая звезда.
Штурвалы — пять способов рулить (всё на борту, проверено кодом)
- Палец — главный штурман, открыт сразу.
- Гироскоп — «Полёт без рук»: калибровка по позе руки, суд компасов автоматически осуждает врущий датчик и отбирает у него штурвал.
- Мышь — руль с зажатой кнопкой (v1.99.0).
- Клавиатура — стрелки и WASD, обе раскладки: русская и английская.
- Геймпад (v1.99.7) — левый стик или крестовина рулят, кнопка A — старт/заново, Start — пауза; стыковка и отстыковка штурвала пишутся в чёрный ящик.
Устройства и экраны
- Телефон — главная сцена: Android и iPhone; вёрстка обходит чёлки и «остров» Dynamic Island; полноэкранный режим, кнопка «на домашний экран».
- Десктопный Telegram (Windows, Mac, Linux) — руль мышью, клавиатурой или геймпадом.
- Экран любого размера: мир меряется эталоном 390×844 и масштабируется («Метр неба», v1.99.0) — игра выглядит одинаково на маленьком телефоне и широком мониторе.
- Экраны-монстры 4K+: холст ограничен «Потолком листа» — не больше 2560 px по длинной стороне (v1.99.1): красота не съедает кадры и батарею.
- Высокогерцовые экраны (120/240+ Гц): ввод берёт самый свежий сэмпл за кадр; игра меряет паспорт экрана — частоту и цветовой охват — и подстраивается.
- ТВ и пульт ДУ: Telegram Mini Apps на ТВ не живут, отдельной поддержки пульта нет — но там, где есть браузер с геймпадом, геймпадный штурвал сработает. Курс корабля — любой экран.
Морзянка — позывной в небе и в ладони (v1.53.0)
У каждого пилота есть позывной (по умолчанию — «Пилот»). Он звучит дважды:
- Шлейф пишет морзянкой. За самолётиком тянется лента глифов: точка — кружок, тире — чёрточка (v1.55.0). По умолчанию лента скрыта из неба — включается только вручную в настройках: небо прежде всего.
- Виброэфир отстукивает в ладонь. Позывной превращается в расписание импульсов: точка — короткий, тире — длинный. Каналы по честному умению: тактильный мост Telegram (чёткие импульсы), запасной путь — системная вибрация браузера (точка 50 мс, тире 150 мс), где нет ни того, ни другого — тишина.
- «Проверил эфир» — позывной звучит в первом полёте дня, дальше тишина до завтра: утром привет, потом не мешает.
- Диагностика канала — в «Ещё» есть честный тест: покажет, по какому каналу стучит морзянка (Telegram API / только системная вибрация / нет вибрации).
Музыка и звук
Вся музыка и эффекты синтезируются на борту в момент звучания — в игре нет ни одного аудиофайла: небо лёгкое, загрузка мгновенная. Звук просыпается от первого касания — закон мобильных браузеров.
Уровни графики (три ступени + умный автомат)
- Три тира по паспорту видеочипа: слабый / средний / флагман. Вычисляется один раз и запоминается навсегда.
- «Ультра» — только флагманскому тиру: слабых и средних не дразним.
- Адаптивный I.Q: меряет длительность кадра прямо в полёте и приглушает украшения на слабом железе.
- «Потолок листа» — 2560 px против экранов-монстров.
- Священно: масштабируются только украшения. Механика, скорость и препятствия одинаковы для всех.
- В планах модуль «Мозг неба»: угадывать класс устройства сразу и переключать ступени только в тишине, никогда посреди атаки.
Честная игра (что уже сделано против читеров)
- «Протокол seed» (v1.99.9): один сид = одна геометрия трассы на любом экране. Раньше широкий экран (вплоть до ТВ) статистически облегчал трассу — спавн растягивался по ширине. Теперь соревновательные небеса играют в эталонном коридоре: ни растяжения, ни «безопасной полосы» у края.
- Планка дуэли живёт на сервере: в ссылке-вызове цифры нет — подделать нечего.
- Сервер не отдаёт призрак сильнее верифицированного рекорда: подделка трека бессмысленна.
- Знак результата — после результата: галочка «рекорд записан» загорается только после подтверждения записи.
Равноправие пилотов
- Нет доната, рекламы и тёмных паттернов. Не появится без суда хартии.
- Механика одинакова для всех устройств: на старье плавно, флагманам красиво — но небо одно на всех.
- Каждый игрок — голос, а не дойный аппарат. В планах — дверь «Предложить идею» прямо из настроек.
- «Небо для всех» — модуль доступности стоит в очереди.
Хартия неба
Добавляем только то, что улучшает игру. Каждый игрок — голос, а не дойный аппарат.
Каждый новый элемент проходит суд четырёх вопросов:
- Улучшает ли игру?
- Читается ли с полёта?
- Не пугает ли зря?
- Не крадёт ли кадры?
Декор никогда не входит в коридор столкновений. Всё рукотворное в коридоре — честная угроза и обязано так выглядеть.
Ценности
- Ядро + Модули. Одна функция за раз, маленькие шаги. Одно небо — одна мысль.
- Красота никогда не в ущерб читаемости препятствий. Приборы могут быть плоскими — мир не может.
- Как родное для Telegram. Дизайн, имена и описания — человеческим языком, без жаргона.
- Честность. Никаких тёмных паттернов; знак результата рисуется после результата.
- Стражи раньше кода. Тест пишется до кода: красный → зелёный. Доска из 103 стражей прогоняется трижды перед каждой сдачей.
- Механика одинакова для всех. На слабом железе масштабируются только украшения — препятствия никогда.
Технологии и инженерия
- Vanilla JS + canvas, без сборки и фреймворков — код читается как книга.
- Сервис-воркер с версией в имени кэша — офлайн и честные обновления.
- Облачный синк прогресса и рекордов (CloudStorage + собственный сервер синка).
- Детерминизм «зерно + лента»: записанный заезд воспроизводится кадр в кадр — основа Театра, призраков и будущего «Кино полёта».
- Пулы объектов, кадровый бюджет 16 мс, оффскрин-пререндер тяжёлых слоёв.
- 103 стража-теста стоят на посту: красный → зелёный, доска прогоняется трижды перед сдачей.
Летопись версий (вехи)
- v1.53.0 — Морзянка: позывной в шлейфе и в ладони.
- v1.58.0 — Погружение: полный экран, замок ориентации, защита от свайпа.
- v1.70.0 — Ленивая загрузка тиров графики.
- v1.94.0 — Театр призраков: зрительский автопилот.
- v1.99.0–1 — Метр неба и Потолок листа: любой экран — одно небо.
- v1.99.9 — Протокол seed: равные трассы на любом экране.
- v1.100.0 — Планетарий: десять кистей живого неба.
- v1.102.2 — Два компаса: война с врущим датчиком началась.
- v1.104.0 — Компас и лжец: суд компасов, лжец осуждён.
- v1.105.0 «Свет и дым» — станция светом и дымом, семьи мусора, залитые глифы, розовая жизнь.
- v1.106.0 «Штурман по желанию» — замок гироскопа двусторонний: вернул штурвал пальцу одним касанием.
- v1.107.0 «Почта неба» — ошибки прилетают сами: анонимные открытки экипажу, очередь офлайна, сигналы-симптомы.
- v1.108.0 «Имена неба» — небо говорит коротко и по-русски: Затишье, Таран, Замедление, Касание, Режимы; Спидран — спорт, оставлен.
- v1.280.0 — расширенная сессия: таблица дуэлей, французский целиком, «Мозг неба» уровень 1.
- v1.281.0 «Живой призрак» — призрак ожил в обычных режимах; честный сид за забег; клавиатура и геймпад — отдельная категория.
- v1.282.0 «Дно и полосы» — маяк на слабых устройствах, настоящая утечка памяти закрыта, скоростные полосы, контраст и режим для дальтоников.
- v1.282.20 «Один день на всех» — Трасса дня по UTC, вертикаль коридора чести, паспорт забега на сервере, тихая галочка подтверждённого.
- v1.283.0 «Свежий борт и свои глаза» — версия во всех местах одним скриптом, Sentry и Amplitude убраны, гость без входа виден.
- v1.400.2 «Небо помнит» — Bullet Time возвращается после перезапуска, очередь Трассы дня не теряет результат в сеть, расписание трассы одинаково на любом штурвале и любой частоте кадров.
Дорожная карта (порядок утверждён)
Ближние модули: «Пульт итогов» → «Кино полёта» (видео заезда в сторис) → «Мозг неба» (умное автокачество) → «Галерея небес» (фотонебо) → «Понятные настройки» (с дверью «Предложить идею») → «Тёплый свет — мой» → «Телевизор трассы» → «Пульс гонки», «Небо для всех» → предпросмотр бота.
Полка идей: «Звезда-сюрприз» (седьмой бонус, всегда добрый), «Минеральная кожа камней» (лабрадоритовый огонь внутри камня), созвездие-самолётик (ждёт своего часа на полке).
Устройство сейфа
index.html (корень) — табличка-перенаправление в app/. Не трогать.
app/ — полный код игры; GitHub Pages отдаёт игрокам именно его.
app/js/vendor/telegram-web-app.js — официальный мост Telegram. Не правим никогда; восстанавливается с https://telegram.org/js/telegram-web-app.js
- Зипы версий живут в Releases — каждой версии свой цивильный релиз со снимком внутри.
Ритуал разработки
Один модуль = один коммит = один пуш. Перед модулем — разбор цены (время и стоимость), перед визуальным изменением — макет. Большие задачи режутся на подмодули по ~200 строк. Полный файл целиком — только после предупреждения о стоимости.
Лицензирование и Торговые марки
Проект «Cosmogram» распространяется по собственной, не open source лицензии автора. Это значит: исходный код открыт для чтения и изучения, но права на коммерческое использование, распространение и создание сторонних проектов на его основе остаются у автора.
- Игра целиком (исходный код — папки
js/, tests/, app/; а также ассеты, интерфейс, звук, тексты и лор) — распространяется по единой авторской лицензии, см. LICENSE. Разрешено бесплатно играть, изучать код, вносить правки для себя и делать бесплатные некоммерческие моды с честной пометкой «неофициальный», а также снимать видео и стримить (в том числе на площадках с рекламной монетизацией). Запрещено продавать игру или её форки/порты, использовать код и алгоритмы для сторонних самостоятельных игр, использовать ассеты в чужих проектах — без письменного согласия автора.
- Шрифт Exo 2 (папка
fonts/) — распространяется под лицензией SIL Open Font License 1.1.
- Торговые марки и Бренд — название «Cosmogram», логотипы, элементы фирменного стиля и сюжетная вселенная защищены авторским правом. Подробнее см. в файле
TRADEMARK.md.
Простыми словами: Вы имеете полное право бесплатно играть, изучать код, исправлять баги для себя и делать бесплатные моды с честной пометкой, что это не оригинал. Однако вы не имеете права продавать игру или её форки, использовать оригинальную графику/звуки/код в коммерческих проектах или выпускать свои модификации под названием «Cosmogram» без официального разрешения.
По вопросам коммерческого использования: @exxxit в Telegram.
Экипаж
Капитан и владелец курса — exxxit-game.
© exxxit-game, 2026