Динамическое освещение в пиксельной графике: технический кейс Core Keeper

24.05.2026 Опубликовано | Переведено с испанского

Core Keeper доказывает, что пиксельная графика не противоречит современным технологиям. Разработанная на Unity, игра сочетает классические спрайты с продвинутой системой ячеистого освещения, проецирующей тени в реальном времени. Каждый факел, установленный игроком, изменяет окружение, открывая скрытые во тьме минералы и врагов. Этот эффект достигается с помощью буфера света, рассчитывающего видимость по тайлам, что оптимизирует производительность даже в сценариях с десятками активных источников света.

Динамическое освещение в пиксельной графике Core Keeper с тенями в реальном времени на Unity

Движок ячеистых теней в Unity 🎮

Технический трюк Core Keeper заключается в гибридной системе 2D-освещения. Вместо традиционных точечных источников света игра использует пользовательский шейдер, который делит экран на сетку ячеек (тайлов). Каждая ячейка хранит значение света, динамически обновляющееся в зависимости от расстояния до факелов. Это позволяет спрайтам персонажей и объектов реагировать на контур тьмы без необходимости сложных попиксельных вычислений. Aseprite здесь является ключевым инструментом, так как позволяет создавать спрайты с ограниченными палитрами, сохраняющими читаемость при различных условиях освещения — от синеватого полумрака до теплого сияния огня.

Уроки для инди-разработчиков 💡

Если вы хотите воспроизвести эту атмосферу в своем проекте, отдайте приоритет структуре данных над графическим реализмом. В Unity используйте систему Tilemap вместе со скриптом, управляющим двумерным массивом интенсивности освещения. Определите свои источники света как простые объекты, изменяющие этот массив в определенном радиусе. Aseprite поможет вам создать вариации цвета для каждого спрайта при разных уровнях освещения, предотвращая искажение исходной палитры при рендеринге в реальном времени. Результатом является захватывающий опыт, где тьма — это не просто фон, а активный игровой механизм.

Как в Unity реализована система динамического освещения Core Keeper для того, чтобы спрайты пиксельной графики реагировали на источники света в реальном времени, не теряя ретро-эстетики

(P.S.: шейдеры — как майонез: если расслоились, начинай всё заново)