Oxygen Not Included Вики
После этого гайда вы научитесь кодить как профессионал!P.S. Не пугайтесь, это шутка.

После этого гайда вы научитесь кодить как профессионал!
P.S. Не пугайтесь, это шутка.

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

Файлы игры можно найти через Steam, щелкнув правой кнопкой мыши по игре в вашей библиотеке и выбрав вкладку «Свойства», «Локальные файлы», «Просмотреть локальные файлы» …

Код[]

Чтобы посмотреть на код, вам нужен C# декомпилятор. Вы можете использовать вот эти — dotPeek, ILSpy и dnSpy (у каждого из них есть свои сильные и слабые стороны, вы можете использовать несколько декомпиляторов одновременно). Когда у вас есть декомпилятор, вы можете декомпилировать OxygenNotIncluded_Data/Managed/Assembly-CSharp.dll — файл, который содержит большую часть кода игры. Есть ещё один код, связанный с движком игры, он находится в соседнем Assembly-CSharp-firstpass.dll файле.

Обратите внимание, что декомпилированный код не так прост для чтения, как обычный исходный код, поэтому может быть трудно исследовать его некоторые части (например, локальные имена переменных выводятся декомпилятором и они могут быть довольно бесполезными, а все комментарии могут быть потерянными). Вот несколько советов по организации кода:

  • STRINGS часто является хорошей отправной точкой для просмотра кода, потому что вы можете сначала найти внутриигровое имя сущности, а затем имя переменной сообщит вам, то что код вызывает. Например, «Wheezewort» приводит к «Coldbreather»
  • TUNING содержит много информации о балансе, но она не всегда может быть привязана к коду, который использует его, из-за оптимизации компилятора
  • Большинство игровых кодов находятся в корневом пространстве имен
  • Большинство объектов имеют два объекта в коде: основной объект, который, как правило, обрабатывает информацию о состоянии машины (также как они контролируют свое поведение во времени) и конфигурационный объект, который устанавливает большинство своих компонентов и присваивает значения главному объекту; основной объект полезен для понимания поведения, в то время как конфигурационный полезен для понимания баланса
  • Иногда вы будете сталкиваться с сообщением, которое отправляется как длинное число. Это хеши; вы можете искать более информативное имя в GameHash, SimHash, SimMessageHashes и т. д.
  • Иногда dotPeek будет иметь проблемы с декомпиляцией некоторого кода и отображает его как много генерируемых компилятором полей. dnSpy часто обрабатывает эти разделы лучше

Ресурсы[]

Некоторые настройки и много изображений находятся в пакетах ресурсов, которые являются файлами .assets непосредственно внутри OxygenNotIncluded_Data. Они могут быть открыты с помощью AssetStudioGUI или Unity Assets Bundle Extractor. Один совет для последней программы: вы можете выбрать файлы для извлечения, но только если вы начнёте перетаскивать их с правой стороны от списка.

Экстрактор пакетов может извлекать текстуры в виде png-изображений, что полезно для получения материала для вики. Однако в настоящее время у нас есть нерешенная проблема: как использовать файлы анимации и частей объектов для сборки более сложных текстур и воспроизведения их анимаций. Вероятно, это формат Klei, и при проверке, похоже, он похож на тот, который они использовали в Don’t Starve (Together). В файлах KAnim может быть больше информации, чем в Assembly-CSharp-firstpass.dll, а инструменты, созданные для Don’t Starve, могут стать хорошей отправной точкой для нашего собственного инструмента для работы с этими анимациями.

Обратите внимание, что некоторые текстуры имеют не очевидные имена, такие как «cuprite» для медной руды и «CookedEgg» для омлета. Вы можете раскрыть внутреннее имя, создав желаемый предмет или вещество в игре, сохранив его как шаблон, а затем посмотрев поле id в файле YAML. Также обратите внимание, что заглавные буквы сортируются перед строчными буквами, а также что капитализация поля id может отличаться от имени ресурса. Например, id для омлета — «CookedEgg», но имя текстуры начинается с «cookedegg».

Многие свойства веществ, включая их свойства и точки замерзания/плавления, можно найти в файле «sharedassets2.assets» в виде текстовых активов с именем «Solid», «Liquid» и «Gas» с твердой, жидкой и газообразной формой каждого вещества. Другие расширенные/необязательные свойства, такие как декор вещества, находятся в классе LegacyModMain.

Сохранения[]

Сохранения располагаются по этим адресам:

  • для Windows — C:\Users\USERNAME\Documents\Klei\OxygenNotIncluded\save_files
  • для macOS — ~/Library/Application Support/Klei/Oxygen Not Included/save_files
  • для Linux ?— ~/.config/unity3d/Klei/Oxygen Not Included/save_files

Удобно редактировать сохранения можно с помощью редактора сохранений (англ./кит.)

Туториалы[]

Источники[]