Пятничные факты #290 – Изменения в строительстве жд и иконки высокого разрешения

Spread the love

опубликовали kovarex, Albert

Изменения в строительстве жд kovarex

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

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

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

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

Отныне вместо 3 режимов (строительство вручную,  призраками, призраками + удаление деревьев / камней) у нас есть только 2 режима, в которых постройка призраков без деконструкции препятствий больше не доступна. Таким образом, больше не имеет значения, как вы начинаете строить, просто важно, удерживаете ли вы shift или нет в данный момент, что делает его совместимым с обычным строением сущности и иконкой-призраком.

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

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

Иконки высокого разрешения Albert

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

Это не идеальное решение, потому что мы используем одинаковый набор иконок в графическом интерфейсе и во всем мире. Это означает, что уровень масштабирования в игре может масштабировать их до 25%, поэтому мы теряем практически весь контроль над растровыми изображениями и ухудшаем их читаемость. Теперь с возможностями высокого разрешения новой системы графического интерфейса нам нужно удвоить размер растрового изображения, поэтому исходные значки должны иметь размер 64 пикселя, чтобы обеспечить правильную визуализацию в масштабе 200% графического интерфейса. Мы все еще используем их в мире, поэтому система может их масштабировать до 9,55%. Количество неконтролируемых пикселей теперь намного серьезнее.

Unisize vs Mipmap

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

Порадуйте себя этим значком теста, расположенным на конвейера Размер 64x64px, каждый квадрат 8px. С его помощью вы можете увидеть, насколько экстремальным может стать изменение размера:

От максимального уровня масштабирования 3,053 = 76,325% размера значка.
Для минимального уровня масштабирования 0,382 = 9,55% размера значка.
Чтобы решить проблему с тем, чтобы она работала во всех ситуациях, мы разрабатываем иконки очень синтетическим способом. Мы упрощаем форму до ее самого чистого значения, как в случае со сборочными машинами, где 1 передача + цвет обозначает уровень 1, 2 передачи означают уровень 2 и т. Д.

Это решение работает, но у нас есть много иконок (~ 355), и многие из них очень сложны по форме и / или значению. В некоторых случаях эта сложность является существенной во время проектирования иконки, особенно объектов, поэтому нам нужно найти правильный синтез для каждой иконки, как мы это делали со сборочными машинами. Они отлично работают при любом уровне масштабирования, даже при 128px. Но с другими объектами, такими как большой электрический столб, сложнее поддерживать этот уровень минимализма из-за того, что сама форма уже сложна по своей сути. Если мы сделаем это менее сложным, мы не сможем его больше узнать.

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

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

Как всегда, дайте нам знать, что вы думаете на нашем форуме.


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