Добавить механику лутбоксов



Общая схема проекта
Это модель игры, в которой есть:
внутриигровая валюта
магазин с 2 слотами, в каждом из которых есть некоторое количество этой валюты
условный матч, в который можно сыграть за некоторую "ставку" в игровой валюте.
За поражение в матче игрок теряет свою ставку, за победу, наоборот, получает валюту в размере ставки.
Сам матч условный: это просто рандомное определение выиграл/проиграл.
Архитектура имитирует разделение на клиент и авторитарный сервер. На клиенте обрабатывается пользовательский ввод и все что связано с отображением, на сервере вся бизнес логика.
Клиент и сервер выделены в отдельные "packages", подключаемые через PackageManager. Это сделано для максмальной изоляции кода. На сервере есть свои компоненты, реализующие логику фич (Wallet, Shop, Match). На клиенте - свои.
Необходимость разобраться в том:
как взаимодействуют клиент и сервер,
как учитывать лаг сети (обмен данными между реальным клиентом и реальным сервером не будет мгновенным)
как сервер сохраняет и восстанавливает данные между сессиями игрока.
Нужно сделать новую функциональность в рамках тех подходов, которые уже есть в проекте.

Задание
За каждую победу в матче может быть выдан 1 лутбокс. У игрока всего 2 слота под лутбоксы. Это значит, что когда оба слота будут заняты, лутбоксы за победы перестанут выдаваться до освобождения хотя бы одного слота.
После того, как лутбокс попал в слот игрок может нажать на кнопку и начать его "разблокировку". Разблокировка длится 20 секунд.
По истечению времени разблокировки лутбокс считается доступным к "открытию". Одновременно на разблокировке может находится только 1 лутбокс Открытие означает освобождение слота с начислением контента лутбокса.
Открытие происходит по нажатию на кнопку слота.
То есть, лутбокс не открывается автоматически по истечению времени, а остается лежать в слоте до тех пор, пока его не откроют.
Контент лутбокса - внутриигровая валюта. Может быть 2 типа лутбоксов по объему контента:
большой (содержит 100 валюты)
маленький (содержит 20 валюты)
Принцип выдачи типа лутбокса при победе:
каждый 4й лутбокс должен быть большим, остальные - маленькие.

Реализовать игровую механику и отображение в GUI с использованием immediate mode GUI.
То есть, GUI такое же, как уже сделано в проекте для всего остального.
То, как будет выглядеть в итоге интерфейс - на ваше усмотрение.
Но там должны быть ясно различимы 2 слота для лутбоксов, состояние этих слотов (пустой / ожидает / разблокируется (с отображением таймера) / готов к открытию).
Референс: Bowling Crew, Golf Clash, Clash Royale. Результат – такая же папка с файлами




Скачать файл


Город: Минск
Вид предложения: Удаленная работа (разовый заказ)
Оплата: желательно безнал
Категория: Разработка игр

Добавлено: 03.09.2023 в 14:18




Сделайте предложение по проекту:


Для того чтобы ответить на предложение, вам необходимо авторизоваться или зарегистрироваться на сайте


Комментарии:
Дмитрий Орлов    05.09.2023   11:09:50     

Доброго времени суток! Ознакомился с описанием проекта и готов сделать.
Есть свободное время готов обсудить. Всегда на связи во всех доступных месенджарах.
Добавляйтесь обсудим.
Telegram: https://t.me/monodd77
Ватсапп : +38063-581-0-681