Обновить
10.47

Unity *

Инструмент разработки 2D/3D-игр

Сначала показывать
Порог рейтинга
Уровень сложности

TacLibrary открытая библиотека для разработки игр на Unity 3d (идея создания)

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели5.3K

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

Продумывая программную архитектуру различных прототипов игр на Unity 3D, решил поделится рядом соображений и заодно структурировать, и описать свой подход к реализации архитектуры. Конечно, очень редко можно договорится о соблюдении некоторой архитектуры при разработке. Тут как правило две проблемы в описании архитектуры как законченной сущности, и её понимании другими.

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

Читать далее

Новости

UNITY: Реализация движений для динамичного шутера. Часть 2

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8K

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

Читать далее

Minecraft на Unity. Построение одного чанка

Время на прочтение6 мин
Охват и читатели11K

Я начал разработку Minecraft на движке Unity. Пока не решил, какие механики я повторю из оригинала, а какие добавлю от себя. Но сегодня я вам расскажу о моей логике построения чанка.

Далее предоставлю полный скрипт для построения чанка.

Читать далее

Serialize Reference. Познаем грани

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.1K

Абстракции… Абстракций много не бывает!

SerializeReference в Unity интересная штука, а что если попробовать использовать ее чуть дальше базовой реализации?

Читать далее

Bongo Cat — убийца системных ресурсов

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели8.7K

5 марта 2025 года в Steam вышла игра Bongo Cat. Милый котик из мема, стучащий своими лапками по столу каждый раз, когда вы нажимаете какую-либо клавишу или кликаете мышью.
Люди в умилении, пишут восторженные отзывы. Игра набрала 98% положительных отзывов, что превосходит такие шедевры как Detroit Become Human, Lethal Company, Subnautica... Мило, прикольно, необычно.

Чувствуете подвох? :)

Эта игра убивает ваши драгоценные системные ресурсы. Каким образом счётчик нажатий с метой в виде небольших украшений и скинов может требовать больше ресурсов, чем некоторые игры?!

Разберём игру по косточкам ("основная часть"), найдём ошибку автора и сделаем выводы ("часть выводов").

Читать далее

VR без укачиваний, или Как оптимизировать Unity-проекты, чтобы игроки не снимали шлем через 5 минут

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7K

Представьте ситуацию: на демо клиент испытывает VR-тренажер «Работы на высоте».

Легкий ветерок, стальной пролет, панорама города. Красота. Клиент поднимается по лестнице, останавливается на краю и с восхищением говорит: «Как круто вы сделали, что от вида вниз у меня голова закружилась!» Мы переглядываемся. Потому что «круто» — это не мы сделали. Это заслуга плохой оптимизации раннего прототипа.

Пока персонаж карабкался, движок героически пытался «на лету» подгрузить пачку тяжелых моделей. FPS просел, рендер начал задыхаться, и вестибулярка клиента объявила забастовку. Иммерсивность —10/10, комфорт — где-то в районе отрицательных значений. Если голова кружится, это должно быть запланировано геймдизайнером, а не видеокартой. 

Привет, я backend-разработчик SimbirSoft Андрей. В этой статье разберем, как сделать так, чтобы VR-проекты на Unity работали стабильно и были дружелюбны к вестибулярному аппарату игрока.

Погрузиться 👀

Оптимизация памяти в C# (и немного в Unity): эффективные методы и стратегии

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.8K

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

Язык программирования C#, несмотря на то, что обеспечивает автоматическое управление памятью с помощью механизма сборки мусора (GC), требует от разработчиков специальных знаний и навыков для оптимизации работы с памятью.

Читать далее

Оптимизация загрузки CPU в C# (и немного в Unity): ключевые подходы и стратегии на примерах

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели7.7K

Всем привет! Сегодня хотелось бы затронуть такую тему, как оптимизация CPU для ваших приложений на C#.  В целом, эффективное использование вычислительных ресурсов, включая процессор, является одним из главных аспектов разработки программного обеспечения. В этой статье мы рассмотрим несколько ключевых подходов и стратегий оптимизации нагрузки на CPU в языке программирования C#.

Читать далее

Я решил попробовать ECS и вот, что из этого вышло

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели9.6K

Проверяя одну из своих механик, я спавнил последовательно NPC одного за другим и, внезапно, обнаружил, что где-то на 60 агентах у меня картинка уже заметно подлагивает.
В этот момент, в очередной раз смотря в код, я понял, что нужен тотальный рефакторинг. И вместо того, чтобы отрефакторить мою ООП-шную архитектуру, я решил переписать модуль NPC на какое-то подобие ECS. Естественно, я решил не использовать библиотеки Unity, а написать какой-то свой гибрид.

В этой статье я попытаюсь описать сложности, с которыми я столкнулся и свои впечатления от итога.

Это еще одна статья из цикла про разработку игр без прикладного опыта. Если вам интересна эта и подобные темы - подписывайтесь на мой ТГ-канал Homemade Gamedev, где посты выходят чаще, и я пишу про текущие задачи в проекте.

Читать далее

