sfw
nsfw

Результаты поиска потегуFactorio

Дополнительные фильтры
Теги:
Factorioновый тег
Автор поста
Рейтинг поста:
-∞050100200300400+
Найдено: 121
Сортировка:

Кто ты сегодня?

Усердный
Growing the factory rn.
Playing
0Factorio
« 25:20:29,Factorio,Игры
Скрытный
Радостный
,Factorio,Игры
Д̸̢̧̛̩͈̖̹̱̮̼̀̑͛̓͂̇̋̈́Р̵̫̊̑̅У̴̣̮̜̤̞̣̖͉̼̇̎̓̏̒͊̍̆͆̇̍̚ͅГ̵̧̫̱̭̫̪̣̺̯̺̱̅͐̋̚ͅ

Factorio ULTRACUBE - Cube Transport Express

Яush E в Factorio

Играбельная версия Rush E воспроизводится на моём новом аудиоконтроллере в Factorio
Новая версия аудоконтроллера имеет 15 независимых аудио канала. Помимо выбора инструмента, ноты и громкости, звук может быть воспроизведён с задержкой от 0 до 7/8 строки. 16-й канал используется для установки скорости воспроизведения в начале или в процессе проигрывания.
,Factorio,Игры,Factorio Dev Diary
Здравствуйте!
Добро пожаловать в раздел «Факты недели».
Указатели или доски объявлений — обычное явление в видеоиграх, вероятно, не намного уступающее вездесущим деревянным ящикам или взрывчатым бочкам. Это хороший, чистый и понятный способ общения с игроком, и это было то, что мы давно хотели увидеть в Factorio...

Display Panel - Дизайн (Эарендель)

Полная функциональность новой сущности "Display Panel" отображения будет полностью объяснена ниже. Для дизайна нам нужно знать только то, что это сущность, которая может отображать любую иконку по вашему выбору (предмет, рецепт, виртуальный сигнал).
Первая версия, которую я увидел, была указателем, добавленным Klonan. Это был хороший плейсхолдер, и общая концепция отображаемой сущности как указателя была чем-то, что стоило рассмотреть. Теоретически указатель мог бы работать, но есть несколько отвлекающих факторов:
Указательный столб — это в первую очередь 2D-структура, и под этим я подразумеваю, что он высокий и плоский, но не имеет большой глубины. Если опорный столб указателя находится в середине плитки, то как более высокая сущность, это выталкивает область отображения вверх и наружу плитки, которую занимает сущность.
- Если указатель переместить вперед, чтобы дисплей поместил больше информации в пределах плитки сущности, то, поскольку это в основном двухмерная структура, будет казаться, что большая часть плитки позади него пустует, и он будет выглядеть странно, если его выстроить в ряд с другими объектами.
- Поверхность дисплея в итоге становится вертикальным прямоугольником, но значки, которые появляются на дисплее, — это значки, которые предназначены для просмотра в графическом интерфейсе или горизонтальной плоскости, например, на земле или транспортной ленте. Это заставило бы все значки выглядеть более неуместными и бороться с кажущейся проекцией камеры Factorio.
Если бы какая-либо версия указателя работала, то она, вероятно, должна была бы быть больше похожа на один из тех временных дорожных знаков, которые стоят на земле и опираются на какие-то треугольные опорные стойки. Большая проблема в том, что ни один из этих вариантов не имеет нужной эстетики.

Первый дизайн - Демонстрационная пластина

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

Второй дизайн - Больше логики

