,Factorio,Игры,Factorio Dev Diary
Здравствуйте!
Сегодня у нас для вас еще одна интересная порция фактов.

Повторы(StrangePan)

Возможность повтора действий требовалась с тех пор, как мы добавили функцию отмены. Добавление Redo(повтор) было одним из моих первых проектов в Wube, о котором я очень рад объявить уже давно. Теперь в дополнение к использованию CTRL+Z (или ⌘Z) для отмены порядка сборки, деконструкции или обновления вы можете использовать CTRL+Y (или ⌘⇧Z) для повторной отправки ранее отмененного заказа. Вы также можете использовать новый ярлык повтора на панели быстрого доступа. Это работает именно так, как вы ожидаете.
,Factorio,Игры,Factorio Dev Diary
Новый ярлык «Повторить» загорается, когда нужно что-то переделать, и отключается, когда переделывать нечего.

Отменить информацию и подтверждение(StrangePan)

Одна вещь, которая часто очень раздражает и разрушительна, — это отмена действий (иногда случайно). Либо отмена чего-то, что было сделано очень давно.
Для начала мы добавили всплывающее текстовое уведомление, которое появляется при использовании горячей клавиши отмены. Это дает вам некоторое представление о том, какого черта вы только что сделали.
Undo deconstruction of 33 entities Undo construction of ei ~ Substation Undo deconstruction of Substation Undo construction of Small electric pole,Factorio,Игры,Factorio Dev Diary
Кроме того, при попытке отменить действие, произошедшее более нескольких минут назад, появляется всплывающее диалоговое окно подтверждения. Чтобы по-настоящему объединить все это, Генхис добавил потрясающий визуальный предварительный просмотр, который показывает объекты, которые будут затронуты, выделяя объекты, которые нужно деконструировать, и показывая призраки объектов, которые нужно построить.
Еще одна вещь, которую мы обнаружили во время нашего игрового тестирования, — это то, что легко забыть, что у вас было в стеке отмены. Это особенно актуально в Space Age, где игроки постоянно используют Remote View, чтобы прыгать между планетами и космическими платформами. Поэтому мы добавили всплывающую подсказку к кнопкам быстрого доступа «Отменить» и «Повторить», которая точно описывает, что вы собираетесь отменить и на какой планете или космической платформе.

Отменить улучшения(StrangePan)

Отмена по своему общему назначению работает отлично, но есть одна серьезная проблема, которая остается на протяжении многих лет. Запись проекта и последующее использование «Отменить» на самом деле не отменяет все:
Рецепты, заданные чертежом, остаются.
- Созданные провода не удаляются.
- Вращения не восстанавливаются в прежнем направлении.
- Фильтры/запросы не отменяются.
Это представляет собой проблему, поскольку одна из аксиом отмены действий заключается в том, что «все, что вы сделаете, будет отменено». Очистка потерянного чертежа должна «просто работать» с отменой. Итак, приступим к работе.

Отменить проводное соединение

Боскид добавил возможность отменять проводные соединения. Если вы допустили ошибку, возясь с комбинаторами или линиями электропередачи, вы можете использовать команду «Отменить» и «Повторить», чтобы быстро вернуться в нужное русло.
При размещении чертежа созданные провода также добавляются к действию отмены, так что часть проблемы чертежа устраняется.

Отменить настройки объекта

Тобиас добавил возможность отмены настроек объекта. Когда вы используете SHIFT + щелчок правой кнопкой мыши, чтобы скопировать настройки объекта, и SHIFT + щелчок левой кнопкой мыши, чтобы вставить их в другой объект, это действие также помещается в стек отмены (и стека повтора).
Это также относится к настройкам, скопированным при размещении чертежа поверх объектов, поэтому еще одна проблема с чертежом исключена из списка.

Отменить поворот чертежей

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

Заключение

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

Задержка вождения автомобиля(Lou)

У любого, кто имел сомнительное удовольствие от вождения автомобиля в мультиплеере со значительной задержкой, наверняка после прочтения названия сердце участилось на 100мс :).
Для остальных позвольте мне описать проблему: объезжать препятствия в Factorio достаточно сложно, делать это с задержкой реакции вашего автомобиля на ваши действия еще сложнее, особенно если вы хотите ехать быстро (что обычно и является причиной для вождения в первую очередь).
Вождение в 1.1 с задержкой 30 тиков (500 мс при 60 ИБП). Клянусь, я был трезв.
Так что, буквально занимаясь слаломом на боевом танке, было бы неплохо не создавать ощущения, будто это происходит на катке, верно?
Основная идея такая же, как и у всех других функций сокрытия задержки — предсказать будущее состояние игры на основе доступной информации и показать игроку предсказанное состояние вместо текущего. Реакция на ввод мгновенная = задержка скрыта.
Хотя есть вещи, которые невозможно предсказать идеально (действия других игроков) или предсказать их было бы слишком дорого (взаимодействие с врагами, другими движущимися транспортными средствами (например, поездами), роботами, (де)конструирующими препятствия), базовое вождение казалось достаточно простым. - статические препятствия и состояние автомобиля. И на самом деле базовая реализация была достаточно простой.
Но, как мы привыкли шутить в офисе, «в Factorio нет ничего простого»; и это вдвойне важно, когда вы пытаетесь эффективно имитировать Factorio, чтобы скрыть задержку.
Вот некоторые из проблем:
Неверная оценка значений модификаторов скорости (топливо, местность, био-сопли(та самая желто-зеленая слизь из плевок червей, которую мы все так любим)).
- Проблемы со звуком — некоторые звуки не воспроизводятся, когда должны, другие воспроизводятся несколько раз, когда не должны.
- Проблемы с графикой — от простых, таких как неправильное отображение автомобильных фар, до неправильного создания гусениц и частиц выхлопных газов.
- Множество проблем с входом и выходом из машины при странных обстоятельствах.
- Проблемы с удаленным просмотром, редактором и переключением между ними.
- Интересная проблема, из-за которой расчеты урона для состояния игры и состояния задержки имели разный порядок действий, который почти всегда был эквивалентным, за исключением случаев нанесения очень небольшого урона сущности с очень небольшим количеством оставшегося здоровья (из-за ошибок округления).Именно это и происходит, когда вы пытаетесь разрушить препятствие, толкая (а еще лучше поворачивая неподвижный танк)
- Множество мелких проблем: выбор скрытой машины с задержкой, скрытие скрытой машины с задержкой, не перемещаемой ремнями. Взаимодействие с еще не опубликованной механикой, расположение экрана при отключении скрытия задержки из-за боя и т. д.
Хотя можно было бы ожидать, что некоторые недостатки прогнозирования будут едва заметными, к сожалению, это не так из-за того, как мы обрабатываем определенные аспекты сокрытия задержки.
Ошибка, из-за которой начальная скорость введенного транспортного средства не учитывалась правильно (задержка 60 тиков). (Призрачная/прозрачная визуализация состояния автомобиля в игре является опцией отладки).
Ошибка, из-за которой транспортное средство не двигалось ремнями с задержкой (задержка 30 тиков).

Задержка одномоментных эффекты

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

Результат

Вождение в текущей версии с задержкой 30 тиков (500 мс с 60 ИБП).
Как вы можете увидеть на видео, результат заключается в том, что задержка практически не ощущается для большинства рядовых целей и задач.
Как всегда, переведите свои мысли в привычные места:
Форум Редит