Пятничные факты #344 — Переходы между клетками и рекорд Team Steelaxe

опубликовали Klonan, Bilka

Переходы между клетками Klonan

Мы впервые упомянули изменение в нашей логике перехода плиток в FFF-199, и в FFF-214. Эти два поста были сосредоточены больше на визуальной стороне, и на том, как игровой ландшафт выглядит намного лучше.

Короче говоря, логика перехода накладывает дополнительный спрайт на соседние элементы, так что там, где эти две клетки встречаются, выглядит намного более естественным.

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

Теперь некоторые из вас будут знать, что кусаки не знают, как преодолеть эти  разрывы клеток. Это потому, что мы никогда не позволяли кусакам использовать эту логику проверки столкновений. Одна из причин заключается в том, что большее количество проверок означает большее использование UPS для точного поиска путей, а другая в том, что мы не думали, что это необходимо Однако он был доступен в движке, и любой мод мог включить его при желании. Именно это я и сделал в моде Mining Drones. Первоначально это, казалось, сработало, и я подумал, что это может заставить их ходить по озерам немного более естественно (как это делает игрок).

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

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

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

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

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

Эта игра слишком короткая, я хочу вернуть свои деньги! Bilka

В эту среду Team Steelaxe установили новый мировой рекорд скорости многопользовательской игры за 1 час 15 минут 21 секунду. Это самая быстрая из всех, кто когда-либо запускал ракеты в игре без модов.

Я являюсь частью команды Steelaxe, поэтому я хочу воспользоваться возможностью, чтобы объяснить, как нам удалось так быстро пройти игру. В целом, это все о планировании и подготовке, мы оцениваем, что мы вложили 200 часов в планирование только для этого запуска. Категория Any% позволяет изменить все параметры генерации карты, включая отключение врагов. Многопользовательские подкатегории позволяют разместить до восьми игроков. Планирование начинается с выбора карты. Поскольку существует много возможных карт на выбор, мы позволяем сценарию генерировать карты и автоматически отфильтровывать карты без достаточного количества руды в стартовой области, а затем вручную выбирать их. С выбранной картой можно начать планирование базы. Это начинается с установки целевого времени для завершения игры и подсчета количества науки и количества необходимых ассемблеров. Затем мы собираемся вместе и устанавливаем базу на выбранной карте, которая будет служить ориентиром для фабрики. Следует отметить, что правила категории не разрешают импорт чертежей, поэтому вместо этого мы обычно сохраняем файл сохранения чертежи в другом окне или используем скриншоты во время выполнения.

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

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

В будущем мы надеемся, что сможем запустить ракету менее чем за час, вы можете посмотреть наши следующие попытки в воскресенье в 20:30 CEST на Twitch. На Speedrun.com/Factorio вы можете найти более 20 активных спидраннеров, такие ресурсы, как сохранение игр и повторов, или даже попробовать себя.

Comments: