Блог розробників (FFF#279) – Інтерфейс поїздів і сучасний Плювака

Поделиться

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

Мотивація FFF  (kovarex)

П’ятничні факти цього тижня є хорошим прикладом того, як вони служать не тільки для інформування спільноти, а й допомагають нам розділити роботу на більш дрібні шматки з індивідуальними термінами. Так як в цю п’ятницю були заплановані факти про графічному інтерфейсі поїзда, нам довелося докласти особливих зусиль для завершення всього, щоб його можна було не соромно уявити, і ми зможемо перейти до іншого завданням, і 0,17 прийде в розумний час :).

Інтерфейс поїздів (kovarex)

Ми представили план і макети для інтерфейсу досить давно в FFF-212.З тих пір багато чого змінилося, остаточний стиль і правила графічного інтерфейсу тепер інші, і ми також повторили його UX. Але основна загальна ідея макета залишилася.

Розклад поїздів являє собою один великий список з усіма видимими станціями і умовами, тому вам не потрібно натискати на список окремих станцій, щоб побачити умови.

Натисніть і перетягніть

Раніше, станції і умови були додані після поточної обраної станції / умови. Оскільки вибору зараз немає, ви просто завжди додаєте в кінець. Зміна порядку станцій / умов здійснюється перетягуванням. Перетягування було можливо і в версії зі списком, але це була досить прихована функція, оскільки це було єдине вікно зі списком у всій грі, яке дозволяло це, і не було візуальної індикації цієї функціональності.

Ми також вважаємо, що візуальна зворотний зв’язок реорганізації тепер краще, ніж раніше.

Візуалізація стану очікування

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

Питання в тому, як розрахувати частку заповнення для окремих типів умов очікування?

  • Минулий час – найбільш очевидне, оскільки відомо, скільки часу поїзд провів на станції і скільки ще залишилося.
  • Час бездіяльності – також просто, схоже на минулий час.
  • Інвентар заповнений – ми можемо розрахувати наповненість окремих вантажних вагонів і усереднити її.
  • Інвентар порожній – просто (1 – дріб повна) 🙂
  • Кількість предметів – Тут це стає складно. Якщо компаратор> (більше) або ≥ (більше або дорівнює), ми просто обчислюємо суму цього елемента і ділимо її на ціль. Якщо компаратором є щось ще, я не можу показати прогрес. Я знаю, як далеко я від мети, але я не знаю, з чим її порівнювати, тому в цьому випадку ми просто показуємо, або не завершено, або повністю завершено.
  • Стан рідини – в основному той же, що і кількість предметів.
  • Логічне стан – тут ми просто нічого не показуємо або не відображаємо повністю, тому що не можемо знати.

Результат досить хороший для простих випадків:

А в більш складних випадках це може бути відмінним інструментом для швидкого виявлення проблеми:

Тимчасові станції

Друга найбільш бажана особливість – тимчасові станції. Основною мотивацією для них є використання поїздів для особистого транспорту. Коли я хочу зробити це зараз, я повинен:

  • Відкрити карту і знайти, куди я хочу піти, і знайти найближчу станцію.
  • Запам’ятати назву станції.
  • Ввести локомотив і додайте цю станцію (шляхом пошуку за списком) в розклад.
  • Підтвердити випадкове умова очікування.
  • Натиснути кнопку «перейти на станцію».
  • Коли він туди потрапить, знову видалити станцію з розкладу.

З тимчасової підтримкою станції я роблю наступне:

  • Вводжу локомотив і знаходжу місце, куди я хочу піти прямо в попередньому перегляді карти.
  • Ctrl + клік найближчій залізниці / станції.

Використовуючи контрольний клацання, ви виберете найближчу станцію або навіть просто залізницю і встановіть її в якості мети тимчасової станції. Завдяки цій дії тимчасова станція додається перед поточної метою (якщо така є) і отримує наказ їхати туди. Як тільки мета досягнута, станція автоматично видаляється з розкладу, і поїзд продовжить рух до мети, до якої він прямував, перш ніж додати тимчасову станцію.