Когда пришло время сделать правильный дизайн, некоторые требования изменились. Это был уже не просто статический дисплей, он имел логическое соединение для изменения значка и многого другого. Он также был имплементирован позже как часть системы логической сети, вместе со всеми комбинаторами, выключателем питания и программируемым динамиком. Таким образом, новый дисплей должен был выглядеть как часть этого пласта технологий.
Новый дизайн основан на базе в стиле комбинатора. Все комбинаторы разные, поэтому база дисплея также «такая же, но другая» в некотором роде.
Для самой лицевой стороны дисплея я выбрал ЭЛТ (электронно-лучевую трубку). Такая изогнутая поверхность дисплея идеально подходит для эстетики этой части технологического дерева. Экран такого типа обычно наклонен вперед, но если вы посмотрите на множество старых дисплеев NASA, многие из них были наклонены довольно сильно вверх. Вероятно, это сделано для того, чтобы их было хорошо видно из положения сидя или стоя. По причинам, упомянутым ранее, для наших иконок лучше всего, если поверхность дисплея находится ближе к камере, что составляет угол 45 градусов. Экран ЭЛТ наклонен примерно на 40 градусов, так что он почти обращен к экрану, но вы все равно можете видеть некоторые интересные детали сверху.
Первая итерация нового дизайна была основана на вращении всей структуры без изменения ее формы в каждом направлении. Это заставило экран двигаться в зависимости от ориентации сущности, что более соответствует форме объекта, но было не очень здорово, когда значок и текст смещались влево или вправо, поэтому это пришлось изменить.
Вторая итерация сохраняет экран устойчивым на протяжении всех вращений. Это означает, что форма структуры отличается для каждого вращения. Было немного трудно удержать точки соединения цепей в разумных местах, но это сработало.
Мы могли бы сделать эту сущность всего в одном возможном расположении но наличие вращающихся логических соединений цепей довольно важно, потому что это одна из немногих сущностей в игре, ориентированных на отображение, и наличие проводов что пересекали бы экран, — это не то, что вам нужно. Вращение сущности для изменения положений соединений логических  цепей помогает сохранить экран чистым. Даже если вы вращаете их как часть более крупного массива комбинаторов, они все вращаются вместе и предотвращают запутывание проводов. (Кроме того, даже постоянный комбинатор имеет 4 вращения, поэтому было бы странно, если бы на панели отображения было бы только 1).
Этот дизайн довольно новый, поэтому нам нужно будет его еще протестировать, прежде чем называть его окончательным. Пока нет 3D-модели, она будет сделана, если мы решим, что эта версия нас устраивает.

Display Panel - Функциональность (Клонан)

Дисплейная панель по своей сути и простейшему назначению — это всего лишь способ отображения сообщений игрокам, поэтому она стала естественной первой функцией.

Показ сообщений

В графическом интерфейсе дисплейной панели игроки могут ввести сообщение, которое позже будет показано. По умолчанию сообщение отображается только при наведении курсора на дисплейную панель игроком.
,Factorio,Игры,Factorio Dev Diary
,Factorio,Игры,Factorio Dev Diary
Однако иногда нам нужно, чтобы информация была видна постоянно, поэтому мы добавили опцию, позволяющую сделать текст видимым всегда (в альтернативном режиме).
Для коротких сообщений это нормально, но мы не можем просто спамить целыми абзацами на экране игрока все время. Поэтому мы сделали так, что будет отображаться только первая строка текста, а полное сообщение будет появляться только при наведении.
jîî jîî jî'Jîî /îfjfjfjfjrjî'jfjf'j:
mm

fT-- yr -	*
rvd	pCjjagg
- «V«a.
Su
A-O
15 Modules - don't touch
if
IfcJS
£2
r , | * « »1
JS?>,Factorio,Игры,Factorio Dev Diary
Modules - don't touch
i ; t.;	'
-— ---------— | t
Every time I come ba'ckto base, all
the modules are gone.
b:j	?nJ * ,j tr,j
Seriously, stop stealing them! It's beyond frustrating. I put them in the^chest for a reason.
ton,Factorio,Игры,Factorio Dev Diary

Показ значков

