Власний проєктСайт-каталог

ClonedGames — каталог ігор
із відкритим кодом.

Пов’язаний каталог майже на 7 000 сторінок.

Розробили та запустили ClonedGames: збирання даних, наповнення з ШІ, категоризація, зв’язки з оригіналами, пошук і порівняння.

Переглянути сайт
Головна: пошук і каталог відкритих ігрових проєктів
Головна: пошук і каталог відкритих ігрових проєктів
≈ 7 000
пов’язаних сторінок
4 000+
карток проєктів
2 000+
оригінальних ігор
600+
порівнянь

Завдання

ClonedGames — наш власний вебсервіс для пошуку відкритих клонів, рімейків та інших проєктів, пов’язаних з оригінальними іграми. Ми розробили та запустили сайт, підготували його наповнення й організували зв’язки між тисячами записів.

Потрібно було перетворити розрізнені відомості з репозиторіїв, магазинів та ігрових довідників на зрозумілий каталог. Відвідувач має знаходити проєкти за цікавою для нього грою, платформою чи жанром, розуміти відмінності між реалізаціями та переходити до вихідного коду або сторінки проєкту.

Масштаб роботи

Створили пов’язаний каталог обсягом майже 7 000 сторінок: понад 4 000 карток проєктів, понад 2 000 сторінок оригінальних ігор і понад 600 порівнянь, а також розділи за жанрами, рушіями, темами та платформами декомпіляцій.

За кожною групою сторінок стоїть робота з даними: збирання вихідних матеріалів, класифікація, добір оригіналів, описи, медіа та навігаційні зв’язки. Сторінки формуються із спільної бази та шаблонів; наповнення готується через розроблену систему обробки даних і редакційну перевірку.

Збирання та підготовка даних

Організували отримання відомостей із GitHub, GitLab, Steam, itch.io, SourceForge, Wikipedia та Wikidata. Джерела розв’язують різні завдання: репозиторії дають інформацію про код і стан розробки, магазини — описи та зображення, довідники допомагають уточнювати відомості про оригінальні ігри.

Вихідні матеріали зберігаються окремо від добутих фактів і готових описів. Завдяки цьому можна переглянути класифікацію або заново підготувати текст за вже зібраними джерелами. Для оновлень передбачено окремий облік актуальності даних: обробка одного джерела не має створювати враження, що решту теж оновлено.

VCMI: опис проєкту, медіа та відомості про репозиторій
VCMI: опис проєкту, медіа та відомості про репозиторій

Категоризація та зв’язки з оригіналами

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

Розробили обробку жанрів, тем, платформ і типів проєктів. Добір оригіналів враховує назву та додаткові ознаки, зокрема платформу. Неоднозначні варіанти проходять окрему перевірку; за браку відомостей зв’язок не підставляється припущенням.

В історії наповнення є виправлення помилкових зв’язків із довідниками та ручна перевірка спірних записів. Для проєктів, пов’язаних із кількома іграми, передбачено кілька зв’язків з оригіналами. Так каталог стає системою взаємопов’язаних матеріалів: з картки можна перейти до вихідної гри, інших реалізацій і порівняння.

Doom: оригінальна гра та пов’язані реалізації
Doom: оригінальна гра та пов’язані реалізації

Підготовка контенту з ШІ та контроль фактів

ШІ використовували для обробки джерел, класифікації та підготовки описів. Контекст формується з реальних матеріалів проєкту: README, відомостей репозиторію, описів і структурованих полів.

Для розділу декомпіляцій розробили додаткову перевірку: твердження в описі зіставляються з вихідним текстом, а наведені моделлю підтвердні цитати перевіряються кодом. Непідтверджені речення видаляються, спірні результати спрямовуються на перевірку. Це допомагає обмежити вигадані відомості за масштабного наповнення.

Такий процес не замінює редакційний контроль і не гарантує відсутності помилок у всіх матеріалах. Він дає змогу використовувати ШІ там, де обсяг роботи великий, зберігаючи можливість перевірити походження фактів.

Окремий каталог декомпіляцій і рекомпіляцій
Окремий каталог декомпіляцій і рекомпіляцій

Зображення та медіа

Підготували збирання та обробку зображень із кількох джерел. Для частини медіа організували власне зберігання, перевірку доступності та видалення посилань, що не працюють.

Якщо в проєкту немає власних зображень, картка може показувати зображення пов’язаної оригінальної гри з чітким підписом. Відвідувач бачить, що саме зображено, і не сприймає кадр оригіналу за скриншот конкретного рімейка.

Для важких анімованих зображень зробили окреме завантаження: спочатку показується статичний кадр, потім підвантажується анімація. Це зберігає корисні медіа та зменшує їхній вплив на початкове відображення сторінки.

Пошук, порівняння та мобільний інтерфейс

Реалізували пошук, фільтри, сортування та посторінковий перегляд. Відвідувач може обирати проєкти за платформою, жанром, темою, станом розробки та потребою в оригінальних ігрових файлах.

Порівняння показують кілька реалізацій однієї гри: доступність, стан проєкту, сумісність і відомі обмеження. На комп’ютері використовується таблиця, на телефоні — окремі картки з перемиканням і гортанням. Мобільний варіант дає змогу читати відомості без стискання широкої таблиці до розмірів екрана.

Додали блог зі зв’язками на проєкти каталогу, звернення користувачів та адміністративне керування даними.

Робота над продуктивністю та публікацією

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

Організували розгортання застосунку, бази, адміністративної панелі та медіасховища на власному сервері. Підготували sitemap, метадані, структуровані дані та правила виключення недостатньо наповнених сторінок із пошукового індексування.

Результат

Запустили ClonedGames як робочий вебсервіс із тисячами пов’язаних сторінок. Реалізували повний набір основних складників каталогу: обробку джерел, наповнення з ШІ, категоризацію, добір оригіналів, медіа, пошук і порівняння.

Проєкт показує нашу роботу з великим обсягом контенту, пов’язаними даними, автоматизацією та користувацьким інтерфейсом у межах одного продукту. Ігри та їхній вихідний код належать відповідним авторам; наша робота — сам сервіс і підготовка каталогу.

Потрібна власна сайт-директорія?

Обговорити завдання