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

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

С 2017 г. разрабатываю, лидую, преподаю и консультирую.
Был в найме, стартапах, фрилансе, инди.
Опыт: Mobile, Desktop, Web, XR.
Download Telegram
🔍 Разыскивается Middle Unity Developer 🔍
Подробности и отклик: 🔎 hh
Уровень материала: 👀 #hr

Вводные:
Проект: Mobile 3D F2P Action RPG.
Стек: Unity, Addressables, Zenject, UniTask, Mirror, Unity backend.

Ожидаемые навыки:
• Понимание принципов сетевого взаимодействия.
• Опыт с realtime-мультиплеером, не обязательно коммерческий.
• Навыки разработки сервисных проектов с развитой мета-игрой.
• Умение разбираться в чужом коде и терпимость к работе с legacy.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🎯 Тактический Pathfinding 🎯
Уровень материала: 🐥 #middle

Ознакомился с классным видео 📺, которое развивает поднятую ранее тему игрового ИИ. Автор показывает, как можно дополнить алгоритм A* для учёта различных внутриигровых условий.

⚠️ Например в видео ИИ-агенты оценивают опасность маршрута: дальность стрельбы противников, траекторию обстрела и время нахождения на опасных участках. Чтобы агенты выбирали не только короткий, но и наиболее безопасный путь.

За 16 минут доходчиво, с примерами качественного и понятного кода, разбирается не только сам по себе интересный сценарий, но и демонстрируются полезные техники работы с битовыми масками, визуализацией алгоритма и пр. (наверняка ты для себя отметишь и что-нибудь ещё)

🔖 В своей практике пока подобное поведение реализовывать не приходилось, поэтому видео заслуженно отправляется в закладки, чтобы своевременно вдохновить, когда придёт время.
————————————
#unity #gamedev #development #ai #pathfinding #astar #геймдев #разработка #ии #поискпути #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍311
📂 Новый файловый менеджер для Windows 📂
Уровень материала: ⚙️ #tool

Давно слежу за проектом File Pilot, ещё со времён когда он назывался Disk Voyager. И на прошлой неделе наконец-то получил письмо о выходе публичной бета-версии.

Запуск как-то тихо прошёл. Не нашёл интересных публикаций для репоста. Разве что небольшая новость на Хабре 📝, да короткий обзор на YouTube 📱

👍 С момента релиза активно тестирую. Пока доволен. Работает очень шустро. Много горячих клавиш, быстрый поиск, фильтрация контекстного меню, удобный Go To. Ещё бы горизонтальную навигацию по стрелочкам, как на маке, и совсем было бы хорошо.

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

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

upd: куплено
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
🧠 Что такое База 🧠
Уровень материала: 🎓 #education

У S0ER выходил базированный пост про базу в IT.

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

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

База — это результат труда и длительного воздействия на организм с помощью упражнений.

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

База — это навыки и опыт, которые помогают сформировать ваш главный инструмент как инженера — ваш мозг!


Я обычно говорю, что
База — это сформированный майндсет и накопленный практический опыт.


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

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

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

📉 Более короткие популярные коммерческие курсы нацелены, наоборот, на предоставление практических навыков (оставим за скобками их качество). То, что можно быстро пощупать, измерить, применить и, соответственно, легче продать. Это рабочий подход для повышения компетенций, но недостаточный для их приобретения.

🟣Для чего нужна База
🟣База и Книги
—————————————
#development #разработка #геймдев #обучение #образование #курсы #рекомендация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥21😴1
⛓️‍💥 Советы по работе с коммитами ⛓️‍💥
Уровень материала: 🐣 #junior 🐥 #middle

💬 Делюсь кратенькой публикацией с 4-мя советами по рефакторингу кода.

Хорошие советы — и сам их придерживаюсь. Более того, использую эти практики не только при рефакторинге, но и вообще при работе с VCS (системами контроля версий).

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

💡 Разделение работы на короткие завершённые этапы помогает сузить контекст работы.

Чем меньше контекст, тем легче с ним работать. Это позволяет сосредоточиться на деталях, лучше продумать общий механизм и поддерживать прозрачную историю изменений.

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

