Пятничные факты #305 – Изменения в нефти

Поделиться

опубликовали Rseding, V453000

Обновления Lua для интерфейса модов Rseding

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

Когда кто-то новичок в моддинге Factorio знакомится с тем, как он функционирует, у него почти всегда возникают одни и те же вопросы:

  • Почему GUI  модов является частью игрового состояния?
  • Почему GUI  модов должен быть детерминированным?
  • Как я могу редактировать графический интерфейс базовой игры?

И тогда приходит объяснение:

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

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

Это все еще оставляет последний вопрос: «Как я могу редактировать графический интерфейс базовой игры?». Используя приведенный выше пример, гораздо проще объяснить это: как мод – вы не можете. Графические интерфейсы базовой игры не реализованы с использованием этой же системы – это просто наборы виджетов. Ни одно из «последнего известного состояния» нигде не сохраняется, и все это теряется при сохранении, выходе и загрузке.

Однако это оставляет разделение: нам нужно реализовать каждый тип виджетов через систему «CustomGui», чтобы моды могли использовать их. В этом последнем выпуске я наконец-то нашел способ создания панелей с вкладками, поскольку они особенные в том, как они работают, по сравнению со всем остальным. Кроме того, я нашел полудружественный способ для модов размещать вещи прямо на экране так, чтобы игрок мог их перетаскивать – вместо того, чтобы ограничиваться какой-то фиксированной областью (слева, сверху, в центре и т. Д.).

Еще одна система, о которой я думал в течение достаточно долгого времени, – это способ для модов позиционировать элементы графического интерфейса относительно графического интерфейса базовой игры. Например: мод хочет добавить панель, которая отображается слева от графического интерфейса персонажа. В настоящее время это невозможно – графический интерфейс базовой игры не читается модами, поэтому они ничего не могут с ним сделать. Моя идея – это система, в которой мод может сказать: «Я хочу добавить этот графический интерфейс, и я хочу, чтобы он отображался относительно графического пользовательского интерфейса слева», а затем каждый раз, когда отображается графический пользовательский интерфейс, он также показывает мод. GUI.

В этой новой системе есть несколько важных частей. Для этого необходимо:

  • Должна легко расширятся (либо автоматически работает со всеми новыми графическими интерфейсами базовой игры, либо работает с минимальными усилиями).
  • Не порвать с простым рефакторингом.
  • Не причинять другим программистам проблем .
  • Не мешайте базовым игровым интерфейсам работать так, как они должны работать.

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

Изменения в нефти V453000

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

Мы обсудили со многими из вас как могли, и в этом FFF мы хотели бы представить вам, к каким выводам мы пришли, и попытаться объяснить наши идеи более подробно.

Изменения в базовой переработке нефти

Значительная часть из вас выразила обеспокоенность по поводу удаления легкой и тяжелой нефти из результатов базовой переработки нефти, будь то сама замена или она не подходит из-за некоторых других факторов …

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

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

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

Один из способов, с помощью которого мы можем взглянуть на пакет «Химическая наука», – это «доказательство того, что игроку удалось создать функциональный НПЗ». Имея это в виду, очень хорошо, если они настроят довольно простой нефтеперерабатывающий завод и узнают в первую очередь большинство новых сущностей / предметов / рецептов, которые необходимы для развития.

После того, как «доказать», что базовая обработка нефти работает, игрок может перейти к более продвинутой версии с большим количеством выходов и большим количеством рецептов – но поскольку игрок уже знаком с основами и уже имеет свою инфраструктуру (добыча транспортировка нефти, как работают трубы, химические заводы, …), это совсем не так запутанно и устрашающе, чтобы разблокировать и ориентироваться в расширенной переработке нефти, но в нем все еще есть новые концепции (многократные выходы,  больше рецептов).

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

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

Использование дизельного топлива

Многие из вас отметили, что легкая нефть используется в игре очень редко – в основном, для эффективного производства твердого топлива, но можно полностью игнорировать легкую нефть и просто производить твердое топливо из нефтяного газа, жертвуя некоторой эффективностью сырой нефти для простоты.

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

Ракетное топливо требует пакета химической науки и дизельного топлива

Мы добавляем дизельное топливо в рецепт Ракетного топлива и, следовательно, перемещаем Ракетное топливо за Расширенную переработку нефти, а вместо этого Ракетостроение берет на себя обязательное условие Горючих . Это должно помочь в качестве небольшого намека на получение твердого топлива из дизельное топливо и сделать рецепт немного более интересным – у нас не так много рецептов для сборочных машин с подачей жидкости, а рецепт топлива, связанный с нефтеперерабатывающим заводом, хорошо подходит. Одна из неясных деталей заключалась в том, что единственной мотивацией, которая сделала обязательной усовершенствованную переработку нефти, был только смазочный материал – который не похож на высокотехнологичный продукт – теперь есть и ракетное топливо.

Более важный вопрос, который многие из вас задавали, был бы: «Почему даже делать твердое топливо с изменениями». Это применимо еще больше сейчас, когда ракетное топливо отстает от продвинутой переработки нефти

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

Смена химического научного пакета – Сера

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

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

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

Роботы за пакетом химической науки

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

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

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

Замена патронов огнемета – сырая нефть

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

Регулировка чисел

Мы внесли небольшие изменения в числа в рецептах – в частности, базовая переработка нефти приводит к немного большему объему нефтяного газа (45 вместо 40), а расширенная переработка нефти приводит к большему количеству тяжелой нефти (25 вместо 10), чем раньше. Это связано с тем, что было принято использовать базовую обработку нефти вместо расширенной обработки нефти , когда требовалось много смазки для конвейеров

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


Поделиться

Комментарии: