Difference between revisions of "Mapsoft"

From Game Logs
Jump to: navigation, search
(никакого отношения к служебным страницам вики это не имеет.)
(Replaced content with "Category:Project Теперь в гуглосайтах.")
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Техническое задание на разработку мапсофта =
+
[[Category:Project]]
 
+
Теперь в гуглосайтах.
== Перечень почётных ниггеров ==
 
 
 
<poem>
 
[[User:Mezriss|Mezriss]] - lead developer.
 
[[User:insd7s|insd7s]] - assistant developer.
 
</poem>
 
 
 
== Назначение мапсофта ==
 
(В этом разделе предполагается перечисление сценариев использования, при которых этот мапсофт при имеющемся функционале будет предпочтительней всех конкурентов)
 
(Этот текст будет пугать посетителей на главной странице)
 
 
 
== Требования к мапсофту ==
 
 
 
* Софтина должна строиться на базе клиент-серверной архитектуры. Вся информация хранится на сервере, клиент используется только для отображения и кеширования. Актуализация клиентской информации должна производиться в реальном времени, с интервалом опроса не больше пяти секунд.
 
 
 
=== Аутентификация и доступ ===
 
* Аутентификация пользователей одним кликом через OpenID (кнопки для аутентификации через гугл, твиттер, фейсбук, (опционально через произвольный OpenID)). Пользователь имеет право создавать под своим аккаунтом карты, выставлять им статус "открытая/приватная".
 
** Приватную карту может просматривать только её создатель (ака мастера), используется, например, для мастерских заготовок впрок.
 
*** Для приватной карты можно указать список пользователей, у которых будет доступ к ней, если она будет сделана публичной.
 
** Открытую карта могут просматривать все, у кого есть ссылка на нее и кому её создатель дал доступ.
 
*** Если доступ дан "всем", то карту может просматривать кто угодно при наличии ссылки (удобно для карт турниров)
 
*** Опционально создатель может дать доступ только некоторому количеству пользователей, но не более Х (для обычных игр, предбоевой подготовки).
 
** Созданную открытую карту можно сделать активной.
 
*** Игроки, у которых есть доступ, получают уведомление, на их страницах она отмечается как активная
 
*** Игроки могут управлять присвоенными ими токенами (с учетом всех ограничений), токены добавляются в ростер инициативы
 
=== Создание карты ===
 
Создание карты для стартового функционала программы рудиментарно. Указываются:
 
* название карты
 
* тип карты
 
* список пользователей, у которых есть доступ
 
* ссылка на картинку для карты (или аплоад на imgur, если в данный момент не исчерпана квота или аплоад в дропбокс) или текстура для фона из набора
 
** масштаб картинки или текстуры (настраивается ползунком)
 
** размеры карты, если выбрана текстура (установлен размер по умолчанию Х)
 
* тип сетки (квадраты, гексы, отсутствие), её размер (ширина одной ячейки; не меньше Х, не больше Y, настраивается ползунком)
 
После окончания создания можно начать рисовать туман, расставлять токены, менять её статус, делать активной
 
=== Туман войны ===
 
* Игроки видят туман как непрозрачную текстуру/цвет, создатель карты - с прозрачностью 0.Х
 
* В настройках карты создатель может выбрать текстуру из набора или цвет
 
* Управление туманом производится через кнопки "залить" и "очистить" и рисованием курсором с зажатым shift'ом (обновленное состояние тумана отправляется игрокам и добавляется в историю только после того, как создатель отпускает shift)
 
<small>По хорошему нужна возможность иметь отдельный туман для каждого игрока/токена, но это все переусложнит</small>
 
=== Токены ===
 
Круглые хреновины, которые можно перемещать. При создании указываются:
 
* Имя токена
 
* Размер в клетках/гексах или произвольный, если на карте нет сетки (не меньше Х, не больше Y; настраивается ползунком)
 
* Цвет
 
* Буква в центре или ссылка на фоновую картинку (опционально; возможно для простоты стоит отказаться от картинок)
 
После создания можно:
 
* Дать доступ к токену какому-то игроку
 
* Добавить токен в ростер инициативы
 
* Указать дополнительную информацию в формате ключ-значение.
 
** эта информация вместе с именем отображается при наведении
 
** Значение может отображаться как текст или как полоска, если оно было указано как процент или в формате Х/Y.
 
** Каждое значение может отображаться только для создателя карты / для создателя и игрока, которому присвоен токен / всем (по умолчанию)
 
=== Интерфейс карты ===
 
Основное окно страницы с картой состоит из карты и 2 перемещаемых панелей:
 
* горизонтальная панель - ростер инициативы
 
* вертикальная панель со всем остальным и иконками для переключения между панелями:
 
** история - сюда записываются сообщения о происходящем (перемещение токенов, стирание туманы, конец хода и т.п.), можно "исследовать" историю (см. историю в фотошопе) и смотреть что было раньше (вкладка по умолчанию)
 
