Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

1    0    #1
11.04.2014 12:34

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Каталог игр всех платформ

Есть идея сделать онлайн-каталог актуальных игр всех платформ.

В каталоге помимо алфавитного списка игр, будет ещё поиск и разбивка по платформам, можно сделать и разбивку по жанрам. Цель каталога - дать возможность авторам ознакомиться с тем, что уже написано и выбрать название будущей игре, которое ещё не использовалось. А игрокам и тем, кто только знакомится с ИЛ - дать больший выбор игр.

Но если делать такой каталог, то надо получать данные об играх напрямую с сайтов платформ. Поэтому я обращаюсь к администраторам сайтов QSP, URQ, Quest-book и Instead, RTADS и Русский Информ с предложением сделать выгрузку своих библиотек в формате JSON.

Конечно, надо сформировать общий стандарт выгрузки, можно использовать тот, который применяется у нас на Гиперкниге, например, вот данные по конкретной игре:

{"books":[{"title":"Silent school","version":"6","author":"Роман Островерхов 'Ulrick'","updated":"16.01.14","passages":"215","rating":"4","id":"13854938204668"}]}

Вот её описание:

{"title":"Silent school","version":"6","author":"Роман Островерхов 'Ulrick'","updated":"16.01.14","passages":"215","rating":"4","subtitle":"Обычная школа захолустного российского городка превращается в смертельную западню. Накрывший город утренний туман превращает людей в тупых и кровожадных тварей, охотящися за свежей плотью. Учитель истории, тихо спивающийся робкий интеллигент, и не подозревает, что настал день, который полностью изменит его жизнь...","beta":"0"}

А вот список игр определённого жанра:

{"books":[{"title":"Арена","version":"8","author":"Борис Семёнов (Morych)","updated":"30.12.13","passages":"85","rating":"5","id":"13764029087384"},{"title":"Mysteriis memoria","version":"4","author":"Moredhel","updated":"01.07.13","passages":"122","rating":"5","id":"13709457675609"},{"title":"Шапка Мономаха","version":"2","author":"Автор - Константин Таро, программирование - Ergist...","updated":"28.11.12","passages":"163","rating":"4","id":"13531794082906"},{"title":"Гражданка Готье","version":"2","author":"Юрий Павленко","updated":"22.03.13","passages":"416","rating":"4","id":"1352989652918"}]}

Сделать это несложно, а польза для популяризации ИЛ очевидна.

Данные, полученные с сайтов, будут кешироваться и обновляться, например, раз в сутки. Все игры включать в каталог или только отобранные - решать владельцам сайтов платформ. Можно выгружать скриншоты игр, если они есть.

Как вам эта идея?

P.S. Идея каталога не пересекается с архивом РИЛ. В нём будут только актуальные ссылки на актуальные игры, краткое описание игр и простой удобный интерфейс. Ещё мы сделаем виджет, который можно будет легко вставить на любой сайт.

Отредактировано DoubleDragon (11.04.2014 20:13)

Неактивен

0    0    #2
11.04.2014 15:01

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Объединять и выводить список платформ с URLs.

Неактивен

0    0    #3
11.04.2014 19:49

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Nex, благодарю за поддержку!

Смысл каталога только в популяризации жанра, от чего выиграют все. Никаких преференций отдельным платформам не может быть и не будет. Более того, мы предложим данный сервис Яндексу в качестве локального поиска на тему текстовых игр. Связи имеются. Формат выгрузки я озвучу в ближайшее время, главное - получить принципиальное согласие представителей всех платформ. Надеюсь, Джуманджи не пройдёт мимо, тем более в свете их последнего упорядочивания доступных к скачиванию книг.

Про утилиту автоматизации - сделаем. Пишите, что от неё надо.

ПС. Никакого коммерческого умысла в этом нет, отвечаю.

Неактивен

0    0    #4
11.04.2014 19:51

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Да, забыл про актуальность. Я имел ввиду, что платформы сами определяют качество игр, выгружаемых в каталог.

Отредактировано DoubleDragon (11.04.2014 19:51)

Неактивен

0    0    #5
11.04.2014 20:36

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Понятно. Но это, мне кажется, на крайний случай, когда действительно нет возможности сделать автоматическую выгрузку.

Неактивен

