📝 Автостопом по мультиплееру ч1. 📝
Первый опыт оформления статьи
Использовал 4 площадки: VK, Dzen, Habr, Dtf
Опыт взаимодействия с площадками опишу позже отдельным постом 📦
Заодно можно будет поделиться реакциями и цифрами 🧮
Пока могу сказать, что по площадкам — всё не однозначно и везде свои "приколы" 🤡
————————————————————
#unity #gamedev #development #multiplayer #геймдев #разработка #мультиплеер #статья #aks2dio
Первый опыт оформления статьи
Использовал 4 площадки: VK, Dzen, Habr, Dtf
Опыт взаимодействия с площадками опишу позже отдельным постом 📦
Заодно можно будет поделиться реакциями и цифрами 🧮
Пока могу сказать, что по площадкам — всё не однозначно и везде свои "приколы" 🤡
————————————————————
#unity #gamedev #development #multiplayer #геймдев #разработка #мультиплеер #статья #aks2dio
VK
Автостопом по мультиплееру. Часть 1: Введение
Приветствую, читатель. Здесь начинается небольшой цикл статей, посвящённых разработке мультиплеерных игр. Мультиплеер — это весьма объёмн..
🔥3
📝 Автостопом по мультиплееру ч2. 📝
Прошёл спустя неделю модерацию на Хабре. Теперь официально Хабровчанин.
В честь этого события (нет) публикую следующую статью цикла про мультиплеер.
Там пишу про отличия синглплеера и мультиплеера и про то, где эти отличия находятся.
Хабр VK Dtf Dzen Pikabu
————————————————————
#unity #gamedev #development #multiplayer #геймдев #разработка #мультиплеер #статья #aks2dio
Прошёл спустя неделю модерацию на Хабре. Теперь официально Хабровчанин.
В честь этого события (нет) публикую следующую статью цикла про мультиплеер.
Там пишу про отличия синглплеера и мультиплеера и про то, где эти отличия находятся.
Хабр VK Dtf Dzen Pikabu
————————————————————
#unity #gamedev #development #multiplayer #геймдев #разработка #мультиплеер #статья #aks2dio
Хабр
Автостопом по мультиплееру. Часть 2: Синглплеер и Мультиплеер
Lineage II Это вторая статья путеводителя по разработке многопользовательских игр, где я пытаюсь последовательно и в одном месте собрать знания, которые потребуются для осознанной разработки...
👍2🔥2
Хабр
Автостопом по мультиплееру. Часть 3: Клиент и Сервер
Дословно про Server Это третья статья путеводителя по разработке многопользовательских игр, где я пытаюсь последовательно и в одном месте собрать знания, которые потребуются для осознанной разработки...
📝 Опубликовал третью статью про разработку мультиплеерных игр 📝
Статья доступна на Habr, VK, Dtf, Dzen, Pikabu
В ней продолжаю копать в сторону сетевого мультиплеера и разбираю, что есть "сервер", а что есть "клиент".
Помимо самой статьи в конце можно найти ссылки на другие полезные материалы по этой теме, которые помогут достроить контекст.
Эта статья получилась пока самой большой по материалу и по времени написания. Начал постепенно искать свой "дизайн" 🎨
Многое было сокращено, многое было вынесено в другие будущие статьи — можно сказать, что черновики уже есть ✂️
Пока писал, отсмотрел уйму материала. Узнал даже что-то новое и дополнил свою картинку понимания 🧠
Пока дальнейшую работу ставлю на паузу. Как закончу с подготовкой к фестивалю, продолжу генерить контент.
Но посты с заметками и мыслями по встречающемуся контенту никуда не денутся ✏️
————————————————————
#unity #gamedev #development #multiplayer #статья #геймдев #разработка #мультиплеер #aks2dio
Статья доступна на Habr, VK, Dtf, Dzen, Pikabu
В ней продолжаю копать в сторону сетевого мультиплеера и разбираю, что есть "сервер", а что есть "клиент".
Помимо самой статьи в конце можно найти ссылки на другие полезные материалы по этой теме, которые помогут достроить контекст.
Эта статья получилась пока самой большой по материалу и по времени написания. Начал постепенно искать свой "дизайн" 🎨
Многое было сокращено, многое было вынесено в другие будущие статьи — можно сказать, что черновики уже есть ✂️
Пока писал, отсмотрел уйму материала. Узнал даже что-то новое и дополнил свою картинку понимания 🧠
Пока дальнейшую работу ставлю на паузу. Как закончу с подготовкой к фестивалю, продолжу генерить контент.
Но посты с заметками и мыслями по встречающемуся контенту никуда не денутся ✏️
————————————————————
#unity #gamedev #development #multiplayer #статья #геймдев #разработка #мультиплеер #aks2dio
👍3🔥1
Уровень материала: 🐥 #middle
Первое видео, на мой взгляд, самое базированное, концентрированное и интересное из всех: всё по делу, всё полезно, всё в точку и слушается легко.
Последнее — самое неоднозначное. Слушается как "вода водой". А на случайный момент мотаешь и уже "что-то в этом есть". Возможно сказывается тяжёлый французский акцент 🧑🎨 Но и синхронный перевод ситуацию лучше не сделал.
Весной я тоже выступал с обзорным докладом по мультиплееру:
Наготовил, правда, контента на 2ч, а в распоряжении оказался только 1. Поэтому вышло слишком сумбурно и "кастрировано". Например, я так и не успел озвучить свой топ-10 причин, почему я не люблю решения Photon
В частности это и сподвигло начать делать статьи, в которых есть возможность выразиться более полно и вдумчиво
Прошло всего пол года, а в Netcode for GameObjects уже добавляют и миграцию хоста, и распределённый P2P, и замену ParrelSync. Даже Mirror немного прокачался.
Динамично развивается область — актуальность сказанного быстро теряется.
Unity Gaming Services тоже на месте не стоят. Эту штуку я люблю и часто использую. И мой прошлый аргумент, что это "простая альтернатива", постепенно теряет актуальность. Всё ещё гораздо проще в использовании того же Playfab, но отрыв сокращается, в т.ч. и в плане возможностей.
————————————
#unity #gamedev #development #multiplayer #геймдев #разработка #мультиплеер #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Часть 4: Авторитарность и Топологии
Дописал четвёртую статью путеводителя по разработке многопользовательских игр, где я пытаюсь последовательно и в одном месте собрать знания, которые потребуются для осознанной разработки мультиплеерного проекта.
В этой части рассказываю про варианты реализации мультиплеерного взаимодействия с использованием игрового сервера и без него. Попутно рассматривая различные подводные камни и оставляя свои рекомендации.
—————————————
#unity #gamedev #development #multiplayer #server #p2p #host #статья #геймдев #разработка #мультиплеер #сервер #хост #aks2dio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3😎1
Про GameDev, разработку на Unity и C#, менеджмент, обучение, менторство и карьеру.
📌 🔎 🔎 🔎 🔎 📌
🍳 Соц. сети 🗑️
💬 Посты: Telegram, VK, Dtf
📝 Статьи: Habr, Dtf, VK, Dzen
📹 Видео и Клипы: VK, YouTube, Rutube, Dzen
📱 Код: GitFlic, GitVerse
🍳 Теги 🗑️
✍️ Авторский контент: #aks2dio
📈 Хэштеги: #junior #middle #senior #education #management #mental #ai #offtop #news #hr #career #tool #multiplayer
🍳 Рубрики 🗑️
🤡 MemIT: подборки мемов про игры, GameDev и IT
🗓 MidUp: календарь событий по GameDev и IT
🍳 Клипы 🗑️
🟣 Быстрая генерация юнит-тестов с AI
🟣 Отличия событий от делегатов в C#
🍳 Видео 🗑️
🟣 Хочу мультиплеер: как начать и не заблудиться
🟣 Unity Localization и GamePush
🟣 Разбираюсь с пользовательскими соглашениями в веб-играх
🟣 Современное хранение игрового прогресса
🍳 Лонгриды 🗑️
🟣 Автостопом по мультиплееру. Часть 1: Для кого и для чего
🟣 Автостопом по мультиплееру. Часть 2: Синглплеер и Мультиплеер
🟣 Автостопом по мультиплееру. Часть 3: Клиент и Сервер
🟣 Современное хранение игрового прогресса в контексте Unity
🟣 Заметка про реализацию системы способностей в играх
🟣 Автостопом по мультиплееру. Часть 4: Авторитарность и Топологии
🟣 Заметка про пользовательские соглашения в Web-играх
🟣 Сериализация в Unity: известные атрибуты и их проблемы
🟣 AI для Rider в разработке под Unity
🟣 Обзор DI-фреймворков для Unity
🟣 AI IDE — Qoder
🟣 Код, понятный IDE и AI
🟣 Про опыт работы за двумя ноутбуками
🟣 Наследование и Композиция
🟣 Шпаргалка по базовым концепциям C#
🟣 Экономим на AI
🟣 Addressables в WebGL
🟣 Способ хранения настроек своих тулов в Unity
🟣 Overlay: кастомизация Unity
🍳 Интересные темы 🗑️
🟣 Про процессы в инди-командах
🟣 Про физику в играх
🟣 Компрессия AnimationClip в Unity
🟣 Про хранение конфигураций уровня
🟣 Про строки в C# и C++
🟣 Про нарушение внимания
🟣 Про курсы и обучение
🟣 Про бесплатные курсы с YouTube
🟣 Про архитектуру на MVC
🟣 Про Cell-Based Architecture и EventBus
🟣 Темы по архитектуре для инженеров ПО
🟣 Про CI/CD
🟣 Про шорткаты в Rider и Unity
🟣 Про Delta Time
🟣 Про собеседования
🟣 Про создание реплеев для игр
🟣 Про Unity AI Navigation
🟣 Энергетический менеджмент
🟣 Неоднозначный MVC: причины и следствия
🟣 Твины и альтернативы DOTween
🟣 Сценарий применения LLM из личного опыта
🟣 Конспект по локальным LLM для разработки
🟣 Реактивное программирование
🟣 Behaviour Tree и другие подходы для AI
🟣 Что такое База
🟣 Советы по работе с коммитами
🟣 Roslyn
🟣 internal и asmdef
🟣 Unity Input System
🟣 EntryPoint
🟣 Многопоточность в играх
🟣 SharedLogic
🟣 Анализаторы для Unity
🟣 Тенденции рынка IT
🟣 Передача задачи AI-агенту
🟣 AntiCheat
🟣 Тестовые задания
🟣 ADR: фиксируем архитектурные решения
🟣 Гибкая архитектура
🟣 Offerwall как наступившее будущее монетизации
🟣 Утечки памяти
🟣 Читеры в многопользовательских играх
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
SharedLogic между Unity-клиентом и бэкендом
Уровень материала: 🐓 #senior
На Хабре вышел📝 ценный материал про решение проблемы общей логики и данных между игровым клиентом на Unity и сервером. Доступного и понятного контента по этой теме немного, и найти его бывает сложно, поэтому рекомендую добавить в закладки.
С автором полностью согласен. Детали реализации могут отличаться от студии к студии, но суть передана ёмко, доходчиво и достаточно точно.
Помимо подробного описания принципов и реализации, в статье разобраны кейсы использования и варианты архитектур без применения SL. Также приложен💻 GitHub-репозиторий с примерами кода.
У меня тоже были планы по написанию подобного материала. Это должно было стать одной из глав📝 цикла про мультиплеер. Но эта статья закрыла такую потребность. Теперь буду просто ссылаться на неё в своих других работах.
Уже добавил ссылки в одну из📝 прошлых статей. Как появится время, порефакторю и впишу чуть более органично.
—————————————
#gamedev #development #unity #multiplayer #dotnet #sharedlogic #infrastructure #backend #геймдев #разработка #мультиплеер #инфраструктура #бэкенд #рекомендация #статья
Уровень материала: 🐓 #senior
На Хабре вышел
С автором полностью согласен. Детали реализации могут отличаться от студии к студии, но суть передана ёмко, доходчиво и достаточно точно.
Помимо подробного описания принципов и реализации, в статье разобраны кейсы использования и варианты архитектур без применения SL. Также приложен
У меня тоже были планы по написанию подобного материала. Это должно было стать одной из глав
Уже добавил ссылки в одну из
—————————————
#gamedev #development #unity #multiplayer #dotnet #sharedlogic #infrastructure #backend #геймдев #разработка #мультиплеер #инфраструктура #бэкенд #рекомендация #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5
YouTube
Иван Белехов - Мультиплеер в играх и как его реализовать с UNIGINE (Лекции UNIGINE Open Air 2025)
Из лекции Ивана вы узнаете:
— Быстрый ввод в теорию сетей;
— TCP vs UDP: в чем разница и что выбрать;
— Как устроен обмен сообщениями: gRPC, yojimbo, valvesockets;
— Архитектура сетевого фреймворка на пальцах;
— Примеры на UNIGINE: шутер и стратегия в…
— Быстрый ввод в теорию сетей;
— TCP vs UDP: в чем разница и что выбрать;
— Как устроен обмен сообщениями: gRPC, yojimbo, valvesockets;
— Архитектура сетевого фреймворка на пальцах;
— Примеры на UNIGINE: шутер и стратегия в…
Рекомендация доклада по мультиплееру
Уровень материала: 🐥 #middle
📺 YouTube | 📺 VK
На Unigine в этом году был классный доклад про мультиплеер от Ивана Белехова, ex-разработчика World of Warships. Он успел пробежаться по передаче пакетов, обмену сообщениями, протоколам, NAT, топологиям, техникам для борьбы с задержками, оптимизации трафика, масштабированию и безопасности.
За час полноценно рассказать про мультиплеер что-то очень сложно. В прошлом году я тоже пробовал играть в эту игру (и проиграл). Мне тоже не удалось занять достаточный по времени слот на выступление — пришлось сильно торопиться и ужиматься.
📺 YouTube | 📺 VK
Моя ставка была на упрощение, доступность и объём. У Ивана доклад посложнее, техничнее и фундаментальнее. Без определённых знаний, возможно, будет не всё понятно, но слушается легко и приятно.
Подчеркну отдельные общие тезисы, которые я тоже разделяю:
⚫️ Мультиплеер заставляет программиста думать о чёткой архитектуре и данных, которые передаются между разными компьютерами, в отличие от синглплеера, где можно допускать упрощения.
⚫️ Мультиплеер открывает уникальные механики и социальные аспекты, недоступные в одиночных играх.
⚫️ Выбор архитектуры и техник — это всегда баланс между геймдизайном, производительностью, сложностью реализации и игровыми ощущениями. Решение зависит от конкретных требований проекта.
⚫️ Важно не столько предоставить честную синхронизацию, сколько заставить игроков поверить в то, что всё точно и корректно синхронизируется.
Замеченная ранее тенденция на повышение интереса к мультиплееру с течением времени находит всё большее подтверждение, в т.ч. среди вакансий. Радует, что эта тема освещается больше и чаще. Возможно, это поможет взрастить больше подготовленных разработчиков.
И рекомендую заглянуть в остальные доклады с прошедшего Unigine Open Air🎙
—————————————
#development #gamedev #architecture #network #netcode #multiplayer #рекомендация #видео #мультиплеер
Уровень материала: 🐥 #middle
На Unigine в этом году был классный доклад про мультиплеер от Ивана Белехова, ex-разработчика World of Warships. Он успел пробежаться по передаче пакетов, обмену сообщениями, протоколам, NAT, топологиям, техникам для борьбы с задержками, оптимизации трафика, масштабированию и безопасности.
За час полноценно рассказать про мультиплеер что-то очень сложно. В прошлом году я тоже пробовал играть в эту игру (и проиграл). Мне тоже не удалось занять достаточный по времени слот на выступление — пришлось сильно торопиться и ужиматься.
Моя ставка была на упрощение, доступность и объём. У Ивана доклад посложнее, техничнее и фундаментальнее. Без определённых знаний, возможно, будет не всё понятно, но слушается легко и приятно.
Подчеркну отдельные общие тезисы, которые я тоже разделяю:
Замеченная ранее тенденция на повышение интереса к мультиплееру с течением времени находит всё большее подтверждение, в т.ч. среди вакансий. Радует, что эта тема освещается больше и чаще. Возможно, это поможет взрастить больше подготовленных разработчиков.
И рекомендую заглянуть в остальные доклады с прошедшего Unigine Open Air
—————————————
#development #gamedev #architecture #network #netcode #multiplayer #рекомендация #видео #мультиплеер
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤1
Читеры в многопользовательских играх
Уровень материала: 🐥 #middle #multiplayer
Последний шэр хорошего доклада с Unite 2025.
В этот раз Making games that keep cheaters away📺
Тут тему читов тоже уже ранее немного однажды задевал: пуньк💬
И на Хабре ранее натыкался на серию статей: про сами читы и про анти-читы📝
Что было внутри доклада, с небольшими дополнениями от себя:
1️⃣ Мотивации читеров:
🟣 Заработок (P2E, продажа прокаченных аккаунтов и читов, влияние на игровую хард-экономику).
🟣 Соц. статус: получение признания и статуса без усилий.
🟣 Доминирование.
2️⃣ Типы читов:
🟣 Локальные (Wall Hack, Radar, Aim Bots и т.д.)
🟣 Сетевые (Lag Switch, Fake Lag Drop Hack и т.д.)
🟣 Читы, изменяющие состояние игры (Speed Hack, Fly Hack и т.д.).
3️⃣ Способы реализации читов:
🟣 Изменение данных в RAM.
🟣 Реверс инжениринг, патчинг кода, подмена ассетов.
🟣 Перехват системных вызовов.
🟣 Подмена сетевых пакетов.
4️⃣ Модели авторитарность:
🟣 Server Authority, когда всё решает сервер, самый безопасный и подходящий для PvP.
🟣 Про виды авторитарности и топологий я ранее собирал более подробный материал 💬
5️⃣ Технические барьеры для читеров:
🟣 Code Obfuscation: беспорядочное переименование, перемешивание и замусоривание итогового кода.
🟣 Memory Scrambling: случайное смещение адресов в RAM.
🟣 Projection: смещение чисел в RAM, чтобы не хранить их в памяти в явном виде.
🟣 Network Encryption: шифрование сетевого трафика.
🟣 Data Encryption: шифрование сохраняемых данных.
🟣 Code Virtualization: использование кастомного языка для части кода игры, который может понять только встроенная в игру "виртуальная машина".
🟣 Integrity Protection: хэширование и сверка файлов и участков памяти игры.
🟣 Anti-cheats инструменты: Client-side, Server-side.
🟣 Runtime-проверка подключенных дебаггеров.
🟣 Анализ паттернов поведения.
6️⃣ Правила разработки:
🟣 Запрещено хранить пароли и API-ключи в коде или системах контроля версий.
🟣 Серверный и клиентский код должны находиться в разных сборках и не попадать друг в друга.
🟣 Хранить в RAM минимально необходимую информацию для продолжения игры текущего конкретного игрока.
🟣 Не хранить в RAM избыточные данные других игроков.
7️⃣ Стратегии наказания:
🟣 Платные игры: бан для читера в бесплатной игре ничего не стоит.
🟣 Банить отложено, не сразу, чтобы читеры не поняли, из-за чего именно случился бан.
8️⃣ Задача в борьбе с читерами:
🟣 Искоренить читеров невозможно, но можно сделать взлом настолько дорогим и скучным, чтобы им было проще уйти в другой проект.
Это в т.ч. коррелирует с мыслью, которую я давно прочно ухватил из "45 татуировок менеджера" Батырева: если хочешь, чтобы следовали правилам, нужно создать условия, в которых нарушать правила настолько сложно, что проще им следовать.
Уровень материала: 🐥 #middle #multiplayer
Последний шэр хорошего доклада с Unite 2025.
В этот раз Making games that keep cheaters away
Тут тему читов тоже уже ранее немного однажды задевал: пуньк
И на Хабре ранее натыкался на серию статей: про сами читы и про анти-читы
Что было внутри доклада, с небольшими дополнениями от себя:
Это в т.ч. коррелирует с мыслью, которую я давно прочно ухватил из "45 татуировок менеджера" Батырева: если хочешь, чтобы следовали правилам, нужно создать условия, в которых нарушать правила настолько сложно, что проще им следовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥5
Релиз Spacetime DB 2.0
Уровень материала:📎 #tool #multiplayer
Давно собирался написать про этот инструмент, но всё не доходили руки. С наводки в комментариях повод появился — SpacetimeDB обновились до версии 2.
SpacetimeDB — это in‑memory реляционная БД, которая в то же время является backend‑сервером, а логика выполняется непосредственно с данными в БД.
При этом для "скриптинга" поддерживается много языков: от Rust до C#.
🖇️ Website | Github 💻
Проект изначально разрабатывался студией Clockwork Labs специально для их собственной MMO — BitCraft. Но позже они выкатили это на Github и теперь постепенно всё больше уходят в сторону полноценного Backend-as-a-Service.
Собственно сама идея этой платформы — это экстремально низкая задержка, что как раз очень важно для realtime-игр. Чем и продиктованы основные архитектурные решения.
Продолжение — в комментариях💬
Уровень материала:
Давно собирался написать про этот инструмент, но всё не доходили руки. С наводки в комментариях повод появился — SpacetimeDB обновились до версии 2.
SpacetimeDB — это in‑memory реляционная БД, которая в то же время является backend‑сервером, а логика выполняется непосредственно с данными в БД.
При этом для "скриптинга" поддерживается много языков: от Rust до C#.
Проект изначально разрабатывался студией Clockwork Labs специально для их собственной MMO — BitCraft. Но позже они выкатили это на Github и теперь постепенно всё больше уходят в сторону полноценного Backend-as-a-Service.
Собственно сама идея этой платформы — это экстремально низкая задержка, что как раз очень важно для realtime-игр. Чем и продиктованы основные архитектурные решения.
Продолжение — в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5🔥4