Планы на Factorio 0.14

Просмотров: 126
Опубликовано:
Обновлено:

Планы на Factorio 0.14

В прошлой статье я рассказал о новых биомах в Factorio 0.14. В данной статье — перевод с блога разработчика Factorio.

Большую часть списка планов на Factorio 0.14 планов не будет большим сюрпризом, поскольку большинство из них обсуждалось в прошлом:

  • Мультиплеер  переписан
  • усовершенствования сети Circuit
  • Обновление оптимизации
  • Атомная энергия
  • Вагон для жидкостей + универсальные бочки
  • Высокое разрешение графики
  • Перерисовка GUI и улучшение
  • Обновление многопоточности

Мы ожидаем, что это обновление займет меньше времени по сравнению с 0,13, так что, возможно, обновление Factorio 0.14 выйдет в ноябре.

Переписан мультиплеер

Этому были посвящены пятничные факты разработчиков №147 и №149. Все большие изменения закончены и все ранее написанные автоматические тесты проходены. Переписывание стало приоритетом, поэтому он может быть протестирован членами команды с этого момента. Все остальные изменения и твики должно быть внедрены без каких-либо дополнительных глубоких изменений, поэтому всё должно идти гладко с этого момента. Это означает, что у меня будет время, чтобы работать на следующей 0,14 теме в ближайшее время, а именно:

Автоматические сети и 0.14

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

fff-151-combinator-trello-card

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

Ядерная энергетика

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

Высокое разрешение графики

Мы спросили об этом уже много раз. Мы не забыли про это и мы хотим, чтобы это было сделано до версии 1.0, это, возможно, последняя версия, чтобы начать работать над ней. Все вновь созданные объекты уже созданы с вариантом с высоким разрешением в виду, но некоторые из старых, таких как трубы или ремни должны быть переделаны, чтобы быть совместимым с остальными. Это то, над чем Vaclav работает в эти дни. Мы должны будем надеяться быть в состоянии показать некоторые примеры работы в ближайшее время. Мы рассмотрим только часть графики в 0.14, но вы будете иметь возможность использовать их при выборе новой опции графики. Но будьте осторожны, требования к видеопамяти будут расти.

Обновление оптимизации

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

Многопоточный обновление

Как это всегда лучше, чтобы улучшить производительность без необходимости использования большего числа потоков, всегда есть предел. Именно поэтому мы хотели бы попробовать эксперимент с многопоточным обновлением. Мы уже используем многопоточность в Factorio, но только для определенных задач. Чтобы обновить игру и в то же самое время ускорить рендер (это так мы называем сбор данных для визуализации), а также для создания карты в фоновом режиме.
Так это выглядит следующим образом:

fff-151-current-threads

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

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

fff-151-future-threads

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

Основная проблема при работе с параллелизмом является доступ к совместно используемым ресурсам, например. когда два разных потоков записываются в тот же кусок памяти. Это либо решается либо замками, которые на самом деле не вариант на уровне сущности, или стратегией, которая предотвращает запись поток в  тот же кусок памяти. Наша стратегия состоит в том планируется разделить куски плитки (32х32 карты) в 3X3 сеток и число их от 1 до 9, вот так:

fff-151-parallel-update-chunk-distribution

Нет, это не судоку :), все блоки памяти с номером 1 могут быть обновлены в одно и то же время, до тех пор, как логика ничего дальше, чем соседние куски не изменится. Затем мы обновляем кусками 2, 3 до 9. Мы действительно не должны ждать все 1s быть закончена, чтобы начать 2, но я не хочу работать в подробности. Эта стратегия имеет также дополнительное необходимое свойство, которое является то, что соседи куски обновляются всегда в том же порядке. Без него игра не будет детерминированным.

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

Общий план

Так когда же выйдет Factorio 1.0? Вероятно, следующим летом (то есть летом 2018). Это, скорее всего, означает, что 0,15 станет 1,0, когда она станет стабильной. Мы еще не решили, что будет в 0.15 но текущие планы содержат идеи горно-артиллерийского поезда, но это все может измениться. Мы будем в основном пытаться отполировать углы, так что общий результат уравновешенного твердого тела и закончил игру.
Это будет результатом 5 лет долгой  езды, из дома гаража, через Развитию краудфандинга в наших офисах и Steam. Завершение игры будет важным шагом для нас и нашей совести, так как все обещания, которые мы дали на пути будут выполнены.
После этого, мы, возможно, займет достаточно длительный отпуск, чтобы очистить наши головы, а потом … ну, я считаю, это очень вероятно, что мы по-прежнему хотим работать над игрой. Таким образом, мы могли бы реализовать идеи как космической платформы, ферм кусак и более с энергией и временем, которого она заслуживает.

 


comments powered by HyperComments

рек 728х90 single.php
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Пока оценок нет)
Понравилось? Поделись в соц сетях!