0    0    #6
11.04.2014 20:53

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Хорошая идея. Только как заставить посетителей регистрироваться на ещё одном сайте? А если этого не сделать, то грош цена будет рейтингу. Проще тогда вообще убрать понятие оценки игры.

Неактивен

1    0    #7
13.04.2014 10:58

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Внимание! Этот пост обновляется после согласования корректировок!

Итак, представляю вам на утверждение требования к выгрузке и список её полей с комментариями.

Общие требования
Формат выгрузки - JSON. Выгрузка должна проходить валидацию на этом сайте: http://jsonlint.com. Кодировка выгрузки - utf8. Максимальная длина строк указана в количестве символов этой кодировки после удаления граничных пробельных символов. HTML-теги внутри текстовых строк не допускаются и будут автоматически вырезаться. HTML-сущности вида « допускаются. Символы переноса строк не допускаются и будут конвертированы в пробелы.
Порядок полей произволен.
Выгрузка скачивается с сайтов платформ один раз в день в 02:00 по московскому времени. В выгрузке должен присутствовать номер версии её стандарта, например, 1.0.

Обязательные поля

url
Ссылка на запуск/скачивание игры
Полная ссылка с указанием протокола и домена. Длина не менее 10 символов. Проходит валидацию на сервере каталога.

playInBrowser
Запускается ли игра в браузере (онлайн)
Принимает значение 1 или 0. Если значение равно 1, то игра может быть сразу запущена в браузере (без её предварительного скачивания). Если значение отличается от 0, то нет (необходимо предварительно скачать игру).

title
Название игры
Текстовая строка длиной не менее 3-х не более 100 символов. В конце строки не должно быть точки, дефиса или тире, запятой или точки с запятой. Восклицательный, вопросительный знак, многоточие или их комбинации допускаются. Строки, длиной более 3-х символов и полностью состоящие из символов верхнего регистра, будут принудительно приводиться к нижнему регистру. В этом поле не должно быть информации о версии игры (см. поле version).

author
Автор(ы) игры
Произвольная текстовая строка длиной не более 100 символов. Если автор неизвестен, то указывается значение "unknown".

Необязательные поля

guid
Уникальный идентификатор игры
Произвольная текстовая строка длиной не более 100 символов.

version
Версия игры
Произвольная текстовая строка длиной не более 5 символов.

description
Краткое описание (аннотация, фабула) игры
Произвольная текстовая строка длиной не более 500 символов.

created
Дата создания игры
Дата в виде метки времени Unix. См. описание функции PHP time.

modified
Дата последнего обновления игры
Дата в виде метки времени Unix. См. описание функции PHP time.

icon
Иконка игры
Полная ссылка на иконку игры с указанием протокола и домена. Допускаются изображения форматов jpg, png, gif и ico. Размер файла не более 15 Кб.

shot
Скриншот
Полная ссылка на изображение с указанием протокола и домена. Допускаются изображения форматов jpg, png и gif. Размер файла не более 50 Кб. Миниатюры утверждённого размера создаются автоматически и кешируются на сервере каталога.

Это первая версия стандарта и, конечно, вместе будем её корректировать.
Ещё надо подумать, как пришить комментарии в каталог, чтобы всем было удобно.

Отредактировано DoubleDragon (15.04.2014 14:32)

Неактивен

0    0    #8
14.04.2014 11:27

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Либо разделять на два разных параметра - ссылка на скачивание, ссылка на запуск, либо вводить ещё один параметр:

playInBrowser (1|0)

Т.к. для одних игр будет нужно показывать пользователю ссылку "Скачать", для других - "Запустить".

Можно и так, хотя проще, конечно, по расширению файла определять, если оно есть. Очевидно, что .php - это не ссылка на скачивание.

Нужно добавить, что версия игры в title не должна присутствовать.

Согласен.

subtitle, по-моему, лучше переименовать в "description". Во всяком случае для меня это слово всегда обозначает субтитры к видео.

Согласен.

Предлагаю сделать набор тегов (categories).

Надо ещё подумать. Хочется, чтобы посетителю было понятно и удобно. 10 жанров понятнее, чем 100500 похожих тегов, типа "фентези", "фэнтези", "средневековая фантастика" и т. д.

Нужно добавить необязательные поля:

