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

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

С 2017 г. разрабатываю, лидую, преподаю и консультирую.
Был в найме, стартапах, фрилансе, инди.
Опыт: Mobile, Desktop, Web, XR.
Download Telegram
☀️ 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
☄️ JetBrains AI теперь доступен бесплатно ☄️
Уровень материала: 📣 #news

JetBrains открыли бесплатный доступ не только к Rider, но и к своему AI, обновив тарифную сетку сервиса.

На Free-тарифе доступен неограниченный автокомплит, небольшое кол-во токенов для прочих облачных функций и добавлена поддержка локальных LLM на уровне IDE, вместо необходимости использовать сторонние плагины типа Continue.

————————

🟣Опыт использования других ассистентов в Rider:

Долгое время я пользовался GigaCode. Но отсутствие RAG (учёт контекста проекта) для C# сильно ограничивало. Хотя для Java и Kotlin его уже добавили.

Я пользовался Codeium, TabNine, Cody, JetBrains AI, Copilot. JetBrains и TabNine сильно разочаровали. Copilot — лучший из этой пачки и сравнительно недорогой. Но ему постоянно требуется VPN.

По итогу остановился на малоизвестном Supermaven и последние два месяца пользуюсь Pro-подпиской.

————————

🟣Про Supermaven:

Из минусов: почти никаких настроек и более скудный функционал, чем у конкурентов. По сути, есть только автокомплит и чат. В чате даже Ctrl+C не работает — настолько он неудобный.

Но автокомплит просто великолепный. Даже в бесплатной версии, которая тоже есть. Быстро работает, чётко попадает в контекст, использует RAG, учитывает code style и предсказывает действия по перемещению курсора и удалению/замене блоков кода.

Всё это без VPN и большой нагрузки на систему, всего за $10/мес.

К сожалению, команда переключилась на разработку своей AI IDE по типу Cursor и Windsurf. Поэтому плагин лучше уже не станет. Будет повод в следующем месяце взять паузу и попробовать JetBrains AI ещё раз.
————————
#unity #gamedev #development #rider #tech #ide #jetbrains #llm #news #ai #code #геймдев #разработка #код #ии #новости
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍21🤔1
🤡 MemIT #9 🤡

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

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

⬆️ прошлый выпуск ⬆️
—————————————
#gamedev #development #it #meme #humor #геймдев #разработка #айти #мемы #юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣5🔥3👍2
Автоматизированное создание иконок предметов в Unity
Уровень материала: 🐥 #middle

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

Ручная подготовка этих иконок отнимает много времени. А на стадиях активной разработки, когда модели объектов постоянно изменяются, это время теряется впустую.

В видео с канала Game Dev Guide 📺 демонстрируется один из способов по решению этой проблемы – инструмент для автоматизации создания иконок. Продемонстрированы все этапы разработки: от кода до интерфейса в редакторе.

Что умеет инструмент:

🟡Генерирует иконки на основе 3D-моделей предметов.

🟡Позволяет настраивать ракурс (положение камеры, поворот объекта).

🟡Экспортирует иконки в PNG.

🟡Автоматически назначает иконки игровым объектам.

🧷Подобные решения создаются и используются очень часто и могут потребоваться в любой момент — полезно знать об их существовании и способах реализации.
————————————
#unity #gamedev #development #icon #tool #геймдев #разработка #иконки #автоматизация #инструмент #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
🗓 MidUp #7 🗓

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

Ссылки в комментариях 💬

Ещё больше GameDev-событий — в Геймдев Афише 💬
—————————————
#it #development #gamedev #gamejam #meetup #conference #разработка #айти #геймдев #конференция #митап #событие #подборка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32
✈️ Куда пропал самолёт Skimmer в GTA SA ✈️
Уровень материала: ☕️ #offtop

Многие наверняка знакомы с неприятными багами, которые проявляются только на определённых платформах или только при определённых конфигурациях. А что насчёт багов, которые дают о себе знать только спустя 20 лет?

Про такой баг из GTA San Andreas, который выстрелил лишь в Windows 11 24H2, вышел увлекательный материал 📝

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

Выяснилось, что баг возник из-за изменения структуры стека в Windows 11, что повлияло на чтение неинициализированных переменных. Проблема решилась простым добавлением недостающих параметров в конфиг 💻

Несмотря на незамысловатость результата, добраться до него непросто — было очень любопытно понаблюдать за расследованием такого инцидента 🔍
————————————
#gamedev #development #bug #debug #геймдев #разработка #баг #отладка #рекомендация #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👀4🔥2😱1🤣1