www.mudconnector.su

Национальный мадконнектор.
Текущее время: Сб дек 21, 2024 9:57 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 1:00 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Предварительные наброски

В этом треде я оставляю за собой право удалять "лишние-устаревшие" сообщения.

Версия 0.2

Собственно всё-таки было решено сделать. Для начала для собственного использования, т.к. проще выделить как сервис.
Поскольку мне пофиг где писать "кастрированные спеки", всё равно "пишу для себя", в качестве эксперимента было решено
написать тут. Мало-ли, у кого-то может будут здравые идеи.
Документ очень приблизительный, будет дорабатываться.

Итак. Вводная. (зачеркнуто то, что будет реализовано в v2.0 - первая версия - для внутреннего употребления,
вторая для возможности интегрироваться с иными мадами (буде захотят) )
Сервис, отдельно крутящийся на отдельном железе.
Основное назначение - накопление имён и решений по ним. Первоначально в базу решений есть идея
добавить имеющиеся. Кроме автообновления-автозарубания этот сервис позволит сохранить за собой имя
персонажа, даже если сам он будет удален из базы конкретного мада.

Предполагается что для этой части будет использован в качестве реализации c# и mono, код не будет open source.
(1. нет смысла размножать такие сервисы, 2.чуть завуалирует проблемы безопасности 3.речь идет именно о серверной части сервиса)

Сырое описание БД и функционала (надо было всё-таки отдельно, но т.к. пишу для себя мне удобней в куче):
1. Создание "проектов". Один проект - один мад. Мадконнектор заведен отдельным проектом
Создаются проекты-болванки вручную, после выдачи логина-пароля редактируются из www-админки.
Для каждого проекта хранится
- адрес
- логин-пароль (административный)
- логин-пароль для "управления" мадом
- ссылка на ведущего ГМа
- мыло для нотификаций
- отдельно таблица политик

2. Политики указывают на то, из каких других проектов он хочет использовать информацию, а из каких нет,
и каким конкретно образом.
- ссылка на проект к которому принадлежит политика
- ссылка на проект-донор (all - для всех / mudconnector - для мадконнектора / конкретный проект)
- тип политики.
- Отвергать имена отвергнутые в проекте-доноре(значение буде заданным, только отвергнутые определенным ГМ-ом)
- Одобрять имена отвергнутые в проекте-доноре (значение буде заданным, только отвергнутые определенным ГМ-ом)
- Проверять имена новосозданных персонажей на дубликаты в проекте-доноре (значение если задано мин уровень персонажа, либо
минимальное время проведенное онлайн, либо что-еще-тут-может-быть?)
- использовать banlist из проекта-донора (ban / ban new / чтотамещеунас)
- политики для предтитулов и титулов
- что еще тут может быть ?
- значение/я
- автоматическая политика или ручная. Автоматические применяются сразу. Ручные выглядят как подсказки ГМу при одобрении
или неодобрении через интерфейс.(без политик считается, что используются "все")

3. Таблица пользователей ГМ-ов. Они создаются из www-админки "проекта" из которой настраиваются и права ведущим ГМом.
- ссылка на проект к которому принадлежит ГМ
- имя ГМа, логин, пароль (для системы)
- email
- права ГМ-а (одобрять, отвергать, банить итп, по каждому из типов политик)

***продолжение следует***

*** *** *** *** *** ***
API
Всё-таки telnet. И plain text.
В сторону мада - просто текстовые команды. Полный аналог ручного ввода.
Для нормального функцинирования должен быть создан ГМ с соответствующими правами в wizinvis-е.
(но без лишних прав)
Его логин-пароль должны быть забиты в информацию проекта.
Проблема усугубляется тем, что в команды надо ввести параметр типа "автор", иначе или
каждый ГМ должен иметь такого суррогат-чара, или не будет понятно кто зарубил-одобрил имя.

Список необходимых команд.
(поддержка со стороны мада)
approve [имя] [кто] - одобрить имя
reject [имя] [кто] [резон] - зарубить имя
approve list - получить список имен для одобрения
banlist - получить список забаненых сетей
who - получить список пользователей онлайн (можно использовать для отображения на мадконнекторе)

Со стороны мада тоже самое, только каждый проект имеет свой логин+пароль+идентификация по ip
Нотификация:
approved [имя] [кто] - имя одобрено
rejected [имя] [кто] [резон] - имя зарублено
banned - изменена таблица банлиста (проще пересчитать целиком встречным запросом)
char created [имя]
char gain level [имя] - возможно имеет смысл для создания выборки по "старым" игрокам

Запросы:
check [имя] [пароль] - ответ approve|reject [резон]|reserved

Пример клиентской части(то, что надо интегрировать в мад) на plain C под circle должен быть в открытом доступе.
(собственно это реализация команд). На всех этапах должна быть предусмотрена неработоспособность канала
между сервисом и мадом. Пересоединение происходит автоматически. В момент отсутствия связи никакие
команды не накапливаются и всё работает так, как будто сервиса просто нету.
При каждом соединении сервис опрашивает approve list и для каждого из чаров проверяет наличие "решения".
Если решение есть - оно применяется.
Один раз в Х минут (10? 60?), сервис переопрашивает approve list, а также who

