Kozlov Dev - Разработка игр
3.35K subscribers
518 photos
160 videos
3 files
230 links
Канал о разработке игр.
Download Telegram
⚡️ Синхронизация всего и вся

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

Инвентарь и предметы
Начал с инвентаря — теперь он полностью серверно-авторитарный. Все операции с предметами (перемещение, использование, выброс) проходят через сервер. Клиент только отправляет запрос, а сервер решает, можно ли это сделать, и синхронизирует результат обратно.

✔️ Предмет в руке тоже синхронизируется — другие игроки видят что ты держишь.

Блоки
Перевёл на сервер всё взаимодействие с блоками — размещение, копание и разрушение. Копание работает через сессии — сервер отслеживает кто какой блок копает и считает прогресс. Причём копать один блок могут несколько игроков одновременно — прогресс складывается и скорость копания блока возрастает.

✔️ Так же доработал систему инструментов — у блоков теперь есть требуемый уровень инструмента для добычи.

Блок-сущности
Пожалуй самая интересная часть. Сундуки, печки и другие блок сущности с интерфейсом — всё это теперь работает по сети. Когда открываешь сундук, сервер блокирует его за тобой — другой игрок не может залезть в тот же сундук одновременно. Содержимое синхронизируется, а если кто-то сломает блок пока ты его открыл, то происходит принудительно закрытие.

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

🙂 Основная часть синхронизации позади, осталось доделать несколько механик и можно выпускать на тест.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍4🤯41
😎 Стартуем эвент SCREENSHOT SATURDAY!

❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делитесь своими скриншотами, рисунками, прикрепляйте ссылки на каналы и показывайте прогресс в геймдеве за неделю

P.S Эвент длится оба выходных

#скриншотник
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥52👍2
💐 С 8 марта! Поздравляю всех дам с этим праздником!

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

😘 Пусть каждый день вас радует, баги обходят стороной, а настроение всегда держится на уровне стабильного 60 FPS.
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍6🥰42
🔥 Облачные сохранения в Cloud
Продолжаем разбирать функционал Cloud. В прошлый раз говорили про аутентификацию и профили — сегодня про то, что идёт сразу после: как хранить данные игрока.

Два формата хранения
В Cloud сохранения работают в двух форматах:
✔️ JSON данные — key/value. Прогресс прохождения, позиция на карте, настройки и т.д
✔️ Файлы — картинки который нарисовал игрок, скриншот и т.д

Два уровня данных
✔️ Player (Игрок) — привязаны к конкретному профилю игрока. Каждый профиль хранит свои данные отдельно
✔️ Custom (Специальные) — данные по произвольному ID. Идеально для сущностей вроде боссов, комнат, матчей — всего что живёт отдельно от конкретного игрока

Система доступов
Разработчик может тонко настроить, кто и что может делать с данными:
✔️ Owner (Владелец) — игрок читает и пишет свои данные
✔️ Other (Другой) — другой игрок может получить доступ (если разрешено). Например, посмотреть прогресс друга или его постройки
✔️ Server (Сервер) — доступ с вашего собственного сервера, без ограничений

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

Поиск по данным
Если вы делаете псевдо-мультиплеер или хотите показывать данные других игроков, возникает вопрос — как быстро найти нужных? Для этого мы сделали систему индексов.

📌 На скриншотах показан пример: сохраняем для игрока три поля — level, attack, region. Создаём индекс по полю level. Теперь одним запросом из SDK можно найти всех игроков с уровнем выше 10 — например, чтобы подобрать противника для боя.

Индексы можно делать составными — по нескольким полям сразу. Например, индекс по 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👍52
😎 Стартуем эвент SCREENSHOT SATURDAY!

❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делитесь своими скриншотами, рисунками, прикрепляйте ссылки на каналы и показывайте прогресс в геймдеве за неделю

P.S Эвент длится оба выходных

#скриншотник
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍43
🔥 Система сущностей (Entities) в Cloud — гибкая конфигурация (часть 1)

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

Для этого у нас есть 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
Помимо готовых типов, можно создавать свои.

✔️ Enum — перечисление именованных значений (например, типы урона: Physical, Magic, Fire). Поддерживают режим флагов — можно выбрать сразу несколько значений.
✔️ Structure — типизированная схема данных. Как структура в C# — описываешь поля и их типы, а потом используешь как готовый блок в шаблонах.

Типы создаются в Entities и доступны из любого сервиса.

В SDK
На клиенте всё просто — SDK получает готовый JSON, с которым уже можно работать. Обращаешься по ключу и получаешь нужный конфиг.

👍 В следующей части расскажу про систему атрибутов и валидацию в entities — как задавать правила прямо в схеме данных.

💬 Если есть вопросы по функционалу — пишите в комментарии, буду рад ответить.

А также подписывайся на нашего тг бота — там будут приходить новости по продуктам хаба 😎

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
🔥 Вакансия пиксель арт художника!

Мы решили ускориться и взять в команду еще одного художника на проект Blockworld.

Что нужно делать
✔️ Взять на себя работу с пиксель артом в проекте, а именно отрисовку иконок, текстур блоков, мобов, персонажей и других объектов в игре (Пример желаемой стилистики прикрепил)

Что предлагаем
✔️ Работа удаленная, парт тайм
🤑 Естественно за оплату
👍 Дружный коллектив
😅 Поддержка от нашего художника Ромы

‼️ Кто заинтересован, скидывайте своё портфолио в личку Роме: @vasromart
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🤔2👍1