Web-доски
Сервис временно отключен
Давно просили сделать приложение на телефон или что-то подобное для моих игр. Изначально я планировал оставить свои наборы только в физическом виде, но решил создать цифровую версию — хотя бы как макетный стол для себя, чтобы отлаживать баланс, расстановку и другие детали. Широко распространять и слишком развивать не планирую. Во многом сделано в рамках улучшения своих навыков Vue.js и построению веб-приложений.
Я не занимаюсь мобильными приложениями, и эта сфера мне не интересна. Моя основная специальность — веб-разработка, поэтому я выбрал знакомый и подходящий стек: Vue.js + PHP. Формат данных — не JSON, а собственная разработка для ускорения обмена и минимизации трафика.
Выберите игру, отправьте полученную ссылку другу и начинайте перетаскивать фигурки. Обычно этого достаточно для большинства игр.
На данный момент готовы:
Будут пополняться по мере подготовки новых физических наборов.
Сервер
Простой stateful сервис на PHP, выполняющий только запись и выдачу определённых структур данных. Поддерживает методы:
- Запись полной доски: init.
- Изменения состояния элементов: move, rotate, flip.
- Запрос всей доски: state.
- Запрос очереди: queue.
Формат данных — собственный, достаточный для всех игр, которые я планировал реализовать. Всё поле хранится в одном текстовом файле построчно. Изменения синхронизируются через файл очереди, содержащий последние 10 операций. Синхронизация изменений происходит через посекундный AJAX, а полная синхронизация поля — раз в минуту для коррекции возможных неточностей обмена.
Клиент
Написан на компонентах Vue.js. Каждая игра реализована как однофайловый компонент с отдельными ассетами и стилями. Общий код максимально переиспользуется, что упрощает добавление новых игр, если они используют уже готовые механики.
По возможности реализованы все особенности всех и удобное управление как с компьютера, так и с телефона.
Обычно управление выглядит так:
- Перетаскивание фигуры на фигуру — захват.
- Двойной клик по фигуре — переворот на другую сторону.
- Двойной клик по карте — передача карты.
- Двойной клик по фону — передача хода.
Подробности управления смотрите в инструкциях к играм. На компьютере и телефоне оно может отличаться.
Для лучшего опыта, если один из игроков использует телефон, создавайте игру на телефоне. В этом случае фигуры выстроятся сверху и снизу от поля, что нормально работает и на компьютере. Если же игру создать на компьютере, а второй игрок подключится с телефона, фигуры расположатся слева и справа от поля, что может быть неудобно на мобильном устройстве.
Ассеты
Взяты оригинальные изображения — те же, что используются для создания физических наборов. Подготовлены в виде спрайтов. Если элементы переворачиваются, их стороны хранятся как отдельные файлы. Переворот — это просто замена картинки для данного элемента.