author_url
URL автора (личный сайт, визитка, страничка ВКонтакте, и т.д.)

author_email
Email автора

icon
Иконка (миниатюра). Есть иконка - использовать в качестве миниатюры её, нет иконки - использовать уменьшенный скриншот.

По author_url и author_email согласен, только с e-mail надо поаккуратнее, чтобы спама не было.
По иконке - можно пример иконок? Имеются ввиду иконки исполняемого файла или какие?

Добавить обязательные поля:

created
Дата и время создания игры (дата и время добавления в каталог платформы). В отличие от времени последнего изменения, это может пригодиться, например, для вывода списка "новинок". При этом понятно, что исправленная версия старой игры новинкой не является.

Соответственно "date" переименовать в "modified".

guid
Уникальный идентификатор игры, который не меняется никогда. То есть вообще никогда.

По created. На Гиперкниге, например, такого нет. Только modified.
По guid. Согласен, что нужно. Можно просто id назвать. Но на всех ли платформах он есть? Если генерить его на сервере каталога, тогда смысл в выгрузку включать?

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

Согласен. Но лучше, конечно, вообще его не менять.

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

Дату можно определять на сервере каталога по дате создания/изменения файла. Зачем она в выгрузке?

Прикрутить любой сервис комментариев. Рекомендую SV Kament. В наш век это делается легко и непринуждённо.

Это понятно. Я имел ввиду, как пришить комменты, уже имеющиеся на сайтах платформ.

Неактивен

0    0    #9
15.04.2014 08:51

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

В обоих случаях ссылка может быть какая угодно.
Реальный пример: http://qsp.su/index2.php?option=com_sob … ormat=html

Добавил поле playInBrowser.

Ты точно так же сможешь определить набор жанров, и если этот жанр указан среди тегов, помещать игру в нужную категорию. Я же написал: фильтр по белому списку тегов при импорте, на стороне каталога. Ты, как хозяин каталога, сам определяешь, какие теги должны соответствовать жанрам.

Согласен, что это неплохой вариант, но думаю, что реально теги к жанрам привести не удастся. Они так и останутся тегами. Стоит этот вопрос выделить в другую тему, чтобы не тормозит всё остальное.

Иконка игры. Имеется в виду та самая миниатюра, которую ты собираешься делать уменьшением скриншота. Как правило, скриншот текстовой игры в уменьшенном виде выглядит неприглядно. Это касается даже иллюстраций. Поэтому хотелось бы, чтобы была возможность назначить миниатюру самостоятельно, с хорошей картинкой. С картинкой, которая специально сделана так, чтобы хорошо смотрелось в малом размере. Если её не предоставили - тогда делать из скриншота.

Согласен. Добавил поле icon.

Ну так и modified у кого-то может не быть. Сделайте. Или пишите в created дату создания самого каталога.

Согласен. Добавил поле created. Кстати, на Гиперкниге дата создания игры оказывается есть.

GUID не генерируется на сервере каталога. GUID создаётся при первой загрузке игры на сайт платформы и не меняется никогда.
Это не локальный идентификатор игры в каталоге. Это глобальный идентификатор обновляемого блока информации в интернете.
Смысл его в том, чтобы обеспечить идентификацию конкретной игры в глобальном пространстве. То есть, это поле всегда однозначно соответствует конкретной игре на конкретном сайте.
Чаще всего это неизменяемый URL с ID записи. Либо псевдо-URL, так как GUID не используется для загрузки чего-либо, а лишь является уникальным глобальным ключом. Он может совпадать с URL страницы игры, а может не совпадать, это совершенно не играет роли.

Я согласен, что это поле необходимо. Но если его просто нет на сайте платформы? А ссылки, как ты правильно указал, могут менятся. Генерить из названия?

P.S. Убрал требования о необходимости ВСЕХ полей в выгрузке. Теперь это распространяется только на обязательные поля, которых пока всего 4.

Отредактировано DoubleDragon (15.04.2014 08:53)

Неактивен

0    0    #10
17.04.2014 18:36

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Спасибо! Завтра попробуем в деле.

Неактивен

0    0    #11
17.04.2014 18:38

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Кстати, мне подсказывают, что домен ifdir.ru готов к работе.

Неактивен

0    0    #12
18.04.2014 15:58

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Nex написал:

