ON-CHAIN GAME
Last Shoot
Морская Telegram-игра с серверным состоянием боя, очередью игроков, профилями и TON escrow.

От разрозненных действий — к рабочей системе
Логика кейса: что мешало бизнесу, как мы собрали решение и что изменилось в ежедневной работе.
Задача
Last Shoot — пошаговая морская дуэль в Telegram, где два участника должны видеть одно и то же поле, очерёдность и результат выстрела даже после обрыва связи или повторного открытия Mini App. Если доверить состояние браузеру, один повторный запрос или рассинхронизация ломают саму логику матча.
Дополнительный уровень сложности создаёт TON escrow: финансовый сценарий должен быть отделён от анимации и клиентских предположений. Сначала необходимо однозначно определить победителя на сервере, затем провести расчёт или возврат и сохранить проверяемый след матча.
Решение
В решении сервер стал единственным источником истины. Matchmaking создаёт бой и секретные игровые билеты, каждый выстрел получает уникальный action ID и идемпотентно записывается в журнал, а оба клиента получают одну версионированную модель боя через long polling.
Интерфейс анимирует только подтверждённые сервером события. По завершении формируется канонический transcript и SHA-256 receipt, а TON-режим передаёт итог в escrow-контур с путями выплаты победителю и возврата. TON Connect proof связывает кошелёк с проверенной Telegram-идентичностью.
Как работает
- 01
Matchmaking создаёт игровую сессию и выдаёт каждому участнику ограниченный билет
- 02
Игрок отправляет выстрел с уникальным идентификатором, исключающим двойное применение
- 03
Сервер проверяет очередь, сохраняет действие и публикует новую версию состояния
- 04
Оба клиента получают подтверждённый snapshot и одинаково воспроизводят результат
- 05
Финал матча фиксируется receipt, после чего escrow выполняет расчёт или предусмотренный возврат
Результат для бизнеса
Матч выдерживает повторные запросы, перезагрузку клиента и нестабильное соединение без раздвоения состояния. Игроки получают понятную очерёдность и одинаковую историю боя, а спорные ситуации можно разбирать по сохранённому журналу и receipt.
Решение честно разделяет зоны доверия: это серверно-авторитетная игра, а не обещание полностью trustless-механики. Блокчейн используется там, где он действительно нужен для escrow и расчёта, тогда как быстрота и целостность игрового цикла обеспечиваются сервером.