🧩 Работа с коммитами — это отдельный навык, который требует практики и освоения.

Бардак в истории коммитов ничем не лучше спагетти-кода: для отката правок или поиска причин изменений приходится разбирать огромные непонятные запутанные завалы.

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

✔️ Грамотная и вдумчивая работа с коммитами делает разработку проще и прозрачнее.

Поддержание порядка особенно важно в хаотичном геймдеве, где сроки всегда горят, а приоритеты меняются каждый день. Чёткая история коммитов помогает быстро адаптироваться и не терять контроль над проектом.
—————————————
#gamedev #development #git #vcs #advice #геймдев #разработка #гит #скв #советы #рекомендация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥41
☀️ Unigine Open Air ☀️
📍Локация: Томск

Unigine открыли продажу первой ограниченной партии билетов на свой летний Open Air.

Давно не был в Томске — пожалуй, пора ✈️

Билет прикупил, но уже думаю над тем, чтобы подать заявку на доклад 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1💩1
🤡 MemIT #8 🤡

Для тех, кому было на этой неделе не до смеха. Подборка из 10 кеков/шуток/юморесок/мемов про игры, GameDev и IT, которые были мною украдены из рабочих чатов и ваших комментариев к предыдущим подборкам.

Мемы уже в комментариях 💬

⬆️ прошлый выпуск ⬆️
—————————————
#gamedev #development #it #meme #humor #геймдев #разработка #айти #мемы #юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣61👍1🔥1
🎙 Подкаст о продвижении игр 🎙
Уровень материала: 🐣 #junior

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

🎙 Недавно в списке воспроизведения подвернулся подкаст от VK "+100 монет", который немножко вернул меня в те давние времена. Года идут — темы не меняются. И в этом выпуске 📺 была поднята важная вечная тема про продвижение своей игры.

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

💡 В подкасте часто упоминается термин USP, но ни разу не раскрывается. Исправляю это упущение:

Unique Selling Proposition — это то, что выделяет игру на фоне конкурентов и привлекает внимание целевой аудитории.


💬 Мне понравилось несколько цитат:
Хочешь результат — научись его считать.

Геймдев — это бизнес. А бизнес должен зарабатывать деньги.

На первом проекте вы зарабатываете опыт, шишки и какое-то количество седины.


🤘 В общем, всё как писали классики:
Sad but True


🔗 Страница выпуска со всеми площадками для прослушивания
————————————
#unity #gamedev #development #marketing #promotion #games #геймдев #разработка #маркетинг #продвижение #игры #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2
👩‍💻 Roslyn 👩‍💻
Уровень материала: 🐓 #senior

На этой неделе выходил очень полезный ролик 📱 про использование Roslyn в связке с Unity. Кто интересуется и следит за C#, уже наверняка знакомы с Roslyn. А в инфополе Unity Roslyn упоминается не часто, разве что в беседах между разработчиками. Так что это весьма редкий контент про весьма полезный инструмент.

Roslyn 📱 — это компилятор для C# и Visual Basic, предоставляющий API для компиляции, рефакторинга, статического анализа и генерации кода.

Он позволяет производить поиск потенциальных ошибок, нарушений стиля или уязвимостей. Автоматизировано исправлять найденные проблемы в коде. А также генерировать всякий boilerplate, что бывает часто нужно, например, при разработке на ECS или при реализации DI (см. Pure DI 📱).

При этом все эти автоматизации можно привязать к пайплайнам в CI/CD и прогонять при мержах или сборках.

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

Можно даже написать простой кодоген "на коленке" из "строк и палок" как в этом видео 📱

Почему это не так удобно, как Roslyn, подробно и наглядно рассказано в классном докладе с DotNext 📱

Roslyn преобразует исходный код в синтаксическое дерево (Syntax Tree 📱), где каждый узел соответствует определённой синтаксической конструкции (класс, метод, выражение и т.д.).