Техники из 90-х, которые все еще работают, или процесс экспорта карт в Танки Онлайн

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели9.1K

Привет, меня зовут Артур, и я Unity-разработчик в компании «Альтернатива Гейм». 

В мире геймдева часто кажется, что создание карт — это удел художников и левел-дизайнеров: расставил ассеты, настроил свет, и готово. 

Но что если ваша игра должна работать на двух абсолютно разных клиентах — устаревшем WebGL 1 и современном Unity для консолей — при этом оставаясь одной и той же игрой? Здесь заканчивается чистое искусство и начинается настоящая программистская магия.

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

Читать далее

UNITY: Реализация движений для динамичного шутера

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели8.3K

Уже какое то время я разрабатываю свой first-person shooter на Unity, чья система передвижения сильно вдохновлена ULTRAKILL’ом. Изначально я начал этот проект в качестве практики и вызова самому себе, так как шутеры – это жанр максимально далёкий от моих предпочтений. В связи с этим мне пришлось изучить много нового и я хочу поделиться этими знаниями.

Читать далее

Как сократить количество Draw Calls (вызовов отрисовки) в UI Unity

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели7.8K

В Unity UI часто тормозит не «крутая графика», а расползшееся число draw calls, которое тихо растёт вместе с канвасами, анимациями и материалами. В статье разбираемся, что именно делает каждый лишний вызов отрисовки, как с помощью Stats, Profiler и Frame Debugger найти проблемные места и какими приёмами — от грамотной структуры Canvas до атласов и батчинга — реально снизить нагрузку на мобильных устройствах.

Оптимизировать Unity UI

Параметризация xNode в префабах

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.6K

Привет, Хабр! 👋

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

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

Читать далее

Ближайшие события

Книга: «Паттерны проектирования Unity. Популярные шаблоны и лучшие практики создания игр на Unity и C#»

Время на прочтение4 мин
Охват и читатели7.6K

Привет, Хаброжители!

Хотите научиться писать в Unity понятный и простой в сопровождении код для игр? Тогда вы пришли по адресу! Изучение популярных паттернов проектирования Unity позволит использовать весь их потенциал при создании захватывающих проек-тов. Изучая практические примеры, вы освоите такие порождающие паттерны, как Прототип, помогающий эффективно создавать врагов, и поведенческие паттерны, например Наблюдатель, для реализации реактивной игровой механики. По мере чтения вы также научитесь замечать негативные последствия плохих архитектурных решений и справляться с ними с помощью простых, но эффективных методов.

Когда вы прочтете эту книгу, ваши приемы разработки игр в Unity изменятся. Вы не только станете более опытным разработчиком, но и научитесь использовать в работе передовые паттерны проектирования.

Читать далее

Дитеринг и бандинг в Unity URP: как избавиться от полос и артефактов

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.9K

Всем привет! Меня зовут Григорий Дядиченко, и я разрабатываю разные проекты на заказ. Сегодня хотелось бы поговорить про дитеринг и бандинг — две стороны одной медали в мире компьютерной графики.

Читать далее

Как мы научили xNode работать в префабах

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9K

Привет, Хабр! 👋

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

Читать далее

Звуки в прототипе на примере нашей игры с Siberian Game Jam. Иерархия для целостной картины

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

При разработке игры в условиях 72-часового джема звук часто становится последней линией защиты, на которую заканчиваются силы. Главная задача прототипа — создать ощущение, что игра «живая и отзывчивая», а звук главный инструмент для этого. В этой статье мы разберем иерархию звуков на реальном примере нашей игры «Выход из строя», созданной на Siberian Game Jam — Ноябрь 2025

Что такое полезное действие и почему оно важно для звука?

Читать далее

Эволюция радиомашинок в среде Unity с помощью NGspice

Уровень сложностиСредний
Время на прочтение39 мин
Охват и читатели10K

В этой статье я расскажу про свой эксперимент: я создал в Unity симуляцию радиоуправляемых машинок, которые эволюционируют. «Мозгом» каждой машинки является электронная схема. Я заставил эти схемы мутировать(случайно меняться) и скрещиваться(обмениваться частями), чтобы создавать новые модели машин и улучшать их. Его «интеллект» и поведение меняются в зависимости от того, сколько блоков онa успешно поднимает.

Читать далее

Координатные пространства/Coordinate Space в компьютерной графике. Объясняю на чайниках

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.3K

1.Что такое пространство?

2.О самых распространенных пространствах

3.Причем тут трансформ и умножение матриц?

4.Как их можно использовать, на примерах шейдеров

Читать далее

Код, понятный IDE и AI: использование атрибутов из JetBrains.Annotations

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.3K

У JetBrains есть фреймворк JetBrains.Annotations для .NET, который предоставляет набор полезных атрибутов. Они выступают дополнительными метаданными для статического анализатора JB, который включён в их IDE и ReSharper, для самих разработчиков и даже для нейросетей, которые работают с этим кодом.

Какие атрибуты доступны, как и где ими воспользоваться — об этом кратко и с примерами далее.

Читать далее
1
23 ...