Це означає, що я можу недбало викрасти будь-який потяг, що проходить повз, для мого особистого подорожі, так як він продовжить свій розклад, як тільки я закінчу з ним. Це також додає деякі можливості, коли мені потрібно відправляти поїзд з ресурсів в плавку і склади і т.д.

Сучасний Плювака (Ernestas, Albert)

На анімації нижче ви можете побачити нового Плюваку з високою роздільною здатністю, що проходить 3 рівня. Як ви можете бачити, ми скористалися можливістю попрацювати трохи по тій же концепції, що і раніше, але інтегрували деякі нові деталі, які, на мій погляд, роблять їх більш цікавими.

Примітка: кольори не обов’язково остаточні.

Ми тримаємо модульну оболонку як і з Кусак. Також для зручності з кольоровим відтінком. Точно так же, як сучасний Кусака наближається до концепції павука, Плюваки більше схожі на мокриць або на маленьку багатоніжку. Справа в гнучкості під час стрілянини, також вони стріляють здалеку від мети, тому немає необхідності виглядати особливо сильним або спритним.

«Класичний» дизайн Плювак заснований на ідеї, що вони стріляють з деякою висоти, щоб обійти стіни вашого заводу своїми кислотними бризками. Це хороша концепція, але під час ходьби не має сенсу продовжувати вставати. Ось чому ми скористалися можливістю поліпшити цю функцію і розділили режими Плевако на дві частини: ходьба і стрілянина.
Тепер при стрільбі вони встають, як і раніше, але для ходьби використовують всі ноги.

Ми також додали цей великий рот з зубами, які відкриваються і закриваються при плювок. Решта просто весело виглядає. Ми також були з Вацлавом у них на шляху, коли вони плювали …

Потокова атака Черв’яків і Плювак (V453000)

З новими хробаками з високою роздільною здатністю (а тепер і Плювак) їх снаряди стали виглядати ще більш недоречно, ніж раніше. Крім того, самонавідний кислотний снаряд має такий же зміст, як і самонавідних лазерний промінь. Ми були абсолютно впевнені, що хочемо, щоб черв’яки і Плювак плювали кислотою, але ближче до того, як веде себе «потоковая атака» вогнемета, тому ми почали з цього.

Хоча візуально це має набагато кращий сенс, а кислота виглядає набагато краще завдяки роботі Домініка (з банди GFX, а не з бригади програмістів) і Ернестаса, потік кислоти має зворотну сторону – її можна легко уникнути. Насправді, поки ви продовжуєте рухатися, потік ніколи не вдаряє вас. Тому ми додали прогнозуюче націлювання на потоки – щоб черв’яки, Плюваки і вогнемети могли вражати ціль, якщо вона не змінює напрямок. Гравець все ще може ухилитися від них, якщо він спробує, але з великою кількістю черв’яків стає набагато складніше.

Коли мета занадто швидка і / або прогнозована позиція виходить за межі діапазону, прогнозування відключається. Ми, ймовірно, налаштуємо це так, щоб прогноз намагався наблизитися до межі свого діапазону, наскільки це можливо. У якийсь момент навіть самонавідні снаряди з 0.16 промахуються, так що це не велика різниця, хоча поріг, ймовірно, настане трохи раніше.

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

Щоб зробити ефект менш бінарним (повільним / швидким), ми додали звужується уповільнення – спочатку воно застосовує велику уповільнення, але ефект лінійно зменшується протягом декількох секунд, поки не зникне повністю.

Усі хробаки мають досить велику потокову атаку, яка завдає шкоди більш ніж одному будинку, якщо вони знаходяться поруч один з одним. Плюваки, менші ніж бегемот, не володіють цією здатністю.

Деякі деталі і цифри все ще опрацьовуються, але з усіма цими змінами має бути веселіше атакувати бази. Якщо ви не фанат «бойових танців», ви завжди можете просто вкласти трохи більше в військові технології і перемогти за допомогою грубої сили.

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


Поделиться

Comments: