Новая Жизнь Старым Играм: Самый Открытый Каталог Портов Исходников (Java + Php)

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

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

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

Новая жизнь старым играм: самый открытый каталог портов исходников (Java + PHP)



Краткое техническое задание на сайт

  • На сайте будет размещаться информация о модификациях для игр (фанатские патчи, наборы текстур, порты исходников и т.п.

    ), улучшающие графику, упрощающие некоторые аспекты управления, а также переносящие их на другую операционную систему или платформу.

    Пример таких модов — добавление в Dune 2 рамки выбора юнитов или текстур высокого разрешения для Doom.

  • На сайте будет только информация, а не сами файлы модификаций и портов.

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

  • Сайтом должно быть удобно пользоваться как с десктопа, так и с планшета или телефона.

  • Любой пользователь должен иметь возможность добавлять на сайт игру, модификацию и т.п.

    , а также редактировать любую уже добавленную на сайт информацию.

  • Любой пользователь должен иметь возможность редактировать код и макет сайта.

  • Владелец сайта должен иметь возможность предварительно модерировать любые изменения.

  • Должна быть возможность добавить дополнительных модераторов
  • Должны быть кнопки для публикации в социальных сетях.



Решение

Давайте поместим все данные на Github и используем эти данные для создания статического веб-сайта? Сплошные преимущества!
  • GitHub уже предоставляет веб-интерфейс для изменения или добавления файлов и отправки изменений в виде запроса на включение.

  • Pull Request — отличная система для предварительной модерации изменений и просмотра различий.

  • Нужны новые модераторы? Добавляем пользователей в проект на Github, не нужно думать о системе прав
  • Статический сайт можно разместить абсолютно на любом хостинге, включая GitHub Pages.
  • Любая активность, такая как комментарии, обмен информацией или блок «случайной модификации», может быть реализована на клиенте с помощью JS и готовых решений, таких как Disqus.
  • Для простоты и скорости верстки мы используем Bootstrap.
Более того, я давно хотел попрактиковаться в написании генерации статического сайта на Java. Решено! В одном репозитории мы храним данные , В секунду - генератор статического сайта .

Поехали.

Нет, стоп, сначала тебе нужно принять еще одно решение.



В каком формате должна храниться информация?

Хранить описания игры или модификации в файлах формата «JSON/XML/введите свою версию» кажется замечательной идеей, но в наши требования входит «.

любой пользователь.

», а некоторые JSON могут напугать.

Ну да ладно, это бредовый вопрос — давайте хранить данные в виде кучи текстовых или Markdown-файлов.

Один файл — одна сущность, файлы MD на github имеют предварительный просмотр — болтовня! А чтобы еще больше упростить ситуацию, мы подробно опишем в документации, что за что отвечает. Некоторые из этой информации:

Новая жизнь старым играм: самый открытый каталог портов исходников (Java + PHP)

И что я хочу сказать, так это то, что редактировать существующую информацию в этом режиме действительно довольно удобно.

Но есть один нюанс.



Добавление новой информации

Редактировать данные оказалось удобно, а вот создавать новую модификацию не очень удобно, так как нужно было создавать от 4 до 14 файлов одновременно.

И делать это через интерфейс Github чертовски неудобно.

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



Новая жизнь старым играм: самый открытый каталог портов исходников (Java + PHP)

Увы, вердикт пользователей сайта был однозначен: неудобно! А если пользователям некомфортно на сайте, который должен жить за счет активности пользователей.

знайте, проект плохой.



PHP в помощь

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

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

Новая жизнь старым играм: самый открытый каталог портов исходников (Java + PHP)



Оно взлетело?

После добавления удобных форм процесс пошел: в первые недели после размещения информации о сайте в моем видеоблоге и на сайте Old-Games.RU новые моды и порты добавлялись с такой скоростью, что я просто не успевал на премодерацию!

Новая жизнь старым играм: самый открытый каталог портов исходников (Java + PHP)

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

Одной из частых жалоб был внешний вид сайта — и это понятно, ведь я использовал дефолтную тему Bootstrap 4 с мыслью «это временно, потом поставлю красивый скин».

Я даже не хочу воспроизводить шутку о том, что «нет ничего более постоянного, чем временное».

Потом активность, конечно, пошла на спад, но определенное количество активных пользователей на сайте все еще есть и сайт продолжает наполняться информацией.

На момент запуска в середине февраля на сайте было 227 модов для 86 игр , и на момент публикации - 323 моды для 130 игр .



И зачем ты это сюда написал?

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

Несмотря на банальность тезиса, о нем стоит периодически напоминать.

А во-вторых, пригласить любителей покопаться в коде или рисовать и верстать интерфейсы.

Возможно, вас заинтересует тематика сайта и вы захотите немного помочь в его развитии ;-) Если интересно, то весь исходный код сайта живет на гитхабе .



P.S. Видео тур по сайту

Теги: #Игры и игровые консоли #github #с открытым исходным кодом #java #php #старые игры #статический сайт
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.