tgoop.com/logofalprog/226
Last Update:
Roblox, VR и немного HL:Alyx
В декабре недельку поковырял программирование Roblox под VR. Давайте расскажу немного про впечатления.
Началось всё с того, что около года назад у меня значительно расширился состав шведских полуродственников, среди которых оказался в том числе и фанат роблокса соответствующего возраста. Чтобы впечатлить мелкого, я по дурости заявил, что вообще-то для такого крутого разраба, как я, сделать игру в роблокс — плёвое дело. Разумеется, этот комментарий был интерпретирован не иначе, как прямое обещание, и с тех пор припоминался мне при каждой встрече. Мои наивные надежды, что оно как-то само собой забудется через пару месяцев, не оправдались: рост у детей короткий, а вот память длинная. Хуже того, уже близилась рождественская посиделка, которая в этом году хостилась у меня дома, так что отвертеться как-нибудь красиво не получалось совсем. Нужно было что-то делать.
Звёзды сошлись ещё и таким образом, что в качестве новогоднего подарка самому себе я как раз купил Meta Quest 3, так что игру делать я начал не куда-нибудь, а именно под VR.
Для начала изучил, что там вообще есть в этом вашем роблоксе. Короткое исследование выявило, что в популярном правят балом всевозможные вариации на тему кликеров, которые на местном сленге гордо зовутся «жанром симулятора»; а также всякие паркур-игры (то бишь просто платформеры). Надо сказать, что Roblox Studio из коробки предоставляет весьма богатый функционал именно для таких игр (ну или чего-то GTA-подобного): тут есть персонаж со скинами, стандартный контроллер с камерой от первого и третьего лица, позволяющий прыгать и плавать (но не приседать, например), инвентарь и система переключения предметов в руках, транспорт. Наборчик на первый взгляд достаточно типичный, но самая главная фишка Роблокса, что всё это стандартное барахло изначально спроектировано для мультиплеера!
Если вы геймдизайнер, который делает прототип какой-то сетевой игрухи, я очень-очень сильно настоятельно рекомендую обратить внимание на Роблокс. То, что в каком-нибудь юнити потребует чуть ли не отдельного сетевого программиста, здесь вы получаете тупо бесплатно. Разобраться с основами не составит труда, даже если вы уже отупели после ковида: на официальном сайте куча туториалов для самых маленьких, а в качестве скриптинга тут луа, который учится буквально за вечер.
Вернее не совсем lua, а luau. И это не может не порадовать более искушенных в программировании людей. Luau делает с lua примерно то же самое, что typescript делает с javascript. Это суперсет, который привносит в язык аннотации типов и прочие вкусности, что делает из полной динамики что-то гораздо более юзабельное и надёжное. Вместе с местным автокомплитом ощущается довольно освежающе, и на самом деле это, пожалуй, моё лучшее впечатление от Roblox.
А вот что профессиональных программистов точно отпугнёт, и что не позволяет рекомендовать роблокс в качестве универсального средства прототипирования, так это абсолютно идиотский подход к контролю версий. Весь проект локально сохраняется в один-единственный файл, а любая работа с проектом требует постоянного подключения к интернету, потому что все ассеты, включая скрипты, сохраняются в облаке; и весь контроль версий происходит там же. Ну, ладно-ладно, решение не идиотское — понятно, почему они так сделали. Но очевидно, что никакой серьёзной разработки с таким пайплайном ты тоже не развернёшь.
Впрочем, я и не собирался городить BG3, мне нужно было собрать демонстрационный уровень на 5 минут геймплея для рождественской пати. За основную концепцию был взят паркур в его минимально-возможном исполнении — «пол это лава»! Но до и после я разбавил это дело VR-фишками: стрельбой из пистолетов руками, а также в качестве кульминации сделал в конце прыжок веры в бассейн. Причём сделать это нужно было именно шагнув в пропасть собственными реальными ногами, потому что ходьбу стиками в этом месте я специально отключал (так в разы круче ощущается).
BY Log of Alprog
Share with your friend now:
tgoop.com/logofalprog/226