Mapsoft
From Game Logs
Техническое задание на разработку мапсофта
Перечень почётных ниггеров
Требования к мапсофту
- Софтина должна строиться на базе клиент-серверной архитектуры. Вся информация хранится на сервере, клиент используется только для отображения. Актуализация клиентской информации должна производиться в реальном времени, с интервалом опроса не больше пяти секунд.
- Аутентификация пользователей по логин-паролю. Пользователь имеет право создавать под своим аккаунтом карты, выставлять им статус "закрытая/открытая/активная" и указывать перечень пользователей, имеющих доступ к карте.
- Закрытая карта не видна никому кроме её владельца (ака мастера), используется, например, для мастерских заготовок впрок.
- Открытая карта по умолчанию видна всем, без требований к авторизации. При указании фильтра по юзерам, видна только им. Служит, например, для архива или предбоевой подготовки.
- Активная карта - аналог хостнутой сетевой игры. Владелец карты разбрасывает инвайты по пользователям, находящимся в системе, после чего они получают возможность зайти в карту, указать имя персонажа, выбрать цвет токена, етц. Добавление кастомных аватарок не видится приоритетным. Привязка "аккаунт - персонаж" сохраняется между сессиями, дабы была возможность реконнектиться.
- Основное окно пользовательского интерфейса состоит из трёх областей областей - перечень хронологических событий (далее - ХС), ростер инициативы и собственно карта. При нажатии на какой-либо пункт хронологии окно карты откатывается на тот момент, давая возможность посмотреть где кто стоял и как всё происходилО. Мастер инициирует все ХС на карте, но это не обязательно должны быть перемещения. В общем случае, ХС может вводить новый токен, убирать старый, перемещать старый, изменять статус токена (функционал статусов в начальный минимум разработки не входит, но в перспективе вай нот), или ничего не делать, и служить сугубо для отметки, например, начала нового хода, комментария о вносе стопицот дамага, смешных шуток с башорга, етц.
- Внутри игры рядовой пользователь изначально имеет два рабочих инструмента - указательные флажки, цветом совпадающие с его токеном. Первым флажком он сообщает куда намерен переместиться, дабы мастер, после рассмотрения заявки игрока, создал ХС-перемещение. Вторым флажком пользователь передаёт остальным участникам карты информацию "
ебошитьобратите внимание сюда". В запутанных картах целеуказание вида "вон тот, второй слева в верхнем ряду, которого Полуэкт подамажил" может быть запутано и нерационально, так что сразу решаем и этот вопрос. Расстановка флажков сиюминутна, исторической ценности не имеет и в ХС не фиксируется. - Также у пользователя есть волшебная кнопка "я всё", сигнализирующая мастеру о том, что по данному товарищу ХС можно закрывать. Сигнализация должна настраиваться на клиенте, и включать в себя галки для звукового оповещения, попапа и мигания окна.
- Создание карты для стартового функционала программы рудиментарно: владелец указывает настройки сетки (квадратная | гексагональная | отсутствует), аплоадит жыпег с фоном (опционально), давит "создать", отвечает на промпт статуса карты, и поехали. Если указан активный статус - сразу открывается типовой интерфейс приглашения, т.е. список пользователей. Участие пользователя сразу в нескольких картах нафиг не нужно, что упрощает.
- Внутри активной карты все изменения баттлфилда мастер оформляет в виде ХС - обычно это изменения в токенах (перемещение/ввод/удаление, можно сразу нескольких), плюс короткий комментарий, выводящийся всем игрокам в область ХС. Софтина должна поддерживать загрузку нового фона карты, также записывая это обновление в отдельный ХС. Желателен ассортимент шаблонов ХС вида холостой информационной записи "начался новый ход", или кнопки "таки да", которая, если у текущего пользователя стоит галка "я всё", автоматически создаёт ХС, перемещающий токен текущего пользователя на его флажок-ногу, с типовым комментарием а-ля "%username походил".
- Ростер инициативы управляется сугубо мастером<ref>схуяле, чуть менее чем все игровые системы предполагают всякую хитроту с собственным инитом, проще дать читорам по балде чем дму всех по шкале инита носить.</ref>, при активизации карты заполняется вручную таблицей с колонками "%username" и "%init". В мастерском интерфейсе таблицу можно редактировать, меняя значение %init для каждого пользователя, сортируя по %init, и кнопками "вверх-вниз" перемещать пользователей вопреки всему. Пользователь, до которого дошла очередь хода по таблице, получает оповещение (настройки см.выше). Если пользователь нажал "я всё" и его ХС был закрыт мастером, инициатива автоматически переходит к следующему. В противном случае, мастер передаёт ход вручную.Инит по-разному устроен в разных системах, поэтому правильным подходом, ящитаю, было бы иметь для данной конкретной нахощеной карты такой параметр, как используемая система и управлять инитом соответственно. Т.е., ролльнуть инит или взять базик спид из мини-чарника, например.
- Блэкджек, шлюхи.
- Поддержка макоебов.