Также Roslyn предоставляет доступ к семантической модели (Semantic Model 📱), которая позволяет анализировать типы данных, символы и контекст использования. Например, это позволяет искать ссылки на методы.
————————————
#unity #gamedev #development #roslyn #tool #compiler #analyse #геймдев #разработка #анализ #инструмент #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3🥴1
В видео из прошлого поста можно заметить также любопытный момент про специальные директории, которые игнорируются в Unity.

Т.е. при необходимости какие-то папки можно сделать "невидимыми" для движка. Как это сделать, можно посмотреть в документации 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
🧠 Для чего нужна База 🧠
Уровень материала: 🎓 #education

💬 К прошлому посту про «базу» поступил комментарий, ответ на который получился объёмным. Но, как мне показалось, важным. Я решил получившуюся мысль сохранить и дополнить.

Время — важный инструмент, который работает как «на», так и «против» нас. Со временем каждый может стать экспертом в своей области — вопрос только в количестве времени. Однако в конкурентной среде важно использовать время наиболее эффективно.

Целенаправленная работа над своей «базой» позволяет приобрести на длинной дистанции неоспоримое преимущество перед теми, кто полагается только на «практический опыт».

📞 Решая конкретные проблемы, человек учится справляться именно с ними. Хорошо, если при этом он выстраивает логические связи, рефлексирует и углубляет знания с помощью внешних источников.

Это развивает майндсет и помогает принимать более точные решения в похожих или совершенно новых ситуациях. Именно так происходит качественный профессиональный рост.

Но, как показывает практика преподавания и найма, на это способны не все. Многие мыслят конкретными кейсами и теряются, когда сталкиваются с нестандартными для них ситуациями. Или, боясь «ударить в грязь лицом», принимают импульсивные, неэффективные и опасные решения.

🍽 Казалось бы, нужно просто набрать больше кейсов. Но проблема в том, что научиться решать все проблемы на конкретных сценариях невозможно. Их миллионы, особенно в IT, где их количество растёт ежедневно вместе с развитием технологий и процессов.

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

👩‍💻 Например, для программистов важно алгоритмическое мышление. Оно учит не просто писать код под конкретную задачу, а видеть структуру проблемы. Разрабатывать системы, устойчивые к изменению входных данных и окружения. И, соответственно, менее подверженные появлению багов и недоработок.

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

⚙️ Инструменты и задачи меняются. А «база» — остаётся и помогает быстрее адаптироваться к изменениям.

🟣Что такое База
🟣База и Книги
—————————————
#development #разработка #обучение #образование #aks2dio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👌1
🔓 Игнорирование internal для asmdef 🔓
Уровень материала: 🐥 #middle

Assembly Definitions — мощный инструмент для организации кода в Unity.

📌 Кратко про возможности Assembly Definitions:

🟡Помогает разделить проект на модули и изолировать их друг от друга (UI, Gameplay, Data).

🟡Помогает прозрачно контролировать зависимости между модулями.

🟡Предотвращает появление циклических зависимостей, хотя бы на уровне модулей.

🟡Ускоряет компиляцию скриптов, т.к. перекомпиляция происходит только для изменившихся и зависимых от них asmdef'ов.

🟡Позволяет реализовывать платформозависимые модули (в т.ч. чисто Editor-модули).

🟡Позволяет использовать Define Constraints на уровне целого модуля.

🟡Позволяет реализовывать Define Symbols на основе версий Unity или используемых пакетов.

🟡Позволяет пользоваться благами модификатора доступа internal.

Про это более подробно написано в документации Unity 📱

⬇️⬇️⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
⬆️⬆️⬆️

🔒 Про internal 🔒

Что делает internal: он делает доступ невозможным за пределами конкретного asmdef. Т.е. с internal можно взаимодействовать только в рамках одного модуля. Как private в рамках одного класса. Только уровнем выше.

Это помогает контролировать как Low Coupling, так и High Cohesion (см GRASP).

⬇️⬇️⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⬆️⬆️⬆️

🚧 Преодоление internal 🚧

Бывает, что одним модулям нужно иметь доступ к internal-штукам других модулей. Это неправильно с точки зрения проектирования, но есть, как минимум, два исключения. Это тесты и тулзы для редактора.

Test и Editor – два модуля, которые вполне оправданно хотят трогать другие модули за все доступные и недоступные места. Но как это сделать?