Затем нам показалось само собой разумеющимся, что мы можем задать какой ни будь значок для показа. Это не требует никаких объяснений, вы выбираете значок, и он рисуется на сущности.
Однако, мы пошли еще дальше, добавив опцию «Показать на карте», которая выводит использование экранных панелей на новый уровень.
,Factorio,Игры,Factorio Dev Diary
,Factorio,Игры,Factorio Dev Diary
Нажатие на значок на карте открывает указатель для легкого редактирования.
Это очень похоже на систему пользовательских тегов, но не требует ручного управления при добавлении или удалении части вашего завода. И, конечно, Коварекс заставил это работать с новыми параметризованными чертежами, так что штамповка стандартного дизайна будет иметь панель отображения с правильным значком и с идеальным выравниванием.

Подключение к коммутационной сети

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

Мы также добавили функцию использования «Любого сигнала» в качестве подстановочного знака для установки значка, чтобы вы могли создавать динамические дисплеи комбинаторов.
Масив комбинаторов выбирает рецепт для всех дробилок, а на панели дисплея отображается текущий выходной сигнал.
Мы довольно часто использовали дисплейные панели в наших офисных LAN-вечеринках, они отлично подходят для многопользовательской игры, где общение является ключевым фактором. Display panels будут доступны бесплатно как часть обновления базовой игры 2.0.

Исправления захвата инсертера (Твинсен)

Играя с новыми быстрыми транспортными лентами, я заметил проблему. В некоторых ситуациях даже самые быстрые манипуляторы не могли забрать предметы с лент. Они почти дотягивались до них, но промахивались. Похожая проблема, которая всегда присутствовала в игре, — это твёрдотопливные манипуляторы, которые не успевали забрать топливо для себя с экспресс-транспортных лент. И лично я находил эту проблему крайне раздражающей и не имеющей никакой игровой пользы.
Быстрые манипуляторы не могут справится с зеленым конвейером. Видео на скорости 0,5x.
Твердотопливные манипуляторы не могут ухватить топливо с экспресс-транспортной ленты.
Видео на скорости 0,5x.
Если посмотреть на них в замедленном темпе, особенно в примере с твердотопливным, то кажется, что рука прекрасно дотягивается до предметов, поэтому она должна просто поднять их, если они достаточно близко. Реализация простого захвата должна исправить обе проблемы. Но.. как обычно, все было не так просто.
Манипуляторы имеют 2 независимые скорости движения:
Скорость вращения — насколько быстро вращается рука вокруг своей оси.
- Скорость вытягивания — насколько быстро вытягивается и втягивается рука.
После некоторой отладки выяснилось, что скорость выдвижения была слишком медленной: рука поворачивалась на правильный угол, но кисти требовалось много времени, чтобы достичь нужной длины. Поэтому нам пришлось отладить эту скорость. Я также улучшил логику привязки, так что манипуляторы будут лучше реагировать на предмет, когда он достаточно близко.
С изменениями обе проблемы исправлены. Вставки теперь более последовательны, менее склонны к досадным сбоям, а также дают им небольшой бафф при снятии с транспортных лент.
Здравствуйте!
Сегодня мы хотим поделиться с вами интересными новостями!

Factorio: Space Age - Дата выхода

Мы планируем выпустить дополнение Factorio: Space Age 21 октября 2024 года . Причина выбора этой даты в том, что после летних каникул у нас будет достаточно времени для доработки релиза, а также останется достаточно времени после него, если нам понадобится выпустить исправления ошибок до рождественских праздников.
Цена дополнения «Космическая эра» составит 35 долларов США, столько же, сколько и текущая базовая игра.
Вы можете добавить игру в список желаний в Steam .

Factorio: Космическая эра - Содержание

Factorio: Space Age продолжает путешествие игрока после запуска ракет в космос. Открывайте новые миры с уникальными испытаниями, используйте их новые ресурсы для получения передовых технологических достижений и управляйте своим флотом межпланетных космических платформ.

Космические платформы - FFF-381

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

Вулканус - FFF-386 , FFF-387

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

Фулгора - FFF-398 , FFF-399

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

Глеба - FFF-413 , FFF-414

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

Повышенные рельсы - FFF-378