Готово: http://qsp.su/dragon-api/1.0

А почему используются escape-последовательности \uxxxx вместо обычных символов utf-8? Их придётся конвертировать, да и места они занимают раза в три больше.

Неактивен

0    0    #13
18.04.2014 19:24

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Потому что в этом нет никакого практического смысла. Это лишь усложняет разбор выгрузки. Придется писать процедуру конвертации в нормальный текст для сохранения в базу. Есть какие-то проблемы с выгрузкой в чистой кодировке?

Неактивен

0    0    #14
18.04.2014 20:25

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Вроде мы согласовывали кодировку utf-8, а ты выгружаешь фактически в ascii, используя \uxxxx последовательности для кодирования unicode-символов. Это не имеет отношения к utf-8. Если это проблема, можно добавить к выгрузке параметр encoding и выгружать в любой кодировке.

Неактивен

0    0    #15
18.04.2014 21:36

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

На сервере PHP 5.0.x. На нём крутится много старых проектов.  json_decode требует 5.2.0, а любое изменение конфигурации сервера требует большого тестирования каждого сайта. Вот и всё. Но ладно, что нибудь придумаем.

Неактивен

0    0    #16
07.05.2014 14:48

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Выгрузка из Гиперкниги готова: http://hyperbook.ru/api.php
Сайтом каталога пока занимался мало, вот что имеется на текущий момент: http://ifdir.ru

Выгрузки платформ пока жёстко закешированы, скриншоты и иконки сейчас тянутся с сайтов платформ.
З.Ы. Дизайн пока никакой, просто подключил ccs-ку Гиперкниги.

Неактивен

0    0    #17
07.05.2014 16:29

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Nex написал:

Онлайн-игры логично было бы в новой вкладке открывать.

Согласен, поправлю. Там многое ещё надо сделать. Сейчас пытаюсь подключить игры Instead.

Неактивен

0    0    #18
07.05.2014 18:20

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Подключен неофициальный репозиторий "Instead • games": http://ifdir.ru/instead.php
Онлайн-игры теперь открываются в новом окне: http://ifdir.ru

Неактивен

0    0    #19
07.05.2014 22:34

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Не знаю, я лично считаю книги-игры именно интерактивной литературой.
Насчёт недоверия - тут всё просто. Каталог - это не архив, в нём лишь ссылки на файлы или на страницы для прямого скачивания. Не понравится что-то админу платформы, он всегда может отключить выгрузку. Никто никому ничего не должен.

Неактивен

0    0    #20
08.05.2014 13:13

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Подключен сайт quest-book.ru: http://ifdir.ru/questbook.php

Потихоньку пилю каталог. Теперь для ускорения загрузки в списке показываются только название и автор игры. По клику на названии открывается страница с полной информацией.

Неактивен

1    0    #21
08.05.2014 13:27

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Jumangee написал:

DoubleDragon написал:

Подключен сайт quest-book.ru: http://ifdir.ru/questbook.php

Не пойму, я слабо выразил своё несогласие с подключением нашего каталога?

Ничего страшного. Лишние ссылки ни одному сайту не помешают. Или ты против поисковых систем?

Неактивен

3    0    #22
08.05.2014 13:47

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Я понимаю твою обиду за КРИЛ, но здесь мы на одной стороне.
Опять же, я имею к iFiction.ru не больше отношения, чем ты. За официальным признанием уж точно не ко мне.
Хочешь строить изолированный ресурс - твоё право. А моё право - ставить ссылки на своём сайте на любые другие сайты и без спроса, извини. Опять же, ссылки ведут не на прямое скачивание файлов, а именно на страницы с описанием игр.
Если хочешь ругаться, пиши в личку.

Неактивен

2    0    #23
08.05.2014 15:09

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Не стоит подменять этой параноидальной фразой мою идею свободного обмена информацией.

Неактивен

1    0    #24
08.05.2014 15:36

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Хорошо, тогда пример чужой информации в студию.
Название книг? Имя автора?

Неактивен

1    0    #25
08.05.2014 16:09

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Каталог игр всех платформ

Извини, не нашёл там запретной информации. Ткни, пожалуйста, носом во что-то конкретное, а потом поговорим о том, как мною получена эта информация и кто какие имеет на неё права.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru