Contributing to the Game

Официальный репозиторий CM-SS13 и наш репозиторий BandaMarines

Вклад в разработку игры

Руководство

С чего начать

Мы рады, что вы решили внести вклад в проект CM13 или хотя бы бегло ознакомиться с этим руководством. Прежде чем приступить к реализации своих идей — кодингу, маппингу, спрайтам и участию в каналах для контрибьюторов — вам следует, как минимум, ознакомиться с разделом с руководящими принципами, а также просмотреть разделы «Чего мы хотим» и «Чего мы не хотим». В самом конце этого краткого руководства вы найдёте ссылки на различные гайды и обучающие материалы, которые мы рекомендуем. Не все они были написаны специально для CM13 или даже для BYOND в целом, но материалы, созданные их авторами, являются чрезвычайно ценными.

CM13 — лишь набросок идеи

CM13 по сути представляет собой две разные игры, объединённые в одну: умеренно стратегический командный deathmatch в повседневном геймплее (хотя, если быть точнее, это скорее смесь иммерсивного симулятора и экшен-ролевой игры), с сопутствующей вселенной и сеттингом, создающими основу для ролевого взаимодействия. Мы приглашаем контрибьюторов развивать игру и расширять её, опираясь на свой собственный опыт. Сила CM13 и SS13 в целом — в разнообразии идей и видений, которыми обмениваются игроки, участники и разработчики. Несмотря на наличие общего курса развития, задаваемого командой разработчиков, именно игроки поддерживают сервер живым — и именно из числа игроков выходят большинство разработчиков.

Одна из отличительных черт CM13 — это внимание к мелочам и взаимодействие между системами. Возможность смазать оружие перед высадкой, переключение режимов у M56B Smartgun, выбор эволюционного штамма у Чужих — крупные и мелкие детали делают игру интересной как для новичков, так и для ветеранов.

Именно здесь вы, как контрибьютор, можете проявить себя — будь то работа над устаревшими спрайтами из Bay12, добавление Nightmare-вставок на карты Big Red и LV, или реализация новых функций, формирующих уникальные истории каждого раунда. Каждый коммит имеет значение. Однако, в вопросах общего направления проекта последнее слово всегда остаётся за командой разработчиков. Вклад в проект — это простой путь к присоединению к этой команде. Если вы хотите оказывать большее влияние на развитие игры, мы рекомендуем сначала освоиться с нашим кодом и системами, а затем присоединиться.

Руководящие принципы

Эти принципы — не строгие правила, а скорее советы, призванные помочь вам и другим контрибьюторам создать продуктивную и комфортную атмосферу совместной работы. Помните: каждый, даже самый талантливый программист или художник, когда-то писал свой первый "Hello world" или делал первый мазок кистью. Среди нас будут новички и те, кто работает инженерами в реальной жизни.

Никогда не делайте предположений о других участниках и не забывайте оставаться скромными, помогая друг другу. Большое эго — кратчайший путь к плохой репутации. У всех свои идеи, и то, что чья-то идея отличается от вашей, не делает её плохой.

С другой стороны, не все идеи хороши, как и код, карты или спрайты. И это нормально! Ваша задача как контрибьютора (а наша как разработчиков) — помогать тем, кто в этом нуждается, и работать вместе, чтобы становиться лучше, а не критиковать и унижать.

Если сомневаетесь — спрашивайте. Принимайте конструктивную критику и прислушивайтесь к мейнтейнерам и разработчикам.


Чего мы хотим

Как уже было сказано: «Команда разработчиков и её решения имеют приоритет над мнением игроков и контрибьюторов». Это применимо и к тому, что скорее всего будет принято через Merge Request. Список ниже — не полный, но он даст общее представление о том, что хотелось бы видеть в пулл-реквестах.

Спрайты

  • Замена устаревших спрайтов из Bay12
  • Уникальные дизайны штаммов Чужих (для тех, у кого их ещё нет)
  • Альтернативные спрайты для Чужих
  • Сортировка иконок по образцу оружейных листов
  • Новые косметические предметы экипировки, например, шлемы
  • Кастомные тайлсеты для карт, которые их не имеют
  • Уникальные объекты и детали для конкретных карт
  • Формы и экипировка колонистов, привязанные к картам
  • Дополнительные стили HUD
  • Исправления багов и устранение несоответствий

Карты

  • Nightmare-вставки
  • Улучшения размещения объектов (например, расширение узких коридоров и путей, загромождённых объектами)
  • Дополнительные декоративные элементы (если они не ухудшают производительность)
  • Удаление тупиков и бесполезных зон на картах
  • Новые карты*
  • Исправления багов и устранение несоответствий
Примечание о новых картах

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

Кодинг

  • Улучшения качества жизни, не влияющие на баланс, но повышающие удобство
  • Оптимизация и уменьшение задержек
  • Рефакторинг серверных систем ради стабильности и производительности
  • Минорные функции, не меняющие цикл раунда
  • Любые задачи с публичного таск-борда
  • Новые штаммы Чужих
  • Новые технологии для Чужих и Морпехов
  • Удаление устаревших механик из Bay12 (например, wizard backend, лазерные глаза и пр.)
  • Уникальные loadout-наборы для выживших на конкретных картах
  • Исправления багов и устранение несоответствий


Чего мы не хотим

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