Наибольшая проблема тут, с обработкой check -> reserved. Всё остальное можно асинхронно. Это надо
как-то синхронно. Надо посмотреть схему создания чаров.
Возможно имеет смысл просто на этапе "одобрено-нет" не одобрять автоматом таких чаров.
Но это не решает проблемы их создания. Нет, не подходит, надо всё-таки не давать их создавать как-то.
(мало ли что понапишут неодобренные)


*** ** ***
Веб-интерфейс.
Для проекта - редактирование параметров + добавление ГМ-ов. Добавление проектов вручную скриптом.
Редактирование политик.
Статистика по ГМ-ам (кто сколько решений принял и каких)
Тут-бы как-то еще двухфазное одобрение, исправление ошибок итп прикрутить... еще подумаю

Для каждого ГМ-а - тикетсистем в которой каждый запрос на одобрение, который не был автоматом
обработан превращается в тикет.

Для игроков - создания ПЕРСОН. Каждая персона имеет ФИО итп, внутри персоны можно добавлять
имена игроков зарезервированных для персоны (вопрос изначального представления данных отделен).
По каждому из имен можно регулировать видимость соответствия имени персоне.
Для каждого из имен можно получить 1 и более одноразовых паролей для регистрации.


Открытый интерфейс (доступное без авторизации):
Поиск решений по конкретному имени во всей базе
Поиск зарезервированности имени во всей базе
списки ГМ-ов по проектам (надо ли ?)


***
Возможно имеет смысл от концепции "зарезервированно" перейти к "зарезервировано в маде таком-то".

***



1. Авторизация пользователя (с каждым запросом). Пользователи заводятся в ручном режиме(не важно через веб интерфейс
или через телнет, вообще лучшеб через веб). Авторизация нужна не только для модификации данных но и для фильтровки выборок.
2. Как пользователя добавляют только ГМ-ов. Каждый из них имеет ссылку на проект в котором он ГМ.

4. Для ГМ-ов лучше бы иметь отдельный интерфейс. В него-же можно добавить возможность работы с тикетами,
связанными с титулами, и одобрением имен. Смысл в том, чтобы сделать его ВЕБ, и с удобным поиском в 1 клик
по поисковикам. (ткнул в имя - выскочила выдача гугла-яндекса). Одобрил и одобрилось в маде (тут подумать
как переопрашивать, поток информации в направлении мада не хочется делать).

5. Можно привернуть генерацию отчетов типа "кто сколько одобрил, каких итп). Как открытую так и закрытую.

Параллельно этому хотелось бы иметь некий механизм авторизации владельцев имен. Дающий следующий функционал:
1. Резервирование "своего" имени за собой
2. Подтверждение своего имени. Вероятно надо генерировать пароль-ответ. В целом схема действий мада такая:
2.1. Игрок вводит при создании персонажа имя
2.2. Мад проверяет его по сервису
2.3. Если имя есть, то он просит залогиниться игрока в сервис и сгенерировать там разовый пароль, и вбить его в мад
(тут как-то надо отвязаться от синхронизации)
2.4. Без пароля создать персонажа нельзя.
3. Есть существенная проблема связанная с тем, что регистироваться вручную на первых порах народ не будет.
А также, будет, но с чужими именами. Как это качественно разрулить пока непонятно. Будем думать.
Думается мне, что для своих я сделаю запрос какой-то личной информации что уже есть в маде, либо
пароля-части пароля.

Тут надо-бы почитать как с авторизацией работать... возможно имеет смысл иметь одну базу с мадконнектором,
хотя очень не уверен.


***
Дополнительно
засунуть ли туда-же базу по блокировкам (ban) и по местам типа клубов итп...
засунуть одобрение титулов-предтитулов
***
***
Как всё предположительно будет выглядеть со стороны сервиса:
Для проверки используется просто выборка по таблицам.
Для каждого типа зарегистрированных событий заведена отдельная табличка.
Одобрено
Зарублено
Создан
Gain level

Для ГМ-а всё выглядит следующим образом: страничка на которой
в древовидном виде указаны
Имя чара
Одобрен там-то тем-то
Создан там-то
Зарублен там-то
Кнопка для проверки в Я, в Г
Имя следующего чара
итд итп


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 1:54 pm 
Не в сети

Зарегистрирован: Ср авг 13, 2008 3:03 pm
Сообщений: 562
Откуда: Europe
В качестве бреда: сделать общий (общемадовский) open-id сервер

В общем как в Линейке или Варкрафте: игроки создают учетную запись на веб-сервере, а уж потом играют, вводя имя и пароль в клиент