Ответ: атрибут InternalsVisibleTo. Но как его использовать?

Это один из тех моментов, который плохо освещён в документации Unity 📱 Но всё очень просто.

Достаточно около asmdef'а создать файл AssemblyInfo.cs и поместить там атрибут InternalsVisibleTo с указанием имён asmdef'ов, для которых должен быть открыт доступ до internal методов и классов.

⬇️⬇️⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
⬆️⬆️⬆️

🔍 Поиск asmdef'ов 🔍

Не все это знают, но в Unity внутри вкладки Project можно отфильтровать все Assembly Definition в проекте через промпт
t: asmdef 

​—————————————
#gamedev #development #unity #assembly #asmdef #internal #advice #геймдев #разработка #советы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2
🚀 Zero allocation LINQ 🚀
Уровень материала: 📣 #news

Не секрет, что LINQ в .NET имеет проблему с аллокацией памяти, что ограничивает его применение в часто исполняемой или высоконагруженной логике.

Ребутяшки из Cysharp, известные по UniTask и R3, 2 недели назад создали репозиторий с ZLinq — это их NonAlloc struct-based имплементация Linq.

👩‍💻 Пакет уже совместим с .NET 9, .NET 10, Unity 📱 (от 2022.3.12f1) и Godot (от 4.0.0).

В Unity и Godot предусмотрены методы расширения для GameObject, Transform и Node2D. Аналогичные методы расширения реализованы и для Json, что может быть полезно для систем миграций/патчинга пользовательских игровых данных.

📱 Узнал про ZLinq из видео с канала git-amend. Там рассмотрены примеры использования и интеграции в Unity. Также там можно подглядеть полезные методики для профилирования.

💡 Мне нравятся и UniTask, и R3. Поэтому пока для меня ZLinq, построенный на тех же идеях, выглядит как многообещающий инструмент для оптимизации LINQ-запросов, который позволит снизить нагрузку на GC и упростить работу с деревьями объектов.

⚠️ Библиотека пока находится в стадии preview, но в не-продуктовой среде я уже начну с ней знакомиться.
————————————
#unity #godot #gamedev #development #dotnet #csharp #tool #linq #optimization #allocation #геймдев #разработка #оптимизация #инструмент #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83👍2
💾 Сохранение игрового прогресса v2.0 💾

Сегодня я выступаю на Cityfest в Новосибирске с докладом о сохранении прогресса в играх.

Это стало поводом посмотреть свежим взглядом на свой ранее опубликованный материал.

Обновлённая и дополненная версия доступна на 📝 Habr и 📝 Dtf.

Переписал многие разделы. Дополнил новой информацией и ссылками на ресурсы. Не очень значительный контент даже удалил.

Доофрмил репозиторий с примерами. Потестировал им для себя дополнительно ещё и GitVerse.
—————————————
#unity #gamedev #development #save #cloud #data #геймдев #разработка #сохранения #данные #облако #aks2dio #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍1
🧠 База и Книги 🧠
Уровень материала: 🎓 #education

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

Мультимедиа-контент проще для восприятия, но не заменяет более глубокое развитие, которое даёт чтение книг.

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

⬇️⬇️⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
⬆️⬆️⬆️

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

О том, как читать осознанно и не превращать это занятие в разновидность прокрастинации, есть интересный пост с хорошими советами, которые я и сам активно применяю.

По этим причинам чтение каждой книги у меня (статей и видео это касается тоже) — это длительное занятие. Но зато из этого удаётся извлекать максимум пользы.

⬇️⬇️⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
⬆️⬆️⬆️

В этом году я начал пробовать читать по 3-10 страниц в день. Такой объём легко осилить и законспектировать.

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

Также такой подход позволяет параллельно читать несколько книг. У меня таких сейчас три, не считая активного курса.

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

Такого же подхода я придерживаюсь и при изучении иностранных языков. В моменте, возможно, результат кажется незначительным, но на длинной дистанции он очень ощутимый, особенно если сравнивать с полным бездействием.
—————————————
#development #разработка #книги #обучение #образование #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
50🔥3👍1