Выведите свои поезда на новый уровень! Надземные рельсы привносят совершенно новое измерение вызовов и возможностей в ваши железнодорожные сети.
- Прочные рельсовые пандусы и опоры для подъема рельсов.
- Преодолейте любые препятствия, постройте опоры на воде, чтобы пересечь океаны.
- Проектируйте сложные многоуровневые перекрестки, чтобы оптимизировать вашу железнодорожную систему.

Качество - FFF-375

Обеспечьте высокий уровень качества всех ваших предметов, машин и оборудования.
- Каждый предмет, сущность и снаряжение имеют 5 возможных качеств: от обычного до легендарного!
- Исследуйте новые модули качества, используйте их для создания более качественных предметов и промежуточных продуктов.
- Каждый уровень качества дает больший бонус: машины работают быстрее, оборудование мощнее, турели имеют большую дальность и т. д.

И дальше...

На этом путешествие не заканчивается, в Factorio: Space Age вас ждет еще много интересного, и еще многое предстоит раскрыть:
- Музыка космической эры - каждая новая планета сопровождается уникальным саундтреком чешского композитора Петра Вайсара - FFF-406
- Новые враги и средства защиты. Некоторые новые планеты населены уникальными и опасными существами, от которых вам придется защищаться.
- Загадочная 5-я планета — обещает самый уникальный геймплей, но она остается окутанной тайной. Это самая дальняя планета от солнца, поэтому она темная и холодная.

Факторио 2.0

Но это еще не все. Factorio: Space Age также совпадет с выпуском Factorio версии 2.0, которая будет бесплатным обновлением для всех пользователей.
Версия 2.0 имеет широкий спектр игровых изменений и улучшений:
- Более умные рабочие роботы - FFF-374
- Новые рельсы - FFF-377
- Удаленный просмотр - FFF-380
- Улучшения комбинаторной и схемной сети - FFF-384 , FFF-405
- Улучшения управления поездом - FFF-389 , FFF-395
- Новая жидкостная система - FFF-416
- Переработанная генерация ландшафта Nauvis - FFF-401
И еще больше, каждую новую неделю!

Получайте последние обновления

Если вы хотите быть в курсе последних новостей, обязательно посетите наш еженедельный блог о разработке или подпишитесь на нашу рассылку .
Вы также можете добавить дополнение Factorio: Space Age в список желаний в Steam , чтобы получить уведомление о его выходе.
,Factorio,Игры,Factorio Dev Diary
Привет!
Берите с собой лучшую смазку, потому что пришло время поговорить о жидкостях!

Переломный момент

Ни для кого не секрет, что гибкая система Factorio непредсказуема, не интуитивна и порой разочаровывает. Пропускная способность трубы уменьшается с расстоянием с непостоянной скоростью, поэтому единственный способ достоверно узнать, сколько жидкости вы можете протолкнуть через трубу, — это обратиться к таблице на вики . Кроме того, пропускная способность может варьироваться в зависимости от порядка построения труб. Играть с этой системой крайне неудобно.
Было много попыток переписать жидкостную систему, но все они по той или иной причине закончились неудачей. Существующий алгоритм довольно быстр и достаточно хорошо работает для стандартного ванильного игрового процесса, и мы постарались его не трогать, насколько это возможно. Однако во время тестирования Space Age стало ясно, что существующая система больше не справляется со своей задачей. Масштабирование производства, обеспечиваемое новыми машинами и качеством, поставило алгоритм потока на колени.
Почему это не работает!?
Пытаясь избежать полной перезаписи, мы сначала попробовали увеличить пропускную способность за счет увеличения объема канала. Это «решило» основную проблему низкой пропускной способности за счет значительного увеличения размеров буфера. Резервуары для хранения стали практически бесполезными, а оборонительные стены с огнеметными турелями вбирали десятки тысяч единиц жидкости, высасывая базы досуха. В конечном итоге мы не смогли прийти к соглашению о том, как действовать; переписывание было сочтено слишком сложным, но ни у кого не было идей получше. Вопрос был вновь отложен на потом.
Я был крайне недоволен этим выводом. Трюк с увеличенной емкостью был скорее костылем, позволяющим скрыть проблему, чем четко сформулированным решением. Поскольку проще попросить прощения, чем разрешения, я рискнул и начал переписывать систему жидкости сам.

