Original size 2480x3500

STICKERED/STUCK | Лид-Программист и Канбан-Мастер

PROTECT STATUS: not protected
big
Original size 1080x720

3d пазл-платформер, в котором Пикта спасает перевернутый город и его жителей с помощью пистолета-маркировщика. Выстреленные из него наклейки присваивают свойства среде, объектам и даже людям при попадании!

post

Привет! Меня зовут Настя. В проекте я занимаю должность Канбан-Мастера и Лид-Программиста. По менеджерской части создала пайплайн работы на модуль, следила за его выполнением, собирала метрики по нашей работе, проводила созвоны и тимбилдинги! Как Лид-Программист, я разработала универсальные системы механик и механизмов, создав все необходимое для полноценно играбельного уровня. Суммарно я потратила 65 часов на проект в этом модуле!

Мой девлог

Loading...

Канбан-Мастер

Я вызвалась на эту сложную должность намеренно. Мне очень хотелось получить опыт менеджерства, ведь такого у меня никогда не было, но мне было очень важно попробовать взять на себя такую ответственность.

Пайплайн и канбан-трекер

В начале модуля было важно определить весь план работы на модуль, расписать его по спринтам (неделям), учитывая возможные блокирующие задачи, нагрузку людей по проекту и вне.

Лид каждого отдела расписал на этот модуль крупные задачи, в состав которых входит несколько подзадач — тасков. Эти задачи я и распределяла по спринтам. Я потратила 7 часов на создание итогового пайплайна, по которому мы и работали весь модуль.

Original size 4372x1950

Процесс разработки Пайплайна с учетом нагрузки участников.

Каждый участник проекта расписал свои таски на модуль в канбан-трекере в Miro, всего их получилось аж 218!

К каждому таску можно добавить ответственного, сложность, время, пира и описание. По времени было удобно следить за тем, чтобы никто не пересек WIP лимит работы. В формате канбана таски перетекают из бэклога в работу, затем в пир-ревью, после в менеджер-ревью, затем в готовое.

Original size 4372x1669

Таски в Канбан-трекере.

Еще пространства

Original size 2182x1911

Пространство для пирства, таблица актуальной нагрузки, спланированные и готовые таски.

Рабочие созвоны

Еженедельно я вела рабочие созвоны, к которым готовила подробный план, чтобы укладываться в рамки часа, и давать выжимку сути. Каждый созвон был записан на видео, и к нему прилагался конспект, который по очереди писали ребята.

Original size 2094x1423

Планы рабочих созвонов, записи созвонов, пример конспектов.

Сбор обратной связи

Я впервые заняла такую должность, поэтому раз в две недели я собирала анонимную Google форму с обратной связью по моему менеджерству. Полученное принимала к сведенью и исправляла слабые места, чем по сей день занимаюсь, ведь всегда есть что-то, что можно улучшить.

Discord сервер и тимбилдинг

Чтобы поддерживать связь с удобством, я создала наш личный сервер, на котором можно проводить как рабочие созвоны (кстати они указаны в событиях сервера), так и просто общаться.

Original size 1850x807

Дискорд сервер проекта STICKERED/STUCK.

Чтобы поднять дух команде в середине модуля я провела тимбилдинг. Собрала интересные факты ребят, и мы их угадывали. Затем поиграли в другие игры, которые способствуют объединению как конкретных людей, так и команды в целом. Например: Allias, Gartic.

Лид-Программист

Наш проект создается на UnrealEngine5 с помощью BluePrint программирования. Я долго работала на версии 5.4, и STICKERED/STUCK стал первым проектом, который создавался на версии 5.6. В ней немного отличается некоторый функционал, то, чем я раньше не пользовалась, стало удобнее, и поэтому я была замотивирована изучить новое. Так я освоила таймлайны и Interface Blueprints. Из-за специфики проекта пришлось изучать то, что существовало и в прошлых версиях движка, но было мною не тронуто. Например, для этого проекта я освоила PostProcess материалы и декали.

Прицел и стрельба

Я сделала плавный переход в режим прицеливания с помощью таймлайна и виджета, и настроила трейс для стрельбы в условиях специфической камеры. Было важно сделать так, чтобы предмет под прицелом подвергался взаимодействию. Из-за особенностей камеры обычный line trace не подходил (положение прицела на экране и фактического трейса из камеры персонажа разнилось), и пришлось изобретать другую систему, за основу которой взят Sphere trace.

Original size 1080x720

Маркированные объекты

В нашей игре объекты, с которыми можно взаимодействовать, называются маркированными. Степень взаимодействия разная (что-то можно переносить и менять свойства, что-то переносить нельзя, но можно менять свойства). Для легкости устройства этих объектов я сделала систему интерфейсов и тегов. Также прописала им непроходимое взаимодействие и настроила физику.

НПС

post

Знакомьтесь, это Эгго! Как и на маркированные объекты, на него можно клеить наклейки и переносить. А еще он может поддержать беседу благодаря массивам реплик и логики появления определённых фраз при взаимодействии с ним.

Наклейка BIG

post

