Недавно мне пришло в голову возродить свой старый каталог портов исходников и графических модификаций для старых игр.
Новая версия должна была быть максимально открытой и открытой, чтобы любой пользователь мог редактировать как содержимое сайта, так и его код, а мне пришлось бы заниматься только предварительной модерацией изменений.
Если вам интересно, что из этого получилось, как я создал себе проблемы и как их потом решил, добро пожаловать под кат.
Краткое техническое задание на сайт
- На сайте будет размещаться информация о модификациях для игр (фанатские патчи, наборы текстур, порты исходников и т.п.
), улучшающие графику, упрощающие некоторые аспекты управления, а также переносящие их на другую операционную систему или платформу.
Пример таких модов — добавление в Dune 2 рамки выбора юнитов или текстур высокого разрешения для Doom.
- На сайте будет только информация, а не сами файлы модификаций и портов.
На старой версии сайта я пробовал поддерживать и загружать свежие копии файлов, и это занимало изрядное количество времени.
- Сайтом должно быть удобно пользоваться как с десктопа, так и с планшета или телефона.
- Любой пользователь должен иметь возможность добавлять на сайт игру, модификацию и т.п.
, а также редактировать любую уже добавленную на сайт информацию.
- Любой пользователь должен иметь возможность редактировать код и макет сайта.
- Владелец сайта должен иметь возможность предварительно модерировать любые изменения.
- Должна быть возможность добавить дополнительных модераторов
- Должны быть кнопки для публикации в социальных сетях.
Решение
Давайте поместим все данные на Github и используем эти данные для создания статического веб-сайта? Сплошные преимущества!- GitHub уже предоставляет веб-интерфейс для изменения или добавления файлов и отправки изменений в виде запроса на включение.
- Pull Request — отличная система для предварительной модерации изменений и просмотра различий.
- Нужны новые модераторы? Добавляем пользователей в проект на Github, не нужно думать о системе прав
- Статический сайт можно разместить абсолютно на любом хостинге, включая GitHub Pages.
- Любая активность, такая как комментарии, обмен информацией или блок «случайной модификации», может быть реализована на клиенте с помощью JS и готовых решений, таких как Disqus.
- Для простоты и скорости верстки мы используем Bootstrap.
Поехали.
Нет, стоп, сначала тебе нужно принять еще одно решение.
В каком формате должна храниться информация?
Хранить описания игры или модификации в файлах формата «JSON/XML/введите свою версию» кажется замечательной идеей, но в наши требования входит «.любой пользователь.
», а некоторые JSON могут напугать.
Ну да ладно, это бредовый вопрос — давайте хранить данные в виде кучи текстовых или Markdown-файлов.
Один файл — одна сущность, файлы MD на github имеют предварительный просмотр — болтовня! А чтобы еще больше упростить ситуацию, мы подробно опишем в документации, что за что отвечает. Некоторые из этой информации:
И что я хочу сказать, так это то, что редактировать существующую информацию в этом режиме действительно довольно удобно.
Но есть один нюанс.
Добавление новой информации
Редактировать данные оказалось удобно, а вот создавать новую модификацию не очень удобно, так как нужно было создавать от 4 до 14 файлов одновременно.И делать это через интерфейс Github чертовски неудобно.
Моей первой мыслью было написать многошаговые инструкции, описывающие добавление новой информации от начала до конца.
Увы, вердикт пользователей сайта был однозначен: неудобно! А если пользователям некомфортно на сайте, который должен жить за счет активности пользователей.
знайте, проект плохой.
PHP в помощь
Ну что поделаешь, решение в целом было очевидным: написать формы для создания новой информации путем создания пул-реквеста со всеми необходимыми файлами, а также для загрузки скриншотов в существующие описания.
По старой памяти, из-за желания как можно быстрее запустить проект, а также из-за того, что PHP уже был на хостинге, для этих форм использовался PHP.
Оно взлетело?
После добавления удобных форм процесс пошел: в первые недели после размещения информации о сайте в моем видеоблоге и на сайте Old-Games.RU новые моды и порты добавлялись с такой скоростью, что я просто не успевал на премодерацию!Помимо добавления информации, мне также был отправлен ряд комментариев и предложений по интерфейсу и функционалу, часть из которых я уже реализовал, а часть еще ждет своего часа.
Одной из частых жалоб был внешний вид сайта — и это понятно, ведь я использовал дефолтную тему Bootstrap 4 с мыслью «это временно, потом поставлю красивый скин».
Я даже не хочу воспроизводить шутку о том, что «нет ничего более постоянного, чем временное».
Потом активность, конечно, пошла на спад, но определенное количество активных пользователей на сайте все еще есть и сайт продолжает наполняться информацией.
На момент запуска в середине февраля на сайте было 227 модов для 86 игр , и на момент публикации - 323 моды для 130 игр .
И зачем ты это сюда написал?
Во-первых, расскажите другую историю с очевидной моралью: «интерфейс, удобный и приятный для программиста, не обязательно будет удобен для пользователя сайта».Несмотря на банальность тезиса, о нем стоит периодически напоминать.
А во-вторых, пригласить любителей покопаться в коде или рисовать и верстать интерфейсы.
Возможно, вас заинтересует тематика сайта и вы захотите немного помочь в его развитии ;-) Если интересно, то весь исходный код сайта живет на гитхабе .
P.S. Видео тур по сайту
Теги: #Игры и игровые консоли #github #с открытым исходным кодом #java #php #старые игры #статический сайт-
Плюсы И Минусы Разработки С Помощью Xamarin
19 Oct, 24 -
Офлайн-Распространение Google Earth
19 Oct, 24 -
Пересылка Письма Незаконна?
19 Oct, 24 -
«Символ Удачи»
19 Oct, 24