Новый алгоритм

Во время одного из обсуждений жидкостей Рсединг предложил алгоритм, очень близкий к тому, с которым он играл несколько раз, — алгоритм из мода Minecraft Thermal Expansion от команды CoFH:
Трубы(в том числе и подземные) и резервуары для хранения объединены в жидкостные «сегменты».
- Каждый сегмент наследует свой объем от составляющих его ячеек для жидкости и может содержать одну жидкость.
- Машины могут подавать жидкость в сегмент с неограниченной скоростью и могут забирать жидкость из сегмента со скоростью, пропорциональной тому, насколько заполнен сегмент. Другими словами, если сегмент заполнен наполовину, то скорость вытягивания равна половине максимальной.
- В частном случае насосы могут работать с большей скоростью, если они подключены непосредственно к резервуару для хранения.
Больше нет реалистичного «течения» жидкости по трубам; жидкость, подаваемая в сегмент, будет немедленно доступна в любой точке сегмента. Это «решение типа ядерной электрической сети», которое обсуждалось в предыдущих FFF. В результате каналы «просто работают», и вам практически не придется беспокоиться о пропускной способности.
It just works™

Демонстрации

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

Длинные трубопроводы

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

Развязки

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

Входное голодание

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

Насосы

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

Расстановки для эндшпиля

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

Веселье важнее реализма

Новая система представляет собой довольно большой шаг назад с точки зрения «реализма» моделирования жидкости в Factorio. Но как гейм-дизайнеру вам всегда приходится искать компромисс между тем, что имеет смысл в реальном мире, и тем, что интересно для игры. Сборка машин отвлекает от огромного объема работы, которая уходит на реальную автоматизацию, и помещает ее в аккуратную маленькую коробочку. Аналогичным образом, новая система жидкости обеспечивает поведение, которое вы ожидаете от трубопровода, абстрагируя при этом все детали реального потока жидкости.
Это очень интересная система для игры. Эта система открывает много интересных возможностей, которые мы не предсказывали, и некоторыми из наших историй мы поделимся в будущих FFF. Я также могу подробно рассказать об архитектуре этой новой системы и о том, как я подошел к рефакторингу, в другой раз.
Есть несколько деталей, над которыми еще предстоит работать, но в целом новая система работает очень хорошо. Мы не можем дождаться, когда вы это протестируете!
,Factorio Dev Diary,Factorio,Игры
Здравствуйте!
Несмотря на то, что при разработке версии 2.0 много времени было потрачено на новые функции и качество жизни, мы по-прежнему заботимся о мелких деталях и технических улучшениях.

Детерминированная многопоточность — это сложно

