До всіх новин
Оновлення

Картинг: занос, звук мотора і власна траса

Карт отримав фізику з кутами відведення шин, ручник, нітро і синтезований звук двигуна. Навколо картингової зони прокладена ціла траса.
Гравець за кермом карта, вид збоку

У грі зʼявився картинг: карт із заносом, нітро і власною трасою. Це вже не просто поворот на колесах, а машина, яку потрібно вчитися водити.

Фізика замість простого повороту

Стару кінематичну модель, у якій натискання вліво просто повертало карт, замінила динамічна модель із кутами відведення шин. Вона дає недостатню поворотність на швидкості, кермо, чутливе до темпу, і ручник, реалізований як розмʼякшення задніх шин: задня вісь зривається в ковзання, і карт іде боком рівно настільки, наскільки його туди поставили.

Карт у заносі на трасі

Сам карт став у 1,75 раза довшим, колеса обертаються за фізикою, а не за анімацією, а на Shift працює нітро з обмеженням швидкості й поступовим спаданням. Перед першою поїздкою двигун потрібно завести. Зіткнення між картами теж прораховуються за габаритами, тому притертися в повороті можна, а проїхати крізь суперника — ні.

Звук двигуна і шин

Записів справжнього двигуна поки немає, тому звук синтезується у Web Audio. Найскладнішими виявилися шини: білий шум читався як вітер, а не як гума. Тому шина відтворюється тоном на частоті протектора з резонаторами, які відстежують швидкість, із зачепом на вході в занос, переривчастим звуком на межі зчеплення і затуханням після відпускання. Двигун при цьому притишується під вереском шин.

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

Траса

Навколо картингової зони прокладена ціла траса. Її побудовано від осьової лінії в тому ж стилі, який був виміряний з ділянки, викладеної вручну. Для цього редактор мап навчився ставити й прибирати огорожі пензлем.

Мапа картингової траси з озерами

Пізня відповідь сервера і стрибок карта

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

Карт на швидкості на трасі

Тепер стан від сервера звіряється з нещодавньою історією власного розрахунку: стан, через який карт справді проходив, вважається відповіддю, що прийшла із запізненням, і виправляється лише залишок після звірки. Заміри показують, що три секунди руху з нітро при затримці 160 мілісекунд дають залишок менше 20 сантиметрів і жодного стрибка, тоді як стара схема тримала близько трьох метрів.

Також цього тижня

Мʼяч футбольного поля більше не виходить за його межі. Периметр поля став непрохідним для мʼячів в обидва боки: мʼяч поля зʼявляється на центральній позначці й не покидає поле ні через паркан, ні через відчинену хвіртку, а мʼячі з площі не можуть закотитися всередину. Гравців, каменів і курей це обмеження не стосується.

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

Читайте також

Оновлення

Машини у відкритому світі, системні зони і оптимізація рушія

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