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)

Неактивен

1    0    #2
11.04.2014 19:31

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Одобряю и поддерживаю.

На QSP выгрузку однозначно сделаем. Я всегда поддерживал интеграцию сервисов и объединение текстовых платформ, даже сделал объединённую новостную ленту.

Формат выгрузки проработайте хорошенько. Чем чётче опишете, тем лучше. Составьте спецификацию. От кодировки до формата полей.

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

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

Интересно, в чём оценивается "актуальность" игры?

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

Неактивен

0    0    #3
11.04.2014 20:34

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

DoubleDragon написал:

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

Ну как - запускаешь, заполняешь список игр.
В поле "Название" вводишь название игры, в поле "Автор" вводишь автора, и т.д.
Нажимаешь кнопку "Сохранить" - выгружается в JSON-файл.

Всё, файл можно выкладывать на сайт.

Впоследствии, если понадобилось добавить игру, запускаешь, открываешь JSON-файл, добавляешь игру, сохраняешь.

Неактивен

0    0    #4
11.04.2014 20:48

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Кстати о рейтинге. Я полагаю, рейтинг в общем каталоге должен быть свой собственный, а не из выгрузки.

Так как игра, может быть, например, "10 из 10" на платформе "Клейстер", а в сравнении с играми платформы "Полено" она лишь "выше среднего".

Или у нас, например, на QSP вообще нет оценок для игр. Только лайки.

Неактивен

0    0    #5
11.04.2014 21:13

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

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

Хотя мы вот без оценок прекрасно живём. У нас лайки есть.

То есть статус игры не "хорошая-плохая", а "популярная-непопулярная".

Отредактировано Nex (11.04.2014 21:16)

Неактивен

0    0    #6
13.04.2014 15:16

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Лучше в отдельную тему выделить.


url
Ссылка на запуск/скачивание игры

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

playInBrowser (1|0)

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


title
Название игры

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


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


genre (необязательно)
Номер жанра игры
Может быть указано несколько номеров жанров через запятую. Список жанров утвердим позже.

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

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

Пример с урки:     
    готовая
    akurq1.28pre6
    ЗОК
    интерактивный рассказ
    мистика
    романтика
    Беларусь
    veresk

Какие теги проставлены в игре - такие и выводятся в выгрузке. Далее, при импорте уже сам каталог может по белому списку отфильтровать. Заодно админ каталога легко соберёт статистику, какие теги наиболее востребованы и подлежат выделению в жанр и занесению в белый список.

А ставить ли игре теги, которые обеспечат её попадание в опрделённый жанр в каталоге, будет решать сам автор.


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

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

author_email
Email автора

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


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

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

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

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

Стандартное поле для любых RSS-подобных форматов. Несёт важную функцию: если изменится поле "url", игру в новой выгрузке уже нельзя будет однозначно связать с игрой из старой выгрузки, если не будет GUID. Если есть GUID - можем при необходимости менять url, и при этом ничего не теряется, никуда не пропадает, не появляется дубликатов.


Ещё несколько технических деталей.

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

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

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

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

Отредактировано Nex (13.04.2014 15:18)

Неактивен

0    0    #7
14.04.2014 15:26

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

DoubleDragon написал:

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

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


DoubleDragon написал:

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

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

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

Мой вариант избавляет администраторов платформ и авторов от геморроя с внешне назначаемым списком.

DoubleDragon написал:

По иконке - можно пример иконок? Имеются ввиду иконки исполняемого файла или какие?

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

DoubleDragon написал:

По created. На Гиперкниге, например, такого нет. Только modified.

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

Это осмысленное значение, я уже привёл пример, когда оно может понадобиться. То, что в каталоге Гиперкниги ему ещё не нашли применения, меня мало волнует. Мы ведь новый ресурс создаём, а не продолжение Гиперкниги.

DoubleDragon написал:

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

ID может поменяться. GUID не меняется никогда.
GUID не генерируется на сервере каталога. GUID создаётся при первой загрузке игры на сайт платформы и не меняется никогда.
Это не локальный идентификатор игры в каталоге. Это глобальный идентификатор обновляемого блока информации в интернете.
Смысл его в том, чтобы обеспечить идентификацию конкретной игры в глобальном пространстве. То есть, это поле всегда однозначно соответствует конкретной игре на конкретном сайте.
Чаще всего это неизменяемый URL с ID записи. Либо псевдо-URL, так как GUID не используется для загрузки чего-либо, а лишь является уникальным глобальным ключом. Он может совпадать с URL страницы игры, а может не совпадать, это совершенно не играет роли.
Примеры:
http://site.com/game?id=15
http://site.com/games/15
http://site.com/game-guid/15

Неизменность и глобальная уникальность GUID позволяет обновлять информацию по конкретной игре, не нарушая никакой целостности.

Любую информацию, вплоть до URL. То есть, даже если сайт платформы переедет на http://newsite.com, у игры останется прежний GUID - "http://site.com/games/15", и всё будет продолжать работать.

Без GUID, либо при каждом импорте будут удаляться все записи из каталога и заполняться заново, что сразу лишает любых возможностей комментирования, оценок, статистики, либо при изменении URL игры появляются дубликаты.

