Разработка игры про коронавирус для мобильных устройств на Unity — увлекательный и поучительный опыт. Используя открытые ресурсы и возможности Unity, я создал игру, избежав излишнего усложнения концепции.
Идея и создание меню
Вначале было создано простое меню, позволяющее параллельно обдумывать геймплей. На этом этапе проводились эксперименты с анимациями для улучшения визуального восприятия. Вдохновленный популярными казуальными играми, я быстро создал меню, готовое к дальнейшей разработке.
Разработка игровой механики
Вирус плавно перемещается по экрану. Управление осуществляется с помощью мыши: при наведении на вирус, он увеличивается в размерах. Механика игры основана на движении вируса, управляемого курсором мыши, который поглощает более слабых вирусов. Поглощение противников увеличивает размер, скорость и силу вируса. Для анимации использовалась костная 2D-анимация в Unity.
Добавление противников и ИИ
Следующим шагом стало добавление противников. Для этого был создан простой искусственный интеллект, а в качестве противников выбраны оранжевые вирусы из имеющихся ресурсов. Противники движутся случайным образом в определённом радиусе, медленнее, чем главный вирус. Поглощение противников увеличивает скорость и силу главного вируса.
Геймплей и дальнейшие планы
Основная цель игры — собрать все вирусы на карте как можно быстрее. Количество противников не фиксировано, а геймплей строится на постоянном стремлении к улучшению времени прохождения.
В дальнейшем планируется улучшить визуальную составляющую игры, добавив более сочные анимации и эффекты. Также планируется добавить звуковое сопровождение и улучшить пользовательский опыт.
Методы передвижения объектов
Для передвижения объектов использовались два метода: MoveTowards и Vector3.Lerp.
MoveTowards обеспечивает предсказуемое движение с постоянной скоростью. Vector3.Lerp, при правильной настройке, позволяет создавать движение, ускоряющееся в начале и замедляющееся к концу. В игре Lerp использовался для камеры, которая движется быстрее при удалении от игрока и медленнее при приближении.
MoveTowards принимает две позиции (A и B) и delta — расстояние, которое объект преодолеет за один шаг в направлении к B. Если delta больше расстояния между A и B, функция вернёт точку B. Это позволяет контролировать движение, гарантируя, что объект не перешагнет конечную точку.
Для управления скоростью с помощью MoveTowards, delta рассчитывается как произведение скорости и deltaTime (время, прошедшее с предыдущего кадра). Скорость задаётся в единицах расстояния за секунду.
Vector3.Lerp также принимает две позиции (A и B), но вместо delta третий аргумент — нормализованная величина t (от 0 до 1). t = 0 возвращает A, t = 1 возвращает B, t = 0.5 — середину отрезка между A и B. Изменяя t каждый кадр, можно получить плавное движение. Однако, при приближении к B скорость падает, что может потребовать дополнительной проверки на достижение конечной точки.
Показан начальный этап разработки игры про коронавирус. Планируется продолжить разработку, добавив анимации, эффекты, рекламу и выложив игру в Google Play Market.