Основная механика нашей игры — наклейки. В этом модуле решено было делать первую наклейку, которая будет увеличивать только маркированные объекты и персонажей, на которые клеится. Здесь мне на помощь пришли интерфейсы и теги, которые я создала ранее.

Таким образом мне совершенно не понадобились касты, которые нагрузили бы систему.

VFX

B этом модуле тратить много времени на идеальную обратную связь от игры — непозволительная роскошь, но есть базовые вещи, которые необходимо сделать, чтобы продукт выглядел презентабельнее: я сделала красивые, но ненавязчивые камерашейки для передвижения, прыжков и стрельбы.

Декали

Важно было сделать красивую обратную связь при увеличении маркированного объекта. По сути персонаж лепит наклейки на объект. Для этого я освоила работу с декалями с нуля. Самое классное, что таким образом наклейки лепятся на предмет именно там, где находится прицел.

Original size 1080x720

Шаги

Маленькие «красивости» сильно улучшают впечатление об игре, поэтому я решила сделать ненавязчивую обратную связь от шагов, для чего я использовала специальный материал с текстурой и систему частиц Niagara. Получившуюся систему синхронизировала с анимациями (что тоже пришлось делать впервые). Получилось красивенько.

0

Обводка объектов

Еще для визуального выделения маркированных объектов я создала специальный PostProcess Material. Разработка далась нелегко, были варианты, от которых пришлось отказаться.

Чтобы не было перегруза, я сделала выделение видимым только с близкого расстояния:

Original size 1080x720

Pick-up объектов

Нужно было сделать логику, по которой мы не можем поднимать увеличенные предметы, а также трубы даже в обычном размере, ведь они слишком тяжелы. Ряд проверок при взятии позволил настроить механику верно.

С выбрасыванием было больше проблем: пришлось совершенствовать физику предметов, чтобы они вели себя более податливо, чинить баг с бесконечным дропом одного и того же, но в итоге все работает идеально.

Механизмы

post

Движущаяся платформа далась мне на удивление не просто. Изначально я разработала два тестовых варианта работы платформы, но они не подошли для нашей дальнейшей разработки, и пришлось думать дальше.

Важными критериями были: возможность настройки движения у конкретной платформы прямо на уровне, возможность быстрой регулировки скорости, движение туда-сюда относительно заданных точек, связь с механизмом: когда на нажимной плите, связанной с платформой, что-то ставится, платформа приходит в движение, и замирает точке, где была, если предмет снять.

Original size 1080x720
post

Нажимная плита была основой почти всех механизмов. Важно было сделать элегантную систему, по которой связи конкретных плит и других конкретных объектов легко устанавливаются прямо на уровне и при этом учитывается вариативность количества используемых нажимных плит, необходимых для активации. Механизм должен запускаться сразу при активации всех необходимых плит, и останавливаться при потере сигнала. Это было реализовано при помощи ряда переменных, доступных прямо на уровне.

У меня получилось сделать логику, которая отвечала всем поставленным выше условиям, и я была безумно рада, так как она получилась действительно универсальной и элегантной.

Двери тоже являются частью механизмов, а так же разграничением комнат. В них так же написана базовая логика чекпоинтов. При смерти игрок воскрешается после последней пройденной двери.

Original size 1080x720

Опасные объекты

post

Объекты, при взаимодействии с которыми игрок погибает. В них у меня тоже получилось заложить двойную логику, чтобы не перегружать систему.

Измельчитель не только убивает, но так же как и движущаяся платформа (к примеру), может являться частью механизма.

Пропасть и игрока убивает, и становится Kill зоной для объектов, которые мы можем переносить.

Так как у нас есть пропасть, в которую могут свалиться важные для прохождения пазлов предметы, необходимо было научиться возвращать их на места. Я не только прописала для этого логику, но и дополнительно настраивала физику при респавне, чтобы объекты вели себя лучше. Более того, я смогла написать логику того, что при попытке выкинуть предмет за стену, он от нее отталкивается, а не проваливается в текстуры. Если последнее все же произойдет (чего ни разу не получилось ни у кого из плей-тестеров), объект все еще ударится об пропасть и заспавнится на своем месте.

Я также предусмотрела случай, когда игрок погибает с предметом в руках. При этом исходе предмет не дублируется, а просто остается в руках у игрока.

Original size 1080x720

Аутсорс

Я обменялась задачам с девочкой Машей, Лид-Программиста проекта ARCHITECTS of SHAPE.

Ей нужна была помощь с настройкой мувемента персонажа относительно камеры. Дело в том, что они настроили весьма специфичную камеру, и под нее было необходимо отдельно настроить движение: персонаж передвигался на WASD по осям мира, а не относительно камеры. Я нашла лаконичный способ исправить это, и спустя час проб и ошибок нашлось элегантное решение, которое позволило добиться идеального результата.

В свою очередь Маша синхронизировала камеру с поворотом персонажа: для наших механик это было необходимо, чтобы геймплей ощущался приятно.

Original size 1080x720
Original size 1080x720

Трейлер!

Loading...
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more