Перейти к основному содержанию

Обзор

Учитывая раздробленный, несбалансированный и откровенно незавершённый характер медицинской системы этой игры, необходимо, чтобы обязанности и ограничения медицинской рабочей группы находились в публичном пространстве, где их можно легко понять и прочитать. Медицинская рабочая группа отвечает за медицинскую систему Space Station 14, которая включает, но не ограничивается: Урон, BodySystem, Реагенты, Метаболизм и Медицинский отдел (включая Химию). Цель медицинской рабочей группы — почти полностью переработать все эти системы, чтобы соответствовать механической глубине различных медицинских систем Space Station 13. Для выполнения этой невозможной задачи я выделил три основные обязанности рабочей группы.

Обязанность 1: Поддержание текущего медицинского баланса

Это состоит из двух вещей: поддержание медицинского баланса статичным, так как микробалансировка плоха и отнимает время, которое мы могли бы потратить на его улучшение, а также проведение активного обслуживания. Исправление багов, добавление небольших функций, улучшения кода, чистка и т.д. Баланс upstream медицины должен быть в «достаточно приемлемом» состоянии, и большие изменения должны вноситься только в том случае, если что-то пошло ужасно неправильно или требует исправления. Новые функции должны проверяться и приниматься только в том случае, если они малы и легко обратимы или переносимы в новую медицинскую систему. Более крупные медицинские изменения, которые могут помешать разработке, должны быть либо перенаправлены на разработку новой медицинской системы, если это возможно, либо закрыты/заморожены в зависимости от обстоятельств. Любые новые PR для текущей медицины должны быть совместимы с великим debodying, что бы ни случилось, или быть закрыты на усмотрение медицинской рабочей группы.

Обязанность 2: Великая чистка Debodying

Более важная обязанность — «Великий debodying». Это должно быть обеспечено, если мы хотим иметь систему тела и сложные медицинские системы. Весь debodying должен быть совместим с целями новой медицинской системы. Debodying — самый важный шаг процесса, потому что он делает построение новой медицинской системы намного проще и даёт нам гораздо больше возможностей для внесения изменений без компромиссов. Debodying состоит из двух вещей:

1. Удаление зависимости всех систем от кода bodysystem или органов в пользу систем, основанных на событиях и общих систем.

Текущая медицинская система построена на предположении, что BodyComponent гарантирован для каждой управляемой сущности, от людей до мышей, роботов и даже призраков! Это привело к чрезвычайно жёсткому коду, который предполагал, что многие сущности не только будут иметь тело, но и будут иметь определённые органы, выполняющие определённые функции, и если вы хотели что-то хоть немного отличающееся, вам приходилось создавать совершенно новую систему или добавлять хардкод в существующую систему для добавления поведения. Такой подход недостаточно гибок, чтобы допускать широкий спектр уникальных видов, не использует преимущества ECS и не соответствует текущим стандартам кодирования Wizden. В результате весь код, который взаимодействует с BodySystem и её связанными компонентами или полагается на них, должен быть переработан, рефакторизован или удалён. Однородной сущности без органов не нужен BodyComponent для еды или дыхания, например, но с текущей медицинской реализацией это совершенно невозможно. Как правило: везде, где происходит проверка на BodyComponent, мы должны вызывать обрабатываемые события, в которые внедряется body system, а затем соответствующие органы их обрабатывают. Мы должны делать как можно меньше предположений о том, что делают эти события. Чем менее жёсткий код, тем более творчески контрибьюторы могут использовать систему, и тем более гибкими мы можем быть с новой медицинской системой.

2. Рефакторинг и очистка кода реагентов и присоединённых реактивных систем.

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

Обязанность 3: Disco-Med/Offmed

Disco-Med — это название, которое мы дали планируемой медицинской системе для upstream, и, следовательно, третья обязанность — разработка этой системы. Offmed — это расширение Disco-Med, это медицинская система, не зависящая от body-system, которая симулирует многие поведения, которые мы хотим от disco-med, без необходимости иметь дело с багажом текущих body-систем. В обязанности медицинской рабочей группы входит поддержка и управление обеими системами по разным и отличным причинам.

Disco-Med

Из-за масштабных изменений, необходимых для создания новой медицинской системы, разработка disco-med должна будет вестись параллельно с текущим upstream и рецензироваться и тестироваться отдельно от upstream. Оттуда система может быть объединена с upstream большими функционально завершёнными кусками, которые обычно были бы нерецензируемыми из-за размера и сложности. Это даёт нам возможность вносить масштабные изменения, сохраняя при этом возможность их адекватного тестирования и без опасения сломать что-то или выполнять большие откаты, которые приводят к неудачам, задержкам и потере морального духа. На момент написания Disco-Med не имеет единого документа по организационным причинам. Медицина — это исключительно большая система со многими аспектами, требующая ряда целевых документов и обсуждений для конкретных систем (решения, метаболизм, органы и тело, урон и т.д.). Таким образом, ни один документ не может правильно описать каждую систему и то, как они должны работать вместе. Кроме того, несколько систем всё ещё нуждаются в рефакторинге, прежде чем можно будет добавить финальный контент. Было бы преждевременно создавать подробные дизайн-документы для систем или контента, которые всё ещё требуют нескольких крупных рефакторингов. Вместо этого у нас есть общий медицинский дизайн-док, в котором описано желаемое поведение для новой медицинской системы, а также ряд проблем, которые необходимо решить. Для получения дополнительной информации обращайтесь к @princesscheeseballs в Discord.

Offmed

Offmed, также известный как «Offbrand-Medical», — это официально-неофициальная upstream медицинская система. Как и другие неофициальные медицинские системы, интеграция в неё сопряжена с потенциальными ломающими изменениями upstream и потерей поддержки. Всё в Offmed может структурно измениться, так как это тестовая площадка для функций, которые мы хотим увидеть, а не их финальная версия в каком-либо качестве. Тем не менее, Offmed предназначен для использования преимуществ текущих принятых рефакторингов и изменений bodysystem, то есть он будет развиваться по мере развития disco-med. Считайте это взглядом в будущее медицины, поскольку многие аспекты симуляции используют трюки с зеркалами и дымом, чтобы избегать касания систем, которые всё ещё нуждаются в рефакторинге или построении. Функции из offmed будут портированы в disco-med по мере необходимости и когда мы сможем. Таким образом, offmed не планируется к официальному выпуску в каком-либо постоянном качестве. Релизы и тесты управляются медицинской рабочей группой и предназначены для целей тестирования без обязательств долгосрочной поддержки или регулярного графика релизов.
Последнее изменение 21 июня 2026 г.