DoubleDragon написал:

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

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

Уже написал:

Пригодится, чтобы отследить, когда что-то поломается.

Но это не принципиально. Не хочется - значит пусть без неё будет.

DoubleDragon написал:

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

А их переносить и не следует. По той же причине, что и рейтинг. Пусть аудитория нового каталога сама составляет мнение об играх.

Неактивен

0    0    #8
15.04.2014 10:19

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

DoubleDragon написал:

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

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

Если нет GUID, и нет возможности его создать на сайте платформы, то в это поле записывается URL с ID игры, то есть постоянная ссылка (т.н. permalink). URL в этом случае точно так же служит в качестве GUID. Просто у таких платформ будет немного меньше возможностей по обновлению (проблемы в момент переезда сайта).

Единственный вариант, когда у сайта платформы нет ни GUID, ни постоянной ссылки - это если контент не управляется CMS, а создаётся "вручную", каждая страница с игрой в HTML-редакторе типа FrontPage. Но в таких исключительных случаях можно в качестве GUID просто использовать URL страницы. Если у платформы так мало игр, и они так редко обновляются, что администратор довольствуется "ручной правкой", то уж проблемы с обновлением при изменении URL будут крайне редки.


Почему лучше GUID-ссылка с использованием ID игры, а не просто URL.

На сайте платформы, основным URL страницы игры может быть ссылка вида "http://site.com/games/my-epic-game". И если её переименуют из "My Epic Game" в "My Cool Game", URL изменится: "http://site.com/games/my-cool-game".

Поэтому такие проблемы с URL могут возникнуть и без переезда сайта. В случае, если в качестве GUID используется постоянная ссылка с ID, проблема отпадает.

Неактивен

0    0    #9
17.04.2014 17:45

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

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

Отредактировано Nex (17.04.2014 22:58)

Неактивен

0    0    #10
18.04.2014 18:39

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

А почему нет? И с какой стати "место" в выгрузке должно иметь значение?

Неактивен

0    0    #11
18.04.2014 20:21

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Ты о чём? Какая конвертация? Это полностью корректный JSON. Любой декодер JSON должен его понимать. Или ты собрался делать какой-то кривой JSON импорт без поддержки эскейп-последовательностей?

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

Если по каким-то религиозным причинам тебе не хочется видеть их в файле (может тебе хочется открывать этот файл и читать его "как есть", не программными средствами), я бы мог отключить их. Но отключить их можно в PHP только начиная с версии 5.4. В более старых версиях, одна из которых установлена на нашем хостинге, добиться этого можно только нагородив костылей.

Я не вижу практического смысла налагать какие-то дополнительные ограничения к презентации символов, и отходить от стандарта JSON. Объясни, зачем тебе это.

Неактивен

0    0    #12
18.04.2014 20:37

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Ну что за детский сад. Я уже объяснил, что не делаю специально никаких escape-преобразований. Это стандартная функция PHP, она генерирует абсолютно корректный JSON-формат.

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

У тебя JSON-декодер глючит? Ты хоть пробовал импорт сделать? Какой язык используется, какая платформа? PHP великолепно понимает escape-последовательности в JSON. Не нужно никаких дополнительных "процедур конвертации" или усложнений.

Стандарту JSON в июле исполнится 8 лет. Если ты откопал какой-то косячный декодер, который в 2014 году не может нормально читать JSON, не надо делать это моей головной болью.

Ещё раз. Жду разумного обоснования, а не просто "мне так не нравится".

Отредактировано Nex (18.04.2014 20:57)

Неактивен

0    0    #13
18.04.2014 22:00

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

С этого и надо было начинать. Что у тебя никакой поддержки стандартов JSON вообще не планировалось.

Тут всё довольно просто. Забудь про самописные декодеры.

Поставь пакет PEAR

Код:

pear install Services_JSON-1.0.3

и напиши маленькую обёртку: http://www.epigroove.com/blog/how-to-us … or-php-51x

Если нет возможности или желания пользоваться инсталлятором PEAR, можно просто скачать исходник пакета: http://download.pear.php.net/package/Se … -1.0.3.tgz

Там один php файл всего. Подключаешь, и оно работает.

Неактивен

0    0    #14
07.05.2014 16:27

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

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

Неактивен

3    0    #15
08.05.2014 13:16

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Согласен с Джуманджи, книги-игры не стоит включать в общий каталог. В первую очередь потому, что этого не поймут пользователи.

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

Таким образом, книги-игры с QSP и Instead уже будут в каталоге. Прочие книги-игры целесообразно также подключать платформами. Например, платформу jsIQ, созданную специально для интерактивных версий книг-игр.

Неактивен

0    0    #16
08.05.2014 13:25

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Ссылки на сайты подключенных платформ тоже лучше в новой вкладке открывать.

Неактивен

0    0    #17
11.05.2014 21:06

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Квестер будет?

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

Вот можно было бы отобрать по этим параметрам и включить самые достойные работы в каталог.

Неактивен

0    0    #18
08.10.2014 11:55

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Автоматическое обновление не работает? Зашёл и не увидел свежих игр с QSP.

Неактивен

0    0    #19
29.07.2015 15:42

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

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

Жаль. Неплохая штука была.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru