aks2dio | Unity и геймдев
437 subscribers
173 photos
5 videos
209 links
Директ: @antonkerp

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

С 2017 г. разрабатываю, лидую, преподаю и консультирую.
Был в найме, стартапах, фрилансе, инди.
Опыт: Mobile, Desktop, Web, XR.
Download Telegram
🟦 Гибкая архитектура 🟪
Уровень материала:
🐥 #middle

Мне очень откликнулась статья с Хабра "Код, не боящийся изменений" 📝 Не ко всем проектам это применимо. Но для длинных проектов из геймдева, где сегодня можно начать фермой, а через год закончить пост-апокалиптическим шутером, я нахожу всё описанное очень актуальным.

Также этот материал отлично дополнил мои заметки по Гибкой Архитектуре. Приправив этот мэшап своими комментариями, я собрал коллекцию карточек по теме. И ещё немного доработал свой конструктор карточек.

📌 Особо важным я нахожу раздел про дублирование. Почему-то у разработчиков есть неудержимая тяга к избеганию любого маломальского дублирования. Порой до фанатизма: на уровне простой последовательности символов. Это зачастую приводит только к бóльшим проблемам, увеличению ненужных связей и сложностям в поддержке.

🎙 Моё мнение на этот счёт: не нужно пытаться устранять дублирование кода, который не успел устояться, доказать свою жизнеспособность и факт реального дублирования на уровне бизнес-логики. Подобные преждевременные унификации только порождают больше связей, что усложнит последующие итерации изменений, в т.ч. и обратных.

Дополнительные комментарии по теме 💬

—————————————
#development #gamedev #architecture #карточки #рекомендация #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥41
Наследование и Композиция
Уровень материала:
🐣 #junior

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

Но всё же важно правильно распознать сценарий применения, во избежание появления мутантов типа FlyingEnemyWithShielвButWithoutGun.

Поделюсь своим конспектом по теме — может быть это поможет лучше понять различия.

💜 Дисклеймер: некоторые утверждения для разных языков программирования могут иметь разную степень актуальности.

Продолжение — в комментариях 💜
—————————————
#development #architecture #aks2dio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41
Уязвимость в Unity, о которой ты уже наверняка в курсе

Уровень материала: 📣 #news

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

💜💜💜💜💜

Стоит ли уделять этому внимание: Если узнал об этом только сейчас, то можно просто забить.

В остальном, предпринять действия стоит, но чем меньше аудитория, тем меньше поводов для спешки.

Для большинства запланировать апдейт в ближайший релиз будет более чем достаточно.

💜💜💜💜💜

Уязвимость затрагивает 4 платформы: Android, Windows, Linux и macOS.

И все билды, сделанные на Unity версии 2017.1 и выше, в т.ч. на Unity 6.

💜💜💜💜💜

Чем опасна уязвимость (перевод источника):
Позволяет выполнять локальный код и получать доступ к конфиденциальной информации на устройствах, где запущены unity-приложения.

Выполнение кода ограничено уровнем привилегий уязвимого приложения.

Раскрытие информации ограничено информацией, доступной уязвимому приложению.


Если раньше всё это время жили-не тужили, то теперь об этой уязвимости знают все, и диванные хакеры могут начать себя развлекать 🎩

Но и современные ОС довольно сильно ограничивают дозволенное для приложений.

💜💜💜💜💜

Принятые меры:

Valve, Meta, Microsoft и Google уже подсуетились и обновили свои площадки и платформы для подавления уязвимости.

А Unity выкатили обновления для всех своих LTS, начиная с 2019 (2018 и 2017 пока в пролёте). И опубликовали Patcher, который позволяет залатать билд без пересборки (но перевыложить на площадки придётся).

Подробности - в официальном гайде 📱
—————————————
#development #gamedev #unity #issue
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Рекомендация доклада по мультиплееру
Уровень материала: 🐥 #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
🔥81
Не Unity единым
Уровень материала: ☕️ #offtop

Разработчики Redis переиграли Unity и закрыли уязвимость аж 13-летней давности: CVE-2025-49844 с оценкой 9.9.

Уязвимость затрагивает все версии Redis. По некоторым оценкам в зоне риска около 330 000 экземпляров Redis, доступных из интернета.

При успешной атаке можно удалённо выполнять код с правами хоста, получив полный контроль над системой, украсть учетные данные, внедрить вредоносное ПО, шифровать данные, использовать машину для атак внутри инфраструктуры.

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

Официальные рекомендации: ограничить сетевой доступ, включить обязательную аутентификацию, использовать минимальные права, отказаться по возможности от Lua-скриптов, которые и стали основными виновниками.

Облачная версия Redis уже обновлена. А пользователям self-hosted вариантов (всем привет) нужно провести обновление самостоятельно.

Официальная запись в блоге: Redis Blog
🔥5👍2
📅 MidUp #11 📅

Подборка GameDev и IT мероприятий, особенно региональных, которые встретил в чатах, группах и просто в сети.

⚫️Октябрь
⚫️Ноябрь
⚫️Декабрь

Ещё больше GameDev-событий — в Геймдев Афише ✈️
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2👍1
Ретро-гейминг в студию
Уровень материала: ☕️ #offtop

Небольшой оффтоп. Встретил любопытный сайт, где можно поиграть в бесконечную кучу ретро-игр от 34 различных приставок прямо в браузере и бесплатно.

Управление не самое удобное, но чтобы побаловаться и поностальгировать, кажется, что достаточно 😬

📎 Ссылка: https://gam.onl/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍1
Думать - не вредно
Уровень материала: 🦉 #management

Интересная тема про поиск и удержание "идеальных разработчиков", которые сначала думают, проектируют, оценивают и только потом пишут код.