Недавно нам сообщили об ошибке рассинхронизации, связанной с API моддинга и несколькими компьютерами под управлением Windows и Linux, которые использовал игрок. Моим первым инстинктом было обвинить разработчика мода в том, что он сделал что-то не так, но за эти годы я видел достаточно отчетов об ошибках, чтобы знать, что отклонять один из них без предварительного расследования — плохая идея и отличный способ сесть в лужу.
Воспроизвести рассинхронизацию мне не удалось, но плеер смог с легкостью. Сначала я подумал, что это проблема Windows и Linux (у нас было много таких), но потом плеер смог воспроизвести ее с Linux на обоих компьютерах. Затем я подумал, что это аппаратная проблема: мы видели немало неисправных компьютеров, которые просто не делают того, что должны. Убедить кого-то, что его оборудование сломано, сложно и в лучшем случае отнимает много времени.
После нескольких неудачных попыток воспроизвести проблему на моем одном компьютере Боскид, используя несколько своих компьютеров, смог это сделать. Я думаю, что возможность воспроизводить ошибки локально занимает около 90-95% времени, потраченного на исправление обнаруженных ошибок. Воспроизведя проблему по требованию, Боскид смог сузить ее до того факта, что компьютеры имели разное количество ядер ЦП. Благодаря этим новообретенным знаниям он смог провести тест, который можно было запустить на моем единственном компьютере, чтобы воспроизвести рассинхронизацию, искусственно притворившись, что у меня меньше ядер процессора, чем на самом деле.
В конечном итоге проблема заключалась в том, что нужно было собрать вместе 4 разных движущихся части, чтобы выявить проблему детерминизма потоков, которая присутствовала в игре с тех пор, как я добавил ее туда 22 июля 2017 года.
1) Моду необходимо было прослушивать событие, генерируемое чанком, и менять тайлы на чанке, когда оно происходило.
2) Моду необходимо было запросить создание нескольких фрагментов.
3) Моду необходимо было принудительно сгенерировать все запрошенные фрагменты прямо сейчас .
4) Игру необходимо было запустить на двух компьютерах с разным количеством ядер процессора.
Логика генерации фрагментов «прямо сейчас» будет пытаться использовать все доступные ядра ЦП, но это было сделано таким образом, что количество ядер - в сочетании с другими движущимися частями - слегка меняло результаты генерации фрагментов.
Исправление оказалось не таким уж сложным в реализации, и оно появится в версии 2.0, но оно просто показывает, что многопоточность — это сложная задача, а детерминированная многопоточность тем более.

Многопользовательская игра с автопаузой

У нас есть особенность выделенных серверов: когда последний игрок отключается, сервер автоматически приостанавливается. Это прекрасно работает и означает, что вы можете оставить выделенный сервер включенным, не беспокоясь о том, что кусаки съедят вашу базу, когда вы уйдете. За исключением некоторых крайних случаев, с которыми нам так и не удалось справиться (до сих пор).
Случай 1: Когда вы присоединяетесь к автоматически приостановленному серверу, он мгновенно возобновляет работу, даже если вы не полностью загрузились в игру. Оказывается, решить эту проблему было невероятно просто, но по какой-то причине с годами она не ушла в прошлое. В версии 2.0 автоматически приостановленные серверы будут оставаться приостановленными до тех пор, пока хотя бы один игрок полностью не загрузится в игру.
Случай 2: Присоединяющимся игрокам необходимо не отставать от текущей игры. Это отлично работает для «обычных» игр и позволяет существующим игрокам продолжать игру, не дожидаясь присоединения игроков. Но игроки сталкиваются с проблемами, связанными с гораздо большими картами или медленным подключением к Интернету. Для присоединения кого-либо может потребоваться 1, 2 или несколько минут, чтобы загрузиться и полностью подключиться к серверу. В версии 2.0 мы добавили опцию «автоматическая пауза, когда игрок присоединяется», которая работает именно так, как указано.

Более быстрые задачи строительных роботов

