Блог розробників (FFF#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.

Як завжди, дайте нам знати, що ви думаєте на нашому форумі.

 


Comments: