На Reddit геймер спросил, как Беннет Фодди создал механику кувалды в Getting Over It. К неожиданности для всех в комментарии пришел сам Фодди. Он не только поделился подробностями, которые смог вспомнить, но и даже предоставил кусочек кода, шокировав геймеров своей открытостью.
По словам разработчика, никакой «магии» в механике нет. Инверсная кинематика отвечает только за визуальную часть, а само движение построено на двух физических соединениях — шарнире и слайдере с моторами, которые управляются через простой PD-контроллер. Именно они создают ощущение работы кувалды. При этом Фодди признался, что основная сложность была вовсе не в коде, а в бесконечной настройке физических параметров. Сила моторов, массы объектов, демпфирование, материалы, кривые отклика управления — все это он подбирал буквально днями, проверяя десятки сценариев. Например, ему было важно, чтобы герой мог спокойно висеть на кувалде, делать прыжки определенной высоты, плавно перелезать через препятствия и без лишних отскоков поднимать себя с земли.
Еще один интересный момент — в игре практически нет проверки состояний вроде «стоит ли персонаж на земле». Такая логика используется только для звуков и эффектов частиц. Сама физика работает исключительно за счет двух моторов и ограничений тел. По словам Фодди, чем меньше в физической игре специальных исключений и «костылей», тем лучше получается результат.
Но больше всего пользователей удивило другое. Разработчик выложил часть функции FixedUpdate, управляющей персонажем, и честно признался, что код получился далеко не образцовым. В нем осталось множество следов бесконечных экспериментов: коэффициенты, умножения на ноль, странные степени и другие артефакты многомесячной настройки.
«Красивого кода таким способом не получается. Честно говоря, на него даже немного стыдно смотреть. Наверное, после завершения работы стоило бы его переписать… но я так этого и не сделал», — признался Фодди.
В комментариях восхищаются открытость Фодди и шутят, что он максимально базирован: «Это просто уму непостижимо, лол. «Как Беннетт Фодди придумал эту механику?» «Привет, я Беннетт Фодди, вот описание настройки и всей функции обновления».
Источник: gameguru.ru