aks2dio | Unity и геймдев
491 subscribers
185 photos
5 videos
222 links
Директ: @antonkerp

Про GameDev, разработку на Unity и C#, менеджмент, образование, менторство и карьеру в целом.

С 2017 г. разрабатываю, лидую, преподаю и консультирую.
Был в найме, стартапах, фрилансе, инди.
Опыт: Mobile, Desktop, Web, XR.
Download Telegram
📝 Автостопом по мультиплееру ч1. 📝

Первый опыт оформления статьи
Использовал 4 площадки: VK, Dzen, Habr, Dtf
Опыт взаимодействия с площадками опишу позже отдельным постом 📦
Заодно можно будет поделиться реакциями и цифрами 🧮
Пока могу сказать, что по площадкам — всё не однозначно и везде свои "приколы" 🤡
————————————————————
#unity #gamedev #development #multiplayer #геймдев #разработка #мультиплеер #статья #aks2dio
🔥3
📝 Автостопом по мультиплееру ч2. 📝
Прошёл спустя неделю модерацию на Хабре. Теперь официально Хабровчанин.
В честь этого события (нет) публикую следующую статью цикла про мультиплеер.
Там пишу про отличия синглплеера и мультиплеера и про то, где эти отличия находятся.
Хабр VK Dtf Dzen Pikabu
————————————————————
#unity #gamedev #development #multiplayer #геймдев #разработка #мультиплеер #статья #aks2dio
👍2🔥2
📝 Опубликовал третью статью про разработку мультиплеерных игр 📝

Статья доступна на Habr, VK, Dtf, Dzen, Pikabu
В ней продолжаю копать в сторону сетевого мультиплеера и разбираю, что есть "сервер", а что есть "клиент".
Помимо самой статьи в конце можно найти ссылки на другие полезные материалы по этой теме, которые помогут достроить контекст.

Эта статья получилась пока самой большой по материалу и по времени написания. Начал постепенно искать свой "дизайн" 🎨
Многое было сокращено, многое было вынесено в другие будущие статьи — можно сказать, что черновики уже есть ✂️
Пока писал, отсмотрел уйму материала. Узнал даже что-то новое и дополнил свою картинку понимания 🧠

Пока дальнейшую работу ставлю на паузу. Как закончу с подготовкой к фестивалю, продолжу генерить контент.
Но посты с заметками и мыслями по встречающемуся контенту никуда не денутся ✏️
————————————————————
#unity #gamedev #development #multiplayer #статья #геймдев #разработка #мультиплеер #aks2dio
👍3🔥1
🌐 Заметка о контенте по мультиплееру c Unite 🌐
Уровень материала: 🐥 #middle

📱 Буквально вчера Unity выпустила нарезку выступлений с прошедшего Unite, посвящённых мультиплеерной разработке: непосредственно неткоду и сетевой инфраструктуре.

📱 Multiplayer | Distributed Authority | Unity 6 | Structured Approach

Первое видео, на мой взгляд, самое базированное, концентрированное и интересное из всех: всё по делу, всё полезно, всё в точку и слушается легко.

Последнее — самое неоднозначное. Слушается как "вода водой". А на случайный момент мотаешь и уже "что-то в этом есть". Возможно сказывается тяжёлый французский акцент 🧑‍🎨 Но и синхронный перевод ситуацию лучше не сделал.

Весной я тоже выступал с обзорным докладом по мультиплееру: 📱 YouTube / 📱 VK / 🧩 RuTube

Наготовил, правда, контента на 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: Авторитарность и Топологии

📝 Habr / 📝 Dtf / 💙 VK / 📝 Dzen

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

В этой части рассказываю про варианты реализации мультиплеерного взаимодействия с использованием игрового сервера и без него. Попутно рассматривая различные подводные камни и оставляя свои рекомендации.

⬆прошлая часть ⬆
—————————————
#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 #геймдев #разработка #мультиплеер #инфраструктура #бэкенд #рекомендация #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5
Рекомендация доклада по мультиплееру
Уровень материала: 🐥 #middle

📺 YouTube | 📺 VK

На Unigine в этом году был классный доклад про мультиплеер от Ивана Белехова, ex-разработчика World of Warships. Он успел пробежаться по передаче пакетов, обмену сообщениями, протоколам, NAT, топологиям, техникам для борьбы с задержками, оптимизации трафика, масштабированию и безопасности.

За час полноценно рассказать про мультиплеер что-то очень сложно. В прошлом году я тоже пробовал играть в эту игру (и проиграл). Мне тоже не удалось занять достаточный по времени слот на выступление — пришлось сильно торопиться и ужиматься.
📺 YouTube | 📺 VK

Моя ставка была на упрощение, доступность и объём. У Ивана доклад посложнее, техничнее и фундаментальнее. Без определённых знаний, возможно, будет не всё понятно, но слушается легко и приятно.

Подчеркну отдельные общие тезисы, которые я тоже разделяю:

⚫️Мультиплеер заставляет программиста думать о чёткой архитектуре и данных, которые передаются между разными компьютерами, в отличие от синглплеера, где можно допускать упрощения.

⚫️Мультиплеер открывает уникальные механики и социальные аспекты, недоступные в одиночных играх.

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

⚫️Важно не столько предоставить честную синхронизацию, сколько заставить игроков поверить в то, что всё точно и корректно синхронизируется.

Замеченная ранее тенденция на повышение интереса к мультиплееру с течением времени находит всё большее подтверждение, в т.ч. среди вакансий. Радует, что эта тема освещается больше и чаще. Возможно, это поможет взрастить больше подготовленных разработчиков.

И рекомендую заглянуть в остальные доклады с прошедшего 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 татуировок менеджера" Батырева: если хочешь, чтобы следовали правилам, нужно создать условия, в которых нарушать правила настолько сложно, что проще им следовать.
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-игр. Чем и продиктованы основные архитектурные решения.

Продолжение — в комментариях 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5🔥4