Такое ощущение, что каждую неделю кто-то спрашивает: «Почему мои строительные роботы не работают?» и на скриншоте, который они предоставляют, есть небольшое предупреждение, показывающее «600 рабочих мест, не хватает материалов/роботов». Эта проблема существовала с самого начала появления роботов, и до сих пор у нас нет хорошего решения для нее.
Проблема в том, что, учитывая задачу, которую должны выполнить роботы-конструкторы, игре необходимо найти лучшего робота из логистической сети, который находится в пределах досягаемости, чтобы выполнить эту задачу. Проверка того, находится ли эта логистическая сеть в радиусе действия объекта, равна O(Roboport-Count). Мы не контролируем, насколько медленным это будет, потому что игрок может построить 1 Робопорт, или 100 000, или столько, сколько сможет вместить его компьютер. Поэтому нам нужно убедиться, что эта операция не приводит к остановке игры во время ее работы. Мы делаем это, обрабатывая всего несколько задач строительных роботов за каждый такт.
В версии 1.1 игра будет проверять строительные работы 3 раза за каждое обновление. Если ему не удастся найти робота, он остановится для текущего обновления. Оповещения о неудачных попытках длятся 10 секунд. Таким образом, при 60 обновлениях в секунду и 10 секундах на каждое оповещение это означает, что будет создано 600 оповещений до истечения срока действия первого. Вот откуда берется волшебное количество предупреждений «600 рабочих мест, не хватает материалов/роботов».
Так работало с тех пор, как я работал над Factorio, и, скорее всего, так будет продолжаться на каком-то базовом уровне. Мы не можем просто увеличивать количество задач, проверяемых при каждом обновлении, потому что знаем, что работа потенциально замедлится тем больше, чем больше робопортов строит игрок.
Ранее в этом году кто-то ( сообщение на форуме ) снова столкнулся с этой проблемой, но решил «решить» ее самостоятельно, сделав то, что, как мы сказали, мы не можем сделать: «запустить проверенные задачи для каждого обновления», за исключением того, что они перешли с 1 на каждое обновление. до 374. Также построено 36 815 роботопортов. Как и предполагалось, это было медленно.
Но это заставило меня задуматься: а что, если бы я мог сделать медленную часть намного быстрее ? Хотите быстрее изменить алгоритм? Вдохновение пришло ко мне, когда я вспомнил, что в игре уже есть набор логики, позволяющей взять зоны логистики и строительства роботопорта и вычислить полученное объединение прямоугольников. Проще говоря, он создает красивый набор дедуплицированных прямоугольников, которые покрывают общую площадь всех роботопортов. Мы используем это для рендеринга, чтобы избежать перерисовки, когда роботопорты находятся рядом друг с другом.
Это, в сочетании с сортировкой полученных прямоугольников, означало, что я мог выполнить простой двоичный поиск, чтобы проверить, находится ли данная задача в пределах сети. В конце концов проверка изменилась с O(N) на 36 815 роботопортах до O(N) на 900~ прямоугольных объединенных областях и до O(logN) на 900~ прямоугольных объединенных областях.
Время проверки «есть ли оно в этой сети» из дорогого превратилось в практически незаметное. Благодаря этому ускорению я смог увеличить скорость проверки задач для версии 2.0 и, надеюсь, решить эту проблему.
Как всегда, сообщайте свои мысли в привычных местах.
Форум Редит
,Factorio,Игры,Factorio Dev Diary
Привет! На прошлой неделе вы видели, как выглядит Глеба, а теперь пора узнать, что там можно делать.
Так как это биологическая планета, полная жизни, логично ожидать, что наш инженер собирается что-то с этого собрать.
У нас уже есть способы сбора природных ресурсов, в частности деревьев. На Нависе мы либо просто рубим их топором, либо позже наши строительные роботы проведут маленький миролюбивый экстерминатус леса.
Фрукты обрабатываются на сборочной машине, в результате чего получаются семена и пюре.
Однако эти инструменты не совсем готовы к тому, чтобы стать частью цепочки массового производства на наших заводах...
Оба метода Наувиса запускаются вручную, поэтому они не являются лучшими для автоматизации. Да и деревья не вырастают снова, поэтому после того, как участок был вырублен, вам нужно  переходить на следующий.

Агрикультурная башня

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

Биокамера

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

Порча

