Всем привет! В прошлом посте рассказывал про архитектуру Universe/Place и стриминг чанков. С тех пор добавил много нового функционала и теперь уже можно вместе с кем то побегать по миру
При подключении клиент отправляет на сервер свои профиль — никнейм, скин и радиус видимости. Сервер прокидывает всё это на сущность игрока для дальнейшей синхронизации. Теперь все игроки видят текущий ник и скин других игроков.
Разделил режимы камеры: для своего персонажа мы можем переключать вид от первого или третьего лица, но чужие игроки всегда будут отображаться в третьем лице. Сделать это было не так сложно, так как у меня уже была заложена система переключения вида для игрока
Так как система анимаций у меня кастомная (без юнити аниматора), то было несколько вариантов как реализовать синхронизацию. Пока что остановился на параметрах сущности (Velocity, IsCrouch и т.д). Аниматор просто подвязывается к ним и работает как обычно, вызывая нужные стейты в зависимости от параметров. Возможно в будущем оптимизирую за счет синхронизации самих стейтов анимации, а не параметров, но пока что сойдет и такой вариант.
Вынес работу с физикой (различные касты) из глобальной обработки в Place. Каждый плейс теперь работает со своей физической сценой Unity — физика одного места не влияет на другое. Без этого физика в мультисценах нормально работать не будут, так что штука важная.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤3👍2
P.S Эвент длится оба выходных
#скриншотник
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤6
В папке собраны самые полезные, активные и вдохновляющие каналы индустрии, где каждый разработчик найдёт для себя что-то действительно ценное:
🧑💻 Помощь и практические советы по разработке игр🆓 Бесплатные раздачи ассетов и промокоды📣 Актуальные новости геймдева📱 Советы по заработку на разных игровых площадках📱 Авторские каналы по геймдизайну📸 Личные блоги разработчиков
Подключайтесь к папке The GameDev и станьте частью сильного комьюнити!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤5🥰4💯1
Последние 1.5 года я со своей командой работал над этим продуктом — и вот наконец можем рассказать об этом публично.
Что умеет Cloud на данный момент:
Это далеко не весь функционал Cloud — у нас ещё много крутых фишек, которые вам понравятся.
Cloud мы делаем в партнёрстве с ребятами из Mirra Hub — если хотите узнать подробнее про хаб и остальные продукты, подписывайтесь на канал Дани. А так же в свежем видео он как раз затронул тему Cloud, кому интересно, бегите смотреть)
#cloud #game_backend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥21👍5❤3🤯3
P.S Эвент длится оба выходных
#скриншотник
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍7❤3🔥3
Начинаем разбирать функционал Cloud по порядку, и старт — с самого базового: как игрок попадает в игру и кто он вообще такой.
Вход в игру
Мы даём разработчику выбор, как именно игроки будут входить в игру. Провайдеры разбиты по группам:
Разработчик сам выбирает, какие провайдеры подключить. Хочешь, чтобы игрок сразу попал в игру без лишних шагов — ставишь гостевой или Device ID. Хочешь кроссплатформенный вход — добавляешь Google, Apple или что нужно. Провайдеры можно комбинировать — быстрый вход на старте, привязка соцсети или почты позже для переноса прогресса между устройствами.
Аккаунт и профиль
В Cloud мы разделили игрока на два уровня — и это одна из ключевых фишек платформы.
Несколько профилей на один аккаунт
В Cloud аккаунт не привязан к одному прогрессу. Разработчик может дать игрокам возможность создавать несколько профилей и свободно переключаться между ними — всё это работает из коробки.
Зачем это нужно:
Похожую систему можно встретить в игре Rise of Kingdoms — один аккаунт, несколько персонажей, у каждого свой прогресс, своя цивилизация, свои ресурсы.
А также подписывайся на нашего тг бота — там будут приходить новости по продуктам хаба
#cloud #game_backend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍5🤯3
Всем привет! Продолжаю пилить мультиплеер. На этот раз взялся за синхронизацию игровых механик — блоки, инвентарь, хранилища и многое другое. Работы было прилично, так что погнали по порядку.
Инвентарь и предметы
Начал с инвентаря — теперь он полностью серверно-авторитарный. Все операции с предметами (перемещение, использование, выброс) проходят через сервер. Клиент только отправляет запрос, а сервер решает, можно ли это сделать, и синхронизирует результат обратно.
Блоки
Перевёл на сервер всё взаимодействие с блоками — размещение, копание и разрушение. Копание работает через сессии — сервер отслеживает кто какой блок копает и считает прогресс. Причём копать один блок могут несколько игроков одновременно — прогресс складывается и скорость копания блока возрастает.
Блок-сущности
Пожалуй самая интересная часть. Сундуки, печки и другие блок сущности с интерфейсом — всё это теперь работает по сети. Когда открываешь сундук, сервер блокирует его за тобой — другой игрок не может залезть в тот же сундук одновременно. Содержимое синхронизируется, а если кто-то сломает блок пока ты его открыл, то происходит принудительно закрытие.
Серверные тики блоков
Рост посевов, течение жидкостей — всё это теперь тоже синхронизируется между игроками. Посадил морковку — другой игрок видит как она растёт, и наоборот.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍4🤯4⚡1
P.S Эвент длится оба выходных
#скриншотник
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥5❤2👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍6🥰4❤2
Продолжаем разбирать функционал Cloud. В прошлый раз говорили про аутентификацию и профили — сегодня про то, что идёт сразу после: как хранить данные игрока.
Два формата хранения
В Cloud сохранения работают в двух форматах:
Два уровня данных
Система доступов
Разработчик может тонко настроить, кто и что может делать с данными:
Настраивается отдельно для чтения и записи — можно разрешить игрокам читать чужие данные, но не изменять их.
Поиск по данным
Если вы делаете псевдо-мультиплеер или хотите показывать данные других игроков, возникает вопрос — как быстро найти нужных? Для этого мы сделали систему индексов.
Индексы можно делать составными — по нескольким полям сразу. Например, индекс по level + region позволит найти всех игроков выше 50 уровня из конкретного региона.
Индексы работают на всех уровнях данных — как по данным игроков, так и по кастомным данным. Например, можно искать не только игроков, но и боссов по уровню сложности.
А также подписывайся на нашего тг бота — там будут приходить новости по продуктам хаба
P.S Дизайн на скриншотах пока тестовый — будет ещё дорабатываться.
#cloud #game_backend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5🥰4
Работа над UI.
🛠 Пока идет доработка мультиплеера, мы параллельно допиливаем экраны.
Уже работаем в темной теме которую мы определили ранее.
По интерфейсу еще много работы, но уже очень нравится как это выглядит даже с тестовыми иконками.
⚡️ На следующей недели будем приступать к переносу первых экранов в игру, работы еще очень много, так что нужно все успеть
Уже работаем в темной теме которую мы определили ранее.
По интерфейсу еще много работы, но уже очень нравится как это выглядит даже с тестовыми иконками.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍5⚡2
P.S Эвент длится оба выходных
#скриншотник
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4❤3
В любой игре есть слой конфигураций — предметы, валюты, настройки игры, параметры баланса. Всё это нужно где-то описать, структурировать и удобно менять на лету — без необходимости обновлять клиент.
Для этого у нас есть Entities — базовая платформа конфигураций для всего проекта.
Что умеет Entities?
Это базовая система конфигураций. Описываешь типы данных, шаблоны и структуры один раз — после чего использовать их в Экономике, Лидербордов, Турниров и любого другого сервиса. Не нужно дублировать одни и те же конфиги в разных местах.
Шаблоны и конфиги (Templates & Configs)
Пример: шаблон «Оружие» содержит поля: название, урон, скорость атаки, иконка. На его основе создаёшь конфиги: «Деревянный меч» (урон 10, скорость 1.5), «Огненный посох» (урон 40, скорость 0.7).
Шаблоны поддерживают наследование.
Создаёшь базовый шаблон «Оружие», от него наследуешь «Автомат» с дополнительным полем — патроны. Все поля базового шаблона подтягиваются автоматически. Изменил что-то в базовом — изменилось у всех наследников.
Готовые типы полей
Каждый узел в шаблоне имеет тип. Из коробки доступны:
— Базовые: String, Int, Float, Double, Decimal, Boolean
— Коллекции: Object, Array
— Игровые: Vector3, Color, Image
— Контент: Localization, ConfigRef (ссылка на другой конфиг)
— Время: Time, DateTime, DateOnly
Этого хватает для большинства задач. А если нужно больше — есть кастомные типы.
Кастомные типы — Enums и Structures
Помимо готовых типов, можно создавать свои.
Типы создаются в Entities и доступны из любого сервиса.
В SDK
На клиенте всё просто — SDK получает готовый JSON, с которым уже можно работать. Обращаешься по ключу и получаешь нужный конфиг.
А также подписывайся на нашего тг бота — там будут приходить новости по продуктам хаба
P.S Дизайн на скриншотах пока тестовый — будет ещё дорабатываться.
PP.S Название сервиса тестовое, если у вас идеи как понятнее его назвать, пишите в комментарии
#cloud #game_backend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍3🤯1