*** под историей текстовое поле - создатель может создавать произвольные оповещения, которые будут добавлениы в историю (с пометкой "объявление" или что-то в таком духе)
 
*** текстовое поле для строки дайса, кнопка для броска
 
** список просматривающих карту и присвоенных им токенов (в первую очередь те, у кого есть токены, в самом конце - количество незалогиненных зрителей)
 
** настройки выбранного токена (или сделать редактирование информации сразу в тултипе, всплывающем при наведении на токен?)
 
** настройки карты и всего прочего
 
*** мастер может менять фоновую картинку (и какие-то еще настройки)
 
*** игрок может настраивать способ оповещения о начале нового хода (звук, алерт, что-то еще)
 
Карта это картинка + сетка (опционально) + токены + флажки + вейпоинты
 
* Координаты хранятся потайлово; при смене/убирании сетки координаты пересчитываются в пиксельные
 
* В одной ячейке сетки может быть до 8 токенов и до 8 вейпоинтов; они все устанавливаются с Х% смещением от центра
 
* Если несколько токенов разного размера находятся очень близко, то сверху рисуются более мелкие
 
 
 
=== Управление картой и токенами ===
 
* Флажки для привлечение внимания - каждый игрок может поставить указатель с подписью (привлечь внимание к чему-то на карте)
 
** Не больше Х одновременно присутствующих на карте флажков от каждого игрока
 
** Кнопка для удаления, доступная как игроку, так и мастеру
 
** Флажок окрашен в цвет первого токена, присвоенного игроку, до наведения на него курсора отображается с 0.Х прозрачностью
 
* Создание вейпоинтов для перемещения токена
 
** Новый вейпоинт создается перетаскиванием токена в нужное место
 
** Старые вейпоинты можно перетаскивать в другое место или удалять; если удален вейпоинт из середины цепи, оставшиеся соединяются
 
** Рассчитывать расстояние и показывать на каждом вейпоинте (возможно фича лишня; нужно предусмотреть несколько правил, по которым рассчитывается)
 
** Где-то у мастера есть кнопка для одобрения пути, после нажатия токен перемещается (возможно стоит при включении настройки разрешать игрокам двигать токены самим?)
 
=== История ===
 
В лог истории записываются все действия происходящие с картой, объявления мастера
 
* События могут быть публичными и тайными (то, что мастер делает с токенами под туманом); тайные события отображаются только у мастера или у всех после отправки карты в "архив" (может быть полезно для турниров)
 
* При клике по какому-то событию, карта показывается на момент этого события; чтобы продолжить следить за событиями в нормальном режиме нужно кликнуть по выбранному событию во второй раз или выбрать последнее событие
 
Типы событий, сохраняющихся в истории:
 
* Объявление (мастер записывает в лог строку текста)
 
* Результат броска дайсов
 
* Создание токена, удаление токена, изменение имени токена
 
* Редактирование статистики на токене (скажем "Хобгоблин: -85% хп")
 
* Изменение тумана
 
* Начало раунда N
 
* Конец хода %токена% (игрок нажал кнопку "окончить ход")
 
* Начало хода %токена% (мастер запустил ростер инициативы или нажал кнопку "следующий ход"). При этом событии хозяин токена оповещается.
 
* Изменение инициативы %токена%
 
 
 
=== Ростер инициативы ===
 
Ростер это табличка со следующими колонками:
 
* Имя токена
 
* Инициатива (1 или более значений через запятую; сортировка всегда по первому значению)
 
* Статус (текстовое поле)
 
* Значение одного из информационных полей с чара (это как-то где-то настраивается)
 
Управление ростером:
 
* Кнопка "добавить все токены", кнопка "добавить токен" (с выпадающим меню для выбора)
 
* Кнопка "отсортировать", чекбокс "автоматическая сортировка", селект "по убывающей/по возрастающей"
 
* Кнопка "конец хода" (нажимается игроком, когда он расставил вейпоинты и ждет утверждение)
 
* Кнопка "следующий (доступна только мастеру)
 
* Строки в ростере можно перемещать перетаскиванием
 
 
 
=== Дайс ===
 
В текстовое поле вводится строка с формулой броска. Строка разбирается на сервере, где и происходит "бросок". Результат вместе с именем игрока добавляется в историю.
 
=== Страница пользователя ===
 
На ней отображаются:
 
* Список созданных им карт (вход для редактирования, смена типа открытая/приватная, установка её в активный режим, удаление)
 
* Список публичных карт, к которым ему дали доступ или присвоили токен, активные выделены
 
* Настройки сайта, если такие будут реализованы (смена языка, смена темы оформления, список игнорируемых пользователей)
 
 
 
=== Прочее ===
 
* Блэкджек, шлюхи.
 
* Поддержка макоебов.
 
==== Планы на очень далекое будущее ====
 
* Чат
 
* Рисование карты заготовленными тайлами
 
* Социальная хренотень с календарями доступности игроков, напоминанием об играх
 

Latest revision as of 15:14, 4 December 2011

Теперь в гуглосайтах.