Все это время вы, вероятно, задаетесь вопросом (или уже публикуете комент об этом, не дочитав до конца), что за странные белые линии на изображениях выше.
Теперь мы подходим к тому, что делает Глебу по-настоящему особенной. Когда фрукты собираются или большинство других биологических продуктов производится, они со временем портятся, превращаясь в новый предмет, который мы называем Порча.
,Factorio,Игры,Factorio Dev Diary
Этот процесс неизбежен и не может быть отложен, однако время порчи разных предметов разное: от примерно 2 часов до нескольких минут. Это означает, что есть способы контролировать механику и оптимизировать ее, чтобы в конечном итоге получить менее испорченный продукт.
Органические предметы со временем превращаются в порчу.
Причина, по которой вы оптимизируете продукт для лучшего качества, заключается в том, что результаты рецептов наследуют свежесть ингредиентов. Это означает, что если вы создадите продукт из испорченного на 30% ингредиента, продукт также будет испорчен на 30%.
Свежий салат из заплесневелой капусты сделать не выйдет.
По сути, портимые предметы следует воспринимать как временные, и и здесь начинает быть важна пропускная способность, тогда как буферизация запасов, напротив, совершенно бесполезна.
Когда мы рассматривали идею ограниченного срока жизни предметов, одним из первых вопросов было, должны ли они просто исчезнуть или превратиться во что-то. Если бы они просто исчезли, это было бы удобнее, так как вам не нужно было бы беспокоиться о грудах порчи, которые неизбежно накапливаются, но вы бы не знали, что что-то испортилось, поскольку не было бы никаких следов этого.
Вот почему существует порча, и у нас есть несколько способов избавиться от нее: вы можете сжечь ее, отправить в переработку или создать питательные вещества, которые уже наполовину испорчены.
Три примера избавления от порчи.
Чтобы эта механика не была чрезмерной и позволяла принимать осмысленные решения, есть некоторые предметы, свежесть которых не влияет на конечный продукт, поскольку конечный продукт не портится. С другой стороны, новые пакеты сельскохозяйственной науки портятся, что снижает их ценность для исследований, поэтому у вас будет стимул попытаться принести домой самые свежие научные пакеты, какие только сможете.
,Factorio,Игры,Factorio Dev Diary
Есть некоторые предметы и рецепты с портящимися ингредиентами, которые необходимо создавать на разных планетах, поэтому помимо оптимизации производственной цепочки также будет иметь смысл создать быструю космическую платформу для их доставки.
Основными инструментами для управления испорченными предметами являются устройства для вставки с новой возможностью определять приоритетность самых свежих или наиболее испорченных предметов при сборе из инвентаря и фильтровать порчу с помощью разделителей.

Дизайнерское путешествие

За время разработки игрового процесса на Глебе, мы прошли через значительные изменения.
Изначально у нас было около 10 растений, которые сразу превращались в предметы вроде пластика или серы, но это оказалось слишком поверхностным, а также утомительным. Стоит отметить, что это было не очень интересно, так как напоминало работу буровой установки. Вместо этого мы сократили количество до двух культивируемых растений, а их плоды перерабатываются в гораздо более широкий ассортимент предметов - и в гораздо больших объемах - что вернуло ощущение строительства фабрики в привычном и любимом нами стиле.
Семена полезны не только для новых растений, но и для создания биокамер и засеиваемых почвенных клеток, так что тебе предстоит решить, куда их лучше вложить.

Заключение

В общем, мы уверены, что игровой процесс «Глебы» достаточно разный, чтобы быть интересным, но в то же время основан на достаточно схожих принципах, чтобы казаться знакомым и даже веселым!
Визуальные эффекты по-прежнему могут быть изменены вместе с улучшениями некоторых эффектов. Графика новых машин, которую вы можете увидеть здесь, исходит в основном от нашего обычного подозреваемого Эарендела в области концепт-арта, а Ежи отвечает за 3D-конвейер. Агрикультурная башня имеет очень длинную телескопическую стрелу, намного длиннее, чем любые другие ноги или руки, поэтому ее изготовление было очень технически сложным, как для Ежи, так и для Лу, ломающего себе голову кодом рисования. Биокамера была более простой, но Ежи отлично провел время со своими сумасшедшими симуляциями геометрических узлов.
Есть еще много деталей, которыми можно поделиться, но их будет легче усвоить, когда игра будет у вас в руках и/или в каком-нибудь более позднем FFF.
Как всегда, вынесите свою полуиспорченную рыбку на рынок мнений:
Форум Редит
Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме (+121 постов - )