Обмен конкретным пользовательским контентом в Discourse (для Halo Infinite)

Привет, друзья! Надеюсь, кто-то умнее меня подскажет хорошее решение — даже если это потребует нанять разработчика Discourse для более кастомной задачи.

Я владею и управляю сайтом XboxEra.com — растущим изданием о видеоиграх с живым и активным форумом на базе Discourse.

Также с 2020 года я сотрудничаю с Microsoft над Halo Infinite в рамках работы над последней версией Forge — инструментом для создания пользовательского контента в Halo, входя в их «Совет Forge».

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

Что я хочу реализовать:

Я хочу создать специальный процесс создания постов для пользователей, желающих делиться картами и игровыми режимами. Это станет отдельной категорией на нашем форуме (forum.xboxera.com), посвящённой Halo Infinite.

Пользователь сможет заполнить детали о своём творении: например, является ли это картой для соревновательного режима или мини-игрой. Он сможет прикрепить скриншоты, указать основные типы игровых режимов (Slayer, Strongholds, CTF и т.д.), добавить описание карты, указать, на каком «холсте» она создана, перечислить соавторов, оружие и т.п., а также предоставить ссылку для сохранения карты, чтобы играть в неё в Halo Infinite.

Каждая карта сможет стать отдельной «темой», где пользователи смогут обсуждать её, оставлять отзывы и даже оценивать саму карту. Пользователи смогут просматривать всю категорию карт, созданных сообществом, и фильтровать их — например, только мини-игры или только соревновательные карты.

В идеале я бы хотел реализовать это внутри нашего экземпляра Discourse, а не создавать ещё одно отдельное специализированное приложение (например, как dayone.xboxera.com).

Так что, умные люди, что здесь возможно? Любые отзывы и вопросы приветствуются! <3

1 лайк

Интересно, можно ли использовать плагин Custom Wizard для вашего рабочего процесса создания постов. Думаю, с его помощью можно создавать темы, соответствующие определённому шаблону.

1 лайк

Вы можете использовать теги для различных типов игр.

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

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

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

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

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

С вами согласен насчет людей.

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

1 лайк

Это отличная информация.

Лучшим примером того, к чему я стремлюсь (но, конечно, превосходя это с точки зрения удобства использования и современного интерфейса), вероятно, является Forgehub. С точки зрения разработки плагина, создание чего-то похожего на это является особенно сложным или долгим процессом?

1 лайк

Существует ли где-то стандартное хранилище карт?

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

См.: PubSubHubbub Core 0.4 -- Working Draft

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

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

1 лайк

Правильно ли я понимаю: репозиторий карт будет содержать ВСЕ карты, когда-либо сохранённые/опубликованные через Forge, для которых сгенерирована ссылка для обмена через HaloWaypoint (при условии, что они будут делать именно так)?

Судя по моему пониманию работы Forge, это, вероятно, невозможно реализовать — это будет доступно только тем, кто делится своими собственными творениями на нашем форуме. Надеюсь, я ясно излагаю мысли!

1 лайк

Вы можете:

  • получать сообщение для каждой новой карты;
  • фильтровать те, которые не относятся к вашим пользователям (используя какое-либо ключевое соотношение, например, пользовательский атрибут в вашем Discourse, связывающий их «ID автора форжа»?);
  • создавать эти темы.

Готово.

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

1 лайк