О том, как их искать, собеседовать, удерживать и выстраивать культуру работы — про это всё в этом содержательном двухсерийном посте.

Проведена наглядная аналогия с работой LLM. Описаны требуемые навыки и умения, способы их проверки, необходимость уделения времени на мыслительную работу. И упомянуто много полезных терминов.

Материал полезен как и с точки зрения менеджмента, так и с точки зрения технического развития, чтобы понимать, на прокачку каких навыков тоже стоит выделять время.
🔥5
🤡 MemIT #14 🤡

Начнём рабочую недельку с подборки увеселительных мемов про игры, GameDev и IT прямиком из рабочих чатов и ваших ответов к предыдущим подборкам.

Картинки — в комментариях 💬

🆙 прошлый выпуск 🆙
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤣4👍2🔥2
Дополнения по Гибкой Архитектуре

Тема про Гибкую Архитектуру не оставила многих равнодушными и породила немного обсуждений и философии.

Собрал свои дополнительные комментарии и пояснения к прошлой публикации вместе. Оставляю для истории — возможно, ещё пригодится.

Продолжение — в комментариях 💬
————————————
#development #architecture #ask2dio
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥5
Способ хранения настроек своих тулов в Unity
Уровень материала: 🐣 #junior

Для различных редакторных тулов внутри Unity часто требуется сохранять какие-то настройки, промежуточные состояния и выбранные опции. Где-то временно, где-то надолго, где-то чтобы данные были общими для всех в репозитории, а где-то только локально на конкретном устройстве.

Часто для этого используют ScriptableObject'ы. Но тогда нужно создавать объект в проекте, следить за его наличием, хранить где-то в файловой системе, добавлять в Git или в .gitignore (или иные варианты VCS). То же самое относится к другим сериализованным форматам данных.

Но что, если нужно сохранить какую-то мелочь, которая не должна попасть в VCS и которая нужна только на некоторое время?

Казалось бы, для этого могли бы подойти PlayerPrefs. Однако PlayerPrefs созданы для игровых данных. Если игра активно использует этот механизм, есть риск из редактора случайно нарушить целостность игровых данных.

Продолжение — в комментариях 💬
〰️〰️〰️〰️〰️〰️

#gamedev #unity #development #editor #save #tool
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔2🔥1
Передача задачи AI-агенту
Уровень материала: 🦆 #ai

Интересное видео 📱 про особенности передачи задач для исполнения AI-агенту.

Там подробно и с примерами про то, когда что-то можно поручить машине, а что не стоит. Здесь очень тезисно оставлю рассмотренные в материале критерии, с которыми я полностью согласен.

〰️〰️〰️〰️〰️〰️〰️〰️
🍳 Основные принципы 🗑️

➡️ Эффективность использования ИИ-агентов зависит от умения правильно ставить задачи.

➡️ Успех в работе с ИИ-агентами приходит с практикой (~80 часов).

➡️ Ключевой элемент — предварительный анализ задачи.

〰️〰️〰️〰️〰️〰️〰️〰️
🍳 Критерии 🗑️

1️⃣ Уникальность задачи

Что оценивает: насколько задача соответствует типичному паттерну, который ИИ-агент уже много раз видел.

Решение: Если задача нетипична, декомпозируйте на более типичные.


2️⃣ Глубина погружения в код

Что оценивает: сколько контекста должен изучить ИИ-агент для выполнения задачи.

Решение: Сужайте контекст и разбивайте задачу на последовательные ограниченные этапы.


3️⃣ Знания, которых нет в кодовой базе

Что оценивает: требует ли задача знаний о предметной области, которые не отражены напрямую в коде.

Решение: Важные нюансы предметной области — в промт или глобальные правила. Мысленно ставьте себя на место ИИ и определяйте, какая информация нужна для решения задачи.


4️⃣ Количество мест для изменений

Что оценивает: сколько файлов и участков кода нужно будет изменить для решения задачи.

Решение: Декомпозируйте. Если одно изменение влечёт много правок — сделайте сами.


5️⃣ Неявные состояния системы

Что оценивает: сколько скрытых состояний и их комбинаций должен учитывать ИИ-агент.

Решение: Если много неявных состояний, лучше писать код вручную.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3
🧩 Фан в геймдизайне 🧩

Многие команды разработчиков сталкиваются с тем, что их игры, несмотря на следование всем канонам геймдизайна, не могут удержать игроков. Игры выглядят аккуратно, но в них отсутствует ключевой элемент — фан.

Именно об этом доклад Владимира Ковтуна с GP Conf 2025.
(пока что лучший из опубликованных)

📺 VK Video | 📺 YouTube

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

〰️〰️〰️〰️〰️〰️

🍳 Тезисы из доклада: 🗑️

➡️ Фан — это последовательность действий игрока, которая сопровождается явным результатом и открывает новые возможности.

➡️ Психология фана: Фан удовлетворяет три потребности: Автономия, Компетентность, Причастность.

➡️ Поток (Flow): Фан достигается через баланс "Вызова" и "Навыков". Главный маркер — желание "попробовать еще разок".

➡️ Прототипирование: Тестируйте каждую механику отдельно, в Graybox, начиная с одного действия, и ищите маркер "еще попыточку" у игроков.

➡️ Ядро фана: Действие игрока должно значимо менять пространство возможностей (новые риски, ресурсы или цели).

➡️ Метагейм: "Хорошие" апгрейды меняют опции взаимодействия и тактики, а не просто увеличивают числа и статы.

➡️ Фан ≠ Дофамин: Фан — это результат спроектированной системы причин и следствий, а не просто дофаминовая петля для удержания.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2