Хотя этот список не является исчерпывающим, он даст вам хорошее представление о том, чего следует избегать при работе с нашей кодовой базой. Если вы создадите MR, затрагивающий один или несколько пунктов из списка, это не означает автоматический отказ (иногда такие изменения могут быть полезными), но, скорее всего, это серьёзно уменьшит шанс того, что ваш MR будет принят и слит. Так что не говорите, что вас не предупреждали!

Спрайты

Мы уже обеспечены художниками и спрайтами оружия.

  • Перерисовка недавно обновлённого контента, такого как униформа, оружие, броня морпехов
  • Перерисовка, радикально меняющая стиль предмета/объекта в духе CM (например, превращение формы штаб-офицера в парадную форму)
  • Изменения донатных предметов (исключение — для самих доноров, вносящих изменения в свои вещи)
  • Изменения, затрагивающие крупные фракции без предварительного одобрения (если его нет — рассчитывайте на отказ)
  • Юморные спрайты (если только они не выдающегося качества)
  • Изменения спрайтов обвесов/модулей
  • Тактикульное снаряжение. Мы — ретро-футуризм, или кассетный панк, если угодно

Карты

  • Nightmare-вставки с нелепым лутом или неуместные (например, снег на LV)
  • Существенные изменения проходов или ремапы "наследуемых" карт
  • Крупные ремапы без предварительного согласования
  • Детализация, ухудшающая пространство арены или мешающая геймплею

Код

  • Изменения только чисел баланса (урон, отдача, здоровье, броня, скорость и т.д.), без другого наполнения (без согласования)
  • Удаление не-наследуемых механик
  • Крупные переработки игрового процесса без согласования
  • Добавление новых фракций, антагонистов или рас
  • Ещё раз — никаких новых рас, даже арктуриан
  • Новые кассеты
  • Удаление техники
  • Новые профессии/роли
  • Изменения в вайтлист-ролях
  • Удаление профессий/ролей
  • Глобальные переработки профессий/ролей

Помните: списки выше не являются исчерпывающими. Вы можете предложить MR с изменением, попадающим под категорию "чего мы не хотим", и он всё равно может быть принят. Просто шанс крайне низкий.

Ресурсы и ссылки

Ресурсы по спрайтингу

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

Рекомендуемое ПО:

  • Krita — бесплатный редактор с открытым исходным кодом
  • FireAlpaca — мощная бесплатная программа для рисования
  • GIMP — альтернатива Photoshop
  • Aseprite — специализированный редактор для пиксель-арта. Настоятельно рекомендуется
  • Photoshop — индустриальный стандарт
  • Photopea — браузерный аналог Photoshop, полностью бесплатен
  • Paint.NET — ещё один бесплатный редактор изображений, широко используется



Визуальные подсказки по спрайтингу CM-SS13


Спрайтинг предметов

Ссылки по стилю спрайтинга предметов CM-SS13:

Изображение для ссылок на спрайты:

Спрайтинг:

Конечный продукт:


Спрайтинг униформы

Ссылки по стилю спрайтинга униформы CM-SS13:

Основной прогресс униформы:

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


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

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

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


Ресурсы по картографии

CM13 Mapping Crash Course. Всеобъемлющее руководство по StrongDMM и концепциям картографирования в CM13. Независимо от уровня подготовки, начните с этого.

Включает справочник по горячим клавишам и меню StrongDMM. Его можно найти в формате PDF в канале #codebase-announcements на нашем Discord-сервере.

Distress Signal Map Essentials. Более конкретный список того, что составляет основу карт Distress Signal.

Рекомендуемое ПО:

  • StrongDMM, рекомендованный инструмент для картографирования CM13.
  • FastDMM2, веб-редактор карт. Преемник оригинального FastDMM.

Ресурсы по программированию

Козерог-сервер для кодеров. Если вам нужна помощь с хостингом сервера или пониманием кода и логики Byond, это Discord-сервер, который стоит посетить.

Документация по Dream Maker. Справочник по всем вопросам, связанным с кодированием для Dream Maker.

Рекомендуемое ПО:

  • Visual Studio Code. IDE, которая поддерживает плагины для языка Byond и интеграцию с Git. Рекомендуется для использования.

Git

  • Guide to Git - Начало работы с современным развитием и первыми коммитами Git.

Рекомендуемое ПО:

  • Git, то, что вам нужно для начала. Убедитесь, что вы установили его до всего остального.

Как хостить частный сервер

Изменение прав доступа

  • Перейдите в Config, затем в Examples и скопируйте все файлы.
  • Вернитесь в Config и вставьте эти файлы, откройте admins.txt.
  • Под примером добавьте свой ckey и желаемый ранг.

Пример: CKEY - Host

  • Сохраните.

Компиляция сервера

  • Перейдите в папку Bin (в папке с кодом CM, который вы только что скачали), дважды щелкните на server.cmd.
  • Пока он работает, откройте командную строку (cmd) через меню «Пуск» в Windows.
  • Введите ipconfig/all в командной строке и найдите свой ipv4 (Ваш IP) и скопируйте его.
  • Откройте Byond и перейдите в верхний правый угол, затем нажмите на значок шестеренки и выберите "open location".
  • В верхней строке введите свой IP и добавьте :1337 в конце. После этого нажмите "add" и дайте название в нижней строке всплывающего окна. Теперь у вас есть закладка для частного сервера. После этого можно нажать OK, и программа сразу попытается подключиться к закладке. Если соединение не установлено, скорее всего server.cmd всё ещё работает и создаёт пути и прочее.
  • Готово!

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