_________________
Пруль
http://mud.kharkov.org
http://virtustan.net


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 2:04 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
prool писал(а):
В качестве бреда: сделать общий (общемадовский) open-id сервер

А именно open-id имеет большое распространение и есть готовые решения-библиотеки ?
Я не в теме абсолютно, кроме того что лайвжорнал вроде как его поддерживает итп.
Гдеб почитать (если ссылки под рукой) ?

В целом что-то полуготовое и продуманное было бы лучше своего, конечно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 2:10 pm 
Не в сети

Зарегистрирован: Ср авг 13, 2008 3:03 pm
Сообщений: 562
Откуда: Europe
Наверняка есть, но я сам пару раз пробовал open id (поигрался как пользователь) и всё. К сожалению более умного совета чем погуглить дать не могу

Но в любом случае надо наверное будет разработать интерфейс (API) между этой Системой Регистрации Имен и мадами. И боюсь, интерфейсная часть должна быть реализована на С и быть открытой, так как черный ящик мало кто себе в мад поставит

_________________
Пруль
http://mud.kharkov.org
http://virtustan.net


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 2:25 pm 
Не в сети

Зарегистрирован: Вт сен 14, 2010 6:06 pm
Сообщений: 396
Цитата:
И боюсь, интерфейсная часть должна быть реализована на С и быть открытой, так как черный ящик мало кто себе в мад поставит


а что страшного в том, что исходники будут открыты?
По-моему правильное решение.

_________________
Кодер и билдер MUD Shaal (Мада Мир Шааль).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 2:49 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
prool писал(а):
Но в любом случае надо наверное будет разработать интерфейс (API) между этой Системой Регистрации Имен и мадами. И боюсь, интерфейсная часть должна быть реализована на С и быть открытой, так как черный ящик мало кто себе в мад поставит


Да, разумеется, код для circle итп будет на plain C и свободный к рассматриванию.
Меня пока больше сам API волнует и серверная часть, нежели клиентская.

Добавил.

ЗЫ. Я потихоньку затыкаю дыры, продумываю частности итп. По идее всё будет отражено в первом посте.
Если есть желание добавить-предложить в каких-то частях, что-то проработать итп - welcome.
Одна голова хорошо, более одной еще лучше.

ЗЫЫ. Ясно что это даже не спецификация на сегодня. Обычно я такое "сырьё" не выкладываю.
Но почему-бы и нет ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 6:06 pm 
Не в сети

Зарегистрирован: Вт сен 14, 2010 6:06 pm
Сообщений: 396
KadVar, а позвольте поинтересоваться, а смысл такой общей базы имен? Чтобы не было разных людей под одним именем в разных мадах? Так это приведет к продаже имен, и т. д.

_________________
Кодер и билдер MUD Shaal (Мада Мир Шааль).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 6:12 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Харч писал(а):
KadVar, а позвольте поинтересоваться, а смысл такой общей базы имен? Чтобы не было разных людей под одним именем в разных мадах? Так это приведет к продаже имен, и т. д.

Изначально смысл простой:
1. Я не считаю что в рамках одного проекта имеет смысл переодобрять имена.
2. Более того, я считаю, что в некоторых проектах работают неглупые ГМы, и если
они уже имеют резон не одобрить имя, то скорее всего не одобрю его и я, и наоборот
3. Да, я считаю, что если есть человек имеющий значимый ник в комьюнити, то он
имеет право защитить его во всех проектах, которые того пожелают. Более того,
имена по-моему не должны освобождаться. Но это дело "политики" каждого проекта.

Про торговлю я что-то не понял. Кто кому и что будет продавать :) ?

ЗЫ. Мне всё равно предстоить реализовать п1 для себя. Станет ли это "общей" платформой
меня на текущий момент не волнует абсолютно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Вт ноя 02, 2010 9:53 pm 
Не в сети

Зарегистрирован: Вт сен 14, 2010 6:06 pm
Сообщений: 396
Понятно, спасибо :)

Просто зарезервирует человек кучу (один человек!) уникальных имен, которые в книгах есть и т. д., и потом будет ими торговать, что, как мне кажется, неприемлемо для мадов.

_________________
Кодер и билдер MUD Shaal (Мада Мир Шааль).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть старая идея с именами-3
СообщениеДобавлено: Ср ноя 03, 2010 10:58 am 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Харч писал(а):
Понятно, спасибо :)

Просто зарезервирует человек кучу (один человек!) уникальных имен, которые в книгах есть и т. д., и потом будет ими торговать, что, как мне кажется, неприемлемо для мадов.


Чудесно. Пусть резервирует. Баба с возу - кобыле легче.
Вообще-то эти имена уже обычно "зарезервированы" в файле xnames... это такой файл, персонажей с именами из которого создать нельзя.
Если кто-то будет их еще и продавать пытаться, и все зарезервирует, то этож чудесно. Сколько работы он сделает за нас.

ЗЫ. Пожалуй сходу я не знаю ни одного игрока из комьюнити с популярным именем из книги...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron