Разработать игру на Unity в жанре runner для Telegram Mini Apps
200 000 руб. за проект
Требуется разработка небольшой игры на Unity для Telegram Mini Apps:
Сцена 1 из 3: Выбор и зарядка персонажа-робота
Это полноэкранный эффект, возникающий поверх всех игровых сцен и любых элементов интерфейса. Эффект представляет собой кратковременное (9-12 миллисекунд) отображение изображения-стимула, которое находится в настраиваемых игровых ресурсах. Эффект "выспышки" может включать в себя кадры с настраиваемым цветом и прозрачностью, которые отображаются до или после изображения-стимула.
Для каждого отдельного события (нажатие-зарядка, нажатие на врага или баннер, атака врага и т.д.), вызывающего вспышку, должна быть возможность настраивать эту вспышку отдельно в формате трех параметров:
1. RGB Alpha object* time_ms
2. RGB Alpha object* time_ms
3. RGB Alpha object* time_ms
...И т.д., где RGB – цветовая кодировка, Alpha – прозрачность от 0 до 100, object* - ссылка на отображаемый ресурс (изображение), либо пустой фон, если не указан, и time_ms – время отображения.
Например, конфигурационная запись для вспышки:
255 0 0 75 60
0 0 0 50 picture.png 12
0 255 0 75 60
...означает, что сначала будет показан красный фон с прозрачностью 75% в течении 60 миллисекунд, затем полупрозрачное изображение «picture.png» без цветокоррекции в течении 12 миллисекунд, а затем - зелёный фон с прозрачностью 75% в течении 60 миллисекунд.
Важные условия:
- Жанр: runner (упрощенный вариант Subway Surfers)
- Стиль: ретрофутуризм (референсы по стилю см. в приложенных файлах). Стиль нужен позитивный, без "классического" low-life киберпанка, где помереть хочется быстрее, чем застрелят))
- Три игровых сцены: "Зарядка робота", "Бег с препятствиями", "Битва с Боссом"
- Экспорт проекта: WebGL
- Интеграция настраиваемой библиотеки объектов (изображения или текст), которые будут появляться на экране во второй сцене (препятствия для бега)
- Требуется сбор и экспорт метрик действий пользователя на протяжении игровой сессии (скорость нажатия на экран и взаимодействие с некоторыми объектами: несложные цифровые данные)
Сцена 1 из 3: Выбор и зарядка персонажа-робота
- Игрок выбирает одного из двух персонажей (голубой или розовый робот: мужской и женский персонажи). После нажатия на аватар робота на экране появляется «аккумулятор» с мерцающим индикатором почти нулевого заряда, а выбранный робот при этом "разряжен" и лежит или сидит на полу без признаков жизни. На экране появляется инструкция (“TAP TO CHARGE!”): теперь игрок должен своими нажатиями на кнопку "заряда" поднять заряд аккумулятора до полного. Делать он это должен как можно быстрее, т.к. батарея быстро разряжается, если не достигла максимального заряда, а игрок тапает на экран недостаточно быстро.
- Длительность сцены с зарядом аккумулятора - от 15 секунд, если игрок делает не менее 40 нажатий за этот период (темп не медленнее ~2.6 нажатий в секунду), но не более 25 секунд. Если игрок нажимает в более высоком темпе (более 2.6 нажатий в секунду), то шкала заряда должна искусственно заполняться с такой скоростью, чтобы удержать пользователя как минимум 15 секунд. Если по истечении 25 секунд сделано менее 60 нажатий, то попытка считается неудачной: робот отключается и сегмент начинается сначала. Если игрок не делает никаких действий в течение 5 секунд, сцена возвращается в исходное состояние (выбор робота).
- При каждом нажатии на батарейку возникает «вспышка» (что это такое, описано после задания ко всем сценам).
- Чтобы сделать процесс менее затянутым, добавляем анимацию «пробуждения» выбранному роботу – свечении глаз, движение механизмов, поднимается с пола и т.д.
- Если игрок успешно зарядил аккумулятор, то осуществляется переход ко 2 сегменту.
- Это упрощенный геймплей Subway Surfers.
- На сцене - 3 линии (дорожки), между которыми игрок может перемещаться свайпом.
- На дорожках препятствия двух видов: через которые можно и нельзя перепрыгнуть (прыжок – свайп вверх). При столкновении с препятствием игрок теряет заряд батареи и увеличивает время бега на 5 секунд.
- Враги – это отдельные персонажи, которые прилетают из случайной области экрана. Если игрок вовремя не нажмет на такого летающего врага (в течение 3 секунд с момента его появления), то этот враг бьет игрока молнией или каким-то разрядом, отбирая у робота игрока энергию и увеличивая время бега на 5 секунд. Каждый враг появляется на экране в уменьшенном виде (как бы в отдалении) и в течение 3 секунд с момента появления увеличивается в размерах (как бы «приближаясь»). В случае атаки врагом возникает «вспышка» на экране. При успешном нажатии на врага (уничтожении его) также происходит «вспышка».
- Также на сцене появляются баннеры – летающие "рекламные щиты", текст или изображение на которых должны подгружаться из игровых ресурсов (настраиваемая библиотека, упомянутая в требованиях к проекту). Каждые 3 секунды с момента появления баннер также даёт эффект «вспышки», если не будет сбит игроком посредством нажатия на него (при ликвидации баннера также происходит «вспышка»).
- Баннеры и враги могут появляться одновременно, но число их одновременных появлений на сцене должно настраиваться параметрами приложения (константа hard code). По умолчанию это значение равно 1: то есть, одновременно может появляться только один такой объект (любой).
- Цель игрока – продержаться 30 секунд без столкновений и получения урона от врагов, баннеров и препятствий. За ошибки игрок получает штраф в качестве дополнительного времени (5 секунд) и снижения заряда батареи. Если заряд опускается до нуля, то попытка считается неудачной и игрок должен вернуться к Сцене 1.
- Аватар игрока и босс расположены на одном экране. Игрок атакует Босса нажатием на него, забирая у Босса энергию (или здоровье). Босс делает то же самое, поэтому если игрок не будет ничего делать (или тапать на экран слишком медленно), то заряд аккумулятора робота игрока закончится очень быстро. У Босса отображается полоса здоровья (или заряд аккумулятора), которая быстро восстанавливается. Требования по темпам нажатия точно такие же, как в Сцене 1. На каждое нажатие игрока босс реагирует «вспышкой».
- При поражении игрока также идёт возвращение к Сцене 1.
- После победы над Боссом вместо него появляется сундук, который открывается свайпом вверх (имеется текстовая подсказка – «SWIPE UP!»). При открытии сундука из него появляются три карты с изображенной на них геометрией и текстом (изображения, которые также берутся из игровых ресурсов): игрок должен выбрать один из них, после чего игра считается завершенной.
Это полноэкранный эффект, возникающий поверх всех игровых сцен и любых элементов интерфейса. Эффект представляет собой кратковременное (9-12 миллисекунд) отображение изображения-стимула, которое находится в настраиваемых игровых ресурсах. Эффект "выспышки" может включать в себя кадры с настраиваемым цветом и прозрачностью, которые отображаются до или после изображения-стимула.
Для каждого отдельного события (нажатие-зарядка, нажатие на врага или баннер, атака врага и т.д.), вызывающего вспышку, должна быть возможность настраивать эту вспышку отдельно в формате трех параметров:
1. RGB Alpha object* time_ms
2. RGB Alpha object* time_ms
3. RGB Alpha object* time_ms
...И т.д., где RGB – цветовая кодировка, Alpha – прозрачность от 0 до 100, object* - ссылка на отображаемый ресурс (изображение), либо пустой фон, если не указан, и time_ms – время отображения.
Например, конфигурационная запись для вспышки:
255 0 0 75 60
0 0 0 50 picture.png 12
0 255 0 75 60
...означает, что сначала будет показан красный фон с прозрачностью 75% в течении 60 миллисекунд, затем полупрозрачное изображение «picture.png» без цветокоррекции в течении 12 миллисекунд, а затем - зелёный фон с прозрачностью 75% в течении 60 миллисекунд.
Важные условия:
- Срок сдачи игры в полном объеме: не позднее 20.12.2024 включительно. Если до конца этой даты проект не будет сдан, заказ аннулируется и оплата работы исполнителю не производится.
- Конкретных требований к оформлению персонажей и сцен, за исключением соответствия визуальному стилю позитивного ретрофутуризма и примерного соответствия референсам во вложении, нет. Исполнитель сам выбирает персонажей, после чего заказчик их согласовывает.
- Исполнитель должен быть на связи и ежедневно предоставлять результаты своей работы, чтобы был виден и понятен прогресс.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.