Difference between revisions of "Mapsoft"
From Game Logs
m (→Требования к мапсофту) |
|||
Line 1: | Line 1: | ||
[[Category:Служебное]] | [[Category:Служебное]] | ||
− | + | = Техническое задание на разработку мапсофта = | |
− | + | == Перечень почётных ниггеров == | |
<poem> | <poem> | ||
Line 10: | Line 10: | ||
</poem> | </poem> | ||
− | + | == Требования к мапсофту == | |
− | * Софтина должна строиться на базе клиент-серверной архитектуры. Вся информация хранится на сервере, клиент используется только для отображения. Актуализация клиентской информации должна производиться в реальном времени, с интервалом опроса не больше пяти секунд. | + | * Софтина должна строиться на базе клиент-серверной архитектуры. Вся информация хранится на сервере, клиент используется только для отображения и кеширования. Актуализация клиентской информации должна производиться в реальном времени, с интервалом опроса не больше пяти секунд. |
− | * Аутентификация пользователей | + | |
− | ** | + | === Аутентификация и доступ === |
− | ** | + | * Аутентификация пользователей одним кликом через OpenID (кнопки для аутентификации через гугл, твиттер, фейсбук, (опционально через произвольный OpenID)). Пользователь имеет право создавать под своим аккаунтом карты, выставлять им статус "открытая/приватная". |
− | ** | + | ** Приватную карту может просматривать только её создатель (ака мастера), используется, например, для мастерских заготовок впрок. |
+ | *** Для приватной карты можно указать список пользователей, у которых будет доступ к ней, если она будет сделана публичной. | ||
+ | ** Открытую карта могут просматривать все, у кого есть ссылка на нее и кому её создатель дал доступ. | ||
+ | *** Если доступ дан "всем", то карту может просматривать кто угодно при наличии ссылки (удобно для карт турниров) | ||
+ | *** Опционально создатель может дать доступ только некоторому количеству пользователей, но не более Х (для обычных игр, предбоевой подготовки). | ||
+ | ** Созданную открытую карту можно сделать активной. | ||
+ | *** Игроки, у которых есть доступ, получают уведомление, на их страницах она отмечается как активная | ||
+ | *** Игроки могут управлять присвоенными ими токенами (с учетом всех ограничений), токены добавляются в ростер инициативы | ||
+ | === Создание карты === | ||
+ | Создание карты для стартового функционала программы рудиментарно. Указываются: | ||
+ | * название карты | ||
+ | * тип карты | ||
+ | * список пользователей, у которых есть доступ | ||
+ | * ссылка на картинку для карты (или аплоад на imgur, если в данный момент не исчерпана квота или аплоад в дропбокс) или текстура для фона из набора | ||
+ | ** масштаб картинки или текстуры (настраивается ползунком) | ||
+ | ** размеры карты, если выбрана текстура (установлен размер по умолчанию Х) | ||
+ | * тип сетки (квадраты, гексы, отсутствие), её размер (ширина одной ячейки; не меньше Х, не больше Y, настраивается ползунком) | ||
+ | После окончания создания можно начать рисовать туман, расставлять токены, менять её статус, делать активной | ||
+ | === Туман войны === | ||
+ | * Игроки видят туман как непрозрачную текстуру/цвет, создатель карты - с прозрачностью 0.Х | ||
+ | * В настройках карты создатель может выбрать текстуру из набора или цвет | ||
+ | * Управление туманом производится через кнопки "залить" и "очистить" и рисованием курсором с зажатым shift'ом (обновленное состояние тумана отправляется игрокам и добавляется в историю только после того, как создатель отпускает shift) | ||
+ | === Токены === | ||
+ | Круглые хреновины, которые можно перемещать. При создании указываются: | ||
+ | * Имя токена | ||
+ | * Размер в клетках/гексах или произвольный, если на карте нет сетки (не меньше Х, не больше Y; настраивается ползунком) | ||
+ | * Цвет | ||
+ | * Буква в центре или ссылка на фоновую картинку (опционально; возможно для простоты стоит отказаться от картинок) | ||
+ | После создания можно: | ||
+ | * Дать доступ к токену какому-то игроку | ||
+ | * Добавить токен в ростер инициативы | ||
+ | * Указать дополнительную информацию в формате ключ-значение. | ||
+ | ** эта информация вместе с именем отображается при наведении | ||
+ | ** Значение может отображаться как текст или как полоска, если оно было указано как процент или в формате Х/Y. | ||
+ | ** Каждое значение может отображаться только для создателя карты / для создателя и игрока, которому присвоен токен / всем (по умолчанию) | ||
+ | === Интерфейс карты === | ||
* Основное окно пользовательского интерфейса состоит из трёх областей областей - перечень хронологических событий (далее - ХС), ростер инициативы и собственно карта. При нажатии на какой-либо пункт хронологии окно карты откатывается на тот момент, давая возможность посмотреть где кто стоял и как всё происходилО. Мастер инициирует все ХС на карте, но это не обязательно должны быть перемещения. В общем случае, ХС может вводить новый токен, убирать старый, перемещать старый, изменять статус токена (функционал статусов в начальный минимум разработки не входит, но в перспективе вай нот), или ничего не делать, и служить сугубо для отметки, например, начала нового хода, комментария о вносе стопицот дамага, смешных шуток с башорга, етц. | * Основное окно пользовательского интерфейса состоит из трёх областей областей - перечень хронологических событий (далее - ХС), ростер инициативы и собственно карта. При нажатии на какой-либо пункт хронологии окно карты откатывается на тот момент, давая возможность посмотреть где кто стоял и как всё происходилО. Мастер инициирует все ХС на карте, но это не обязательно должны быть перемещения. В общем случае, ХС может вводить новый токен, убирать старый, перемещать старый, изменять статус токена (функционал статусов в начальный минимум разработки не входит, но в перспективе вай нот), или ничего не делать, и служить сугубо для отметки, например, начала нового хода, комментария о вносе стопицот дамага, смешных шуток с башорга, етц. | ||
* Внутри игры рядовой пользователь изначально имеет два рабочих инструмента - указательные флажки, цветом совпадающие с его токеном. Первым флажком он сообщает куда намерен переместиться, дабы мастер, после рассмотрения заявки игрока, создал ХС-перемещение. Вторым флажком пользователь передаёт остальным участникам карты информацию "<strike>ебошить</strike> обратите внимание сюда". В запутанных картах целеуказание вида "вон тот, второй слева в верхнем ряду, которого Полуэкт подамажил" может быть запутано и нерационально, так что сразу решаем и этот вопрос. Расстановка флажков сиюминутна, исторической ценности не имеет и в ХС не фиксируется. | * Внутри игры рядовой пользователь изначально имеет два рабочих инструмента - указательные флажки, цветом совпадающие с его токеном. Первым флажком он сообщает куда намерен переместиться, дабы мастер, после рассмотрения заявки игрока, создал ХС-перемещение. Вторым флажком пользователь передаёт остальным участникам карты информацию "<strike>ебошить</strike> обратите внимание сюда". В запутанных картах целеуказание вида "вон тот, второй слева в верхнем ряду, которого Полуэкт подамажил" может быть запутано и нерационально, так что сразу решаем и этот вопрос. Расстановка флажков сиюминутна, исторической ценности не имеет и в ХС не фиксируется. | ||
* Также у пользователя есть волшебная кнопка "я всё", сигнализирующая мастеру о том, что по данному товарищу ХС можно закрывать. Сигнализация должна настраиваться на клиенте, и включать в себя галки для звукового оповещения, попапа и мигания окна. | * Также у пользователя есть волшебная кнопка "я всё", сигнализирующая мастеру о том, что по данному товарищу ХС можно закрывать. Сигнализация должна настраиваться на клиенте, и включать в себя галки для звукового оповещения, попапа и мигания окна. | ||
− | + | === История === | |
* Внутри активной карты все изменения баттлфилда мастер оформляет в виде ХС - обычно это изменения в токенах (перемещение/ввод/удаление, можно сразу нескольких), плюс короткий комментарий, выводящийся всем игрокам в область ХС. Софтина должна поддерживать загрузку нового фона карты, также записывая это обновление в отдельный ХС. Желателен ассортимент шаблонов ХС вида холостой информационной записи "начался новый ход", или кнопки "таки да", которая, если у текущего пользователя стоит галка "я всё", автоматически создаёт ХС, перемещающий токен текущего пользователя на его флажок-ногу, с типовым комментарием а-ля "%username походил". | * Внутри активной карты все изменения баттлфилда мастер оформляет в виде ХС - обычно это изменения в токенах (перемещение/ввод/удаление, можно сразу нескольких), плюс короткий комментарий, выводящийся всем игрокам в область ХС. Софтина должна поддерживать загрузку нового фона карты, также записывая это обновление в отдельный ХС. Желателен ассортимент шаблонов ХС вида холостой информационной записи "начался новый ход", или кнопки "таки да", которая, если у текущего пользователя стоит галка "я всё", автоматически создаёт ХС, перемещающий токен текущего пользователя на его флажок-ногу, с типовым комментарием а-ля "%username походил". | ||
+ | === Ростер инициативы === | ||
* Ростер инициативы управляется сугубо мастером<ref>схуяле, чуть менее чем все игровые системы предполагают всякую хитроту с собственным инитом, проще дать читорам по балде чем дму всех по шкале инита носить.</ref>, при активизации карты заполняется вручную таблицей с колонками "%username" и "%init". В мастерском интерфейсе таблицу можно редактировать, меняя значение %init для каждого пользователя, сортируя по %init, и кнопками "вверх-вниз" перемещать пользователей вопреки всему. Пользователь, до которого дошла очередь хода по таблице, получает оповещение (настройки см.выше). Если пользователь нажал "я всё" и его ХС был закрыт мастером, инициатива автоматически переходит к следующему. В противном случае, мастер передаёт ход вручную.''Инит по-разному устроен в разных системах, поэтому правильным подходом, ящитаю, было бы иметь для данной конкретной нахощеной карты такой параметр, как используемая система и управлять инитом соответственно. Т.е., ролльнуть инит или взять базик спид из мини-чарника, например.'' | * Ростер инициативы управляется сугубо мастером<ref>схуяле, чуть менее чем все игровые системы предполагают всякую хитроту с собственным инитом, проще дать читорам по балде чем дму всех по шкале инита носить.</ref>, при активизации карты заполняется вручную таблицей с колонками "%username" и "%init". В мастерском интерфейсе таблицу можно редактировать, меняя значение %init для каждого пользователя, сортируя по %init, и кнопками "вверх-вниз" перемещать пользователей вопреки всему. Пользователь, до которого дошла очередь хода по таблице, получает оповещение (настройки см.выше). Если пользователь нажал "я всё" и его ХС был закрыт мастером, инициатива автоматически переходит к следующему. В противном случае, мастер передаёт ход вручную.''Инит по-разному устроен в разных системах, поэтому правильным подходом, ящитаю, было бы иметь для данной конкретной нахощеной карты такой параметр, как используемая система и управлять инитом соответственно. Т.е., ролльнуть инит или взять базик спид из мини-чарника, например.'' | ||
+ | === Дайс === | ||
+ | В текстовое поле вводится строка с формулой броска. Строка разбирается на сервере, где и происходит "бросок". Результат вместе с именем игрока добавляется в историю. | ||
+ | === Страница пользователя === | ||
+ | На ней отображаются: | ||
+ | * Список созданных им карт (вход для редактирования, смена типа открытая/приватная, установка её в активный режим, удаление) | ||
+ | * Список публичных карт, к которым ему дали доступ или присвоили токен, активные выделены | ||
+ | * Настройки сайта, если такие будут реализованы (смена языка, смена темы оформления, список игнорируемых пользователей) | ||
+ | === Прочее === | ||
* Блэкджек, шлюхи. | * Блэкджек, шлюхи. | ||
* Поддержка макоебов. | * Поддержка макоебов. |
Revision as of 10:19, 25 October 2011
Contents
Техническое задание на разработку мапсофта
Перечень почётных ниггеров
Требования к мапсофту
- Софтина должна строиться на базе клиент-серверной архитектуры. Вся информация хранится на сервере, клиент используется только для отображения и кеширования. Актуализация клиентской информации должна производиться в реальном времени, с интервалом опроса не больше пяти секунд.
Аутентификация и доступ
- Аутентификация пользователей одним кликом через OpenID (кнопки для аутентификации через гугл, твиттер, фейсбук, (опционально через произвольный OpenID)). Пользователь имеет право создавать под своим аккаунтом карты, выставлять им статус "открытая/приватная".
- Приватную карту может просматривать только её создатель (ака мастера), используется, например, для мастерских заготовок впрок.
- Для приватной карты можно указать список пользователей, у которых будет доступ к ней, если она будет сделана публичной.
- Открытую карта могут просматривать все, у кого есть ссылка на нее и кому её создатель дал доступ.
- Если доступ дан "всем", то карту может просматривать кто угодно при наличии ссылки (удобно для карт турниров)
- Опционально создатель может дать доступ только некоторому количеству пользователей, но не более Х (для обычных игр, предбоевой подготовки).
- Созданную открытую карту можно сделать активной.
- Игроки, у которых есть доступ, получают уведомление, на их страницах она отмечается как активная
- Игроки могут управлять присвоенными ими токенами (с учетом всех ограничений), токены добавляются в ростер инициативы
- Приватную карту может просматривать только её создатель (ака мастера), используется, например, для мастерских заготовок впрок.
Создание карты
Создание карты для стартового функционала программы рудиментарно. Указываются:
- название карты
- тип карты
- список пользователей, у которых есть доступ
- ссылка на картинку для карты (или аплоад на imgur, если в данный момент не исчерпана квота или аплоад в дропбокс) или текстура для фона из набора
- масштаб картинки или текстуры (настраивается ползунком)
- размеры карты, если выбрана текстура (установлен размер по умолчанию Х)
- тип сетки (квадраты, гексы, отсутствие), её размер (ширина одной ячейки; не меньше Х, не больше Y, настраивается ползунком)
После окончания создания можно начать рисовать туман, расставлять токены, менять её статус, делать активной
Туман войны
- Игроки видят туман как непрозрачную текстуру/цвет, создатель карты - с прозрачностью 0.Х
- В настройках карты создатель может выбрать текстуру из набора или цвет
- Управление туманом производится через кнопки "залить" и "очистить" и рисованием курсором с зажатым shift'ом (обновленное состояние тумана отправляется игрокам и добавляется в историю только после того, как создатель отпускает shift)
Токены
Круглые хреновины, которые можно перемещать. При создании указываются:
- Имя токена
- Размер в клетках/гексах или произвольный, если на карте нет сетки (не меньше Х, не больше Y; настраивается ползунком)
- Цвет
- Буква в центре или ссылка на фоновую картинку (опционально; возможно для простоты стоит отказаться от картинок)
После создания можно:
- Дать доступ к токену какому-то игроку
- Добавить токен в ростер инициативы
- Указать дополнительную информацию в формате ключ-значение.
- эта информация вместе с именем отображается при наведении
- Значение может отображаться как текст или как полоска, если оно было указано как процент или в формате Х/Y.
- Каждое значение может отображаться только для создателя карты / для создателя и игрока, которому присвоен токен / всем (по умолчанию)
Интерфейс карты
- Основное окно пользовательского интерфейса состоит из трёх областей областей - перечень хронологических событий (далее - ХС), ростер инициативы и собственно карта. При нажатии на какой-либо пункт хронологии окно карты откатывается на тот момент, давая возможность посмотреть где кто стоял и как всё происходилО. Мастер инициирует все ХС на карте, но это не обязательно должны быть перемещения. В общем случае, ХС может вводить новый токен, убирать старый, перемещать старый, изменять статус токена (функционал статусов в начальный минимум разработки не входит, но в перспективе вай нот), или ничего не делать, и служить сугубо для отметки, например, начала нового хода, комментария о вносе стопицот дамага, смешных шуток с башорга, етц.
- Внутри игры рядовой пользователь изначально имеет два рабочих инструмента - указательные флажки, цветом совпадающие с его токеном. Первым флажком он сообщает куда намерен переместиться, дабы мастер, после рассмотрения заявки игрока, создал ХС-перемещение. Вторым флажком пользователь передаёт остальным участникам карты информацию "
ебошитьобратите внимание сюда". В запутанных картах целеуказание вида "вон тот, второй слева в верхнем ряду, которого Полуэкт подамажил" может быть запутано и нерационально, так что сразу решаем и этот вопрос. Расстановка флажков сиюминутна, исторической ценности не имеет и в ХС не фиксируется. - Также у пользователя есть волшебная кнопка "я всё", сигнализирующая мастеру о том, что по данному товарищу ХС можно закрывать. Сигнализация должна настраиваться на клиенте, и включать в себя галки для звукового оповещения, попапа и мигания окна.
История
- Внутри активной карты все изменения баттлфилда мастер оформляет в виде ХС - обычно это изменения в токенах (перемещение/ввод/удаление, можно сразу нескольких), плюс короткий комментарий, выводящийся всем игрокам в область ХС. Софтина должна поддерживать загрузку нового фона карты, также записывая это обновление в отдельный ХС. Желателен ассортимент шаблонов ХС вида холостой информационной записи "начался новый ход", или кнопки "таки да", которая, если у текущего пользователя стоит галка "я всё", автоматически создаёт ХС, перемещающий токен текущего пользователя на его флажок-ногу, с типовым комментарием а-ля "%username походил".
Ростер инициативы
- Ростер инициативы управляется сугубо мастером<ref>схуяле, чуть менее чем все игровые системы предполагают всякую хитроту с собственным инитом, проще дать читорам по балде чем дму всех по шкале инита носить.</ref>, при активизации карты заполняется вручную таблицей с колонками "%username" и "%init". В мастерском интерфейсе таблицу можно редактировать, меняя значение %init для каждого пользователя, сортируя по %init, и кнопками "вверх-вниз" перемещать пользователей вопреки всему. Пользователь, до которого дошла очередь хода по таблице, получает оповещение (настройки см.выше). Если пользователь нажал "я всё" и его ХС был закрыт мастером, инициатива автоматически переходит к следующему. В противном случае, мастер передаёт ход вручную.Инит по-разному устроен в разных системах, поэтому правильным подходом, ящитаю, было бы иметь для данной конкретной нахощеной карты такой параметр, как используемая система и управлять инитом соответственно. Т.е., ролльнуть инит или взять базик спид из мини-чарника, например.
Дайс
В текстовое поле вводится строка с формулой броска. Строка разбирается на сервере, где и происходит "бросок". Результат вместе с именем игрока добавляется в историю.
Страница пользователя
На ней отображаются:
- Список созданных им карт (вход для редактирования, смена типа открытая/приватная, установка её в активный режим, удаление)
- Список публичных карт, к которым ему дали доступ или присвоили токен, активные выделены
- Настройки сайта, если такие будут реализованы (смена языка, смена темы оформления, список игнорируемых пользователей)
Прочее
- Блэкджек, шлюхи.
- Поддержка макоебов.