Media is too big
VIEW IN TELEGRAM
Инди-разработчик показал horde-систему для своей игры There're Millions of Goblins. 50K врагов на экране, каждый с физикой и коллизиями, и всё это в реалтайме.
В чём основные фишки:
🔘 Враги не классические Actor'ы, а связанные системы частиц. Вся логика (коллизии, knockback, определение поверхности) написана на HLSL и считается на GPU.
🔘 Коллизии только через сферы. Позиция игрока передаётся в шейдер, дистанция считается там же, импульс применяется по расстоянию.
🔘 Автор осознанно отказался от сложного pathfinding: вместо умных врагов решил сделать ставку на количество. Это упрощает ИИ и позволяет масштабировать.
В комментах просят оружие с гравитацией и чёрными дырами, чтобы 50к гоблинов стягивало в одну точку. Было бы зрелищно :)
@make_game
В чём основные фишки:
В комментах просят оружие с гравитацией и чёрными дырами, чтобы 50к гоблинов стягивало в одну точку. Было бы зрелищно :)
@make_game
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28❤4😭1
О, тут вышло продолжение серии про сборку Quake на ретро-железе. Санглар отключил все ASM-оптимизации Абраша и измерил FPS: 42,2 упали до 22,7 на Pentium MMX 233MHz. Кармак не врал: ассемблер действительно давал x2.
🔘 63 asm-функции в 21 файле, но 65% прироста даёт одна
🔘 Главный трюк: перспективно-корректная текстура требует деления, а FDIV на Pentium занимает 39 тактов. Абраш запускает деление для следующего блока из 8 пикселей в начале текущего, и пока FPU считает, целочисленные пайплайны U/V рисуют пиксели. В коде комментарий: «this is what we've gone to all this trouble to overlap».
🔘
🔘 Ещё: self-modifying code (база colormap вшивается прямо в инструкции), полная развёртка циклов, jump table вместо ветвления на последнем блоке спана,
В общем, лучше оригинал почитайте, там подробнее и понятнее.
@make_game
D_DrawSpans8 (растеризация стен). Ещё 22% от surface caching (R_DrawSurfaceBlock8), 11% — отрисовка моделей (D_Polyset*).TransformVector — пример работы с x87 FPU. Компилятор считает три dot product последовательно и стоит на каждом fadd (ждёт результат fmul 3 такта). Абраш считает три dot product параллельно, перемешивая операции через бесплатный fxch. Ноль столлов.ja вместо двух сравнений для clamp.В общем, лучше оригинал почитайте, там подробнее и понятнее.
@make_game
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🫡3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Инди-разработчик Scrap Protocol делал трейлер и добавил в него ракурс 3/4, вроде как просто для красоты, не для геймплея. Игра задумана в top-down. 95% фидбэка: «Почему игра не в этом ракурсе?».
Тред набрал 1900+ апвоутов, почти все советуют переделать камеру. На практике переход на 3/4 — это переделка управления, окружения, скайбоксов, читаемости карты. Почти как новый проект. Но гляньте видео, это же намного круче, очевидно.
Хороший пример того, как подача влияет на восприятие не меньше, чем сама механика.
@make_game
Тред набрал 1900+ апвоутов, почти все советуют переделать камеру. На практике переход на 3/4 — это переделка управления, окружения, скайбоксов, читаемости карты. Почти как новый проект. Но гляньте видео, это же намного круче, очевидно.
Хороший пример того, как подача влияет на восприятие не меньше, чем сама механика.
@make_game
❤6🔥5
Media is too big
VIEW IN TELEGRAM
Один разработчик представил метод рендеринга 3D-сцен в стиле пиксель-арта, который решает главную проблему — мерцание (shimmer) при движении и вращении камеры. Это на видео.
Кратко как работает. Стандартный low-res рендер + постеризация цветов даёт «почти пиксель-арт», но при движении камеры всё мерцает — сэмплы текстур скачут хаотично. Решение: рендерим 6 камер в кубмап с привязкой к сетке → фиксим шиммер при вращении. Затем рендерим второй кубмап из статичного «пробника» (probe) и сплатим каждый тексель как квад в мировом пространстве → фиксим шиммер при движении.
А другой разработчик написал разгромный комментарий. Это самое интересное, разбор, почему подход избыточен: 12+ рендер-пассов — это до 13х оверхед по каллингу и стейт-ченджам. Корень проблемы в некогерентных позициях сэмплов в screen space, которые усиливаются постеризацией. Его альтернатива: один visibility pass в высоком разрешении → resolve в низком, где hit position квантуется в world/object space и проецируется обратно на плоскость треугольника для вычисления барицентрических координат. Результат тот же, но без лишних пассов и без артефактов disocclusion.
Или совсем просто: раз view-dependent эффектов нет, обычный TAA после квантизации уберёт весь шум почти без артефактов. «Но это менее интересно, лол»
@make_game
Кратко как работает. Стандартный low-res рендер + постеризация цветов даёт «почти пиксель-арт», но при движении камеры всё мерцает — сэмплы текстур скачут хаотично. Решение: рендерим 6 камер в кубмап с привязкой к сетке → фиксим шиммер при вращении. Затем рендерим второй кубмап из статичного «пробника» (probe) и сплатим каждый тексель как квад в мировом пространстве → фиксим шиммер при движении.
А другой разработчик написал разгромный комментарий. Это самое интересное, разбор, почему подход избыточен: 12+ рендер-пассов — это до 13х оверхед по каллингу и стейт-ченджам. Корень проблемы в некогерентных позициях сэмплов в screen space, которые усиливаются постеризацией. Его альтернатива: один visibility pass в высоком разрешении → resolve в низком, где hit position квантуется в world/object space и проецируется обратно на плоскость треугольника для вычисления барицентрических координат. Результат тот же, но без лишних пассов и без артефактов disocclusion.
Или совсем просто: раз view-dependent эффектов нет, обычный TAA после квантизации уберёт весь шум почти без артефактов. «Но это менее интересно, лол»
@make_game
🔥10🆒3
This media is not supported in your browser
VIEW IN TELEGRAM
А ещё вот интересно: зумеры открывают для себя билборды и собирают по 2,7к лайков на реддите за такие видосы. И продают это за 4,49 бакса. Или это уже альфы, а не зумеры?
Но признаю, выглядит и правда хорошо. Впрочем, меня системы частиц всегда завораживали.
@make_game
Но признаю, выглядит и правда хорошо. Впрочем, меня системы частиц всегда завораживали.
@make_game
😁16🔥5🥰2
Оказывается, на прошлой неделе вышла GPU Zen 4: Advanced Rendering Techniques. Это четвёртый том GPU Zen от Wolfgang Engel. Серия идёт ещё со времён ShaderX, потом была GPU Pro, теперь GPU Zen. Каждый выпуск по сути сборник статей от практиков индустрии про конкретные техники рендеринга.
Предыдущий том разбирал GPU-driven рендеринг из Assassin's Creed Mirage, virtual shadow maps, сортировку в compute шейдерах и стриминг текстур из Skull and Bones.
Что внутри на этот раз:
🔘 Visibility Buffer и отложенный рендеринг из DOOM: The Dark Ages
🔘 Объёмные облака и атмосфера оттуда же
🔘 Ray tracing из Assassin's Creed Shadows, включая освещение тысяч источников в Snowdrop
🔘 ReSTIR path tracing в Unreal Engine 5
🔘 Нейросетевые материалы и neural radiance caching на GPU
🔘 Стриминг ассетов в реальном времени в игровых движках
Книжка есть на амазоне, я даже думал купить и выложить, но потом решил, что не очень хочу поддерживать пиратство. По крайней мере я бы не очень хотел, чтобы мои продукты пиратили, так что будет странно пиратить других.
@make_game
Предыдущий том разбирал GPU-driven рендеринг из Assassin's Creed Mirage, virtual shadow maps, сортировку в compute шейдерах и стриминг текстур из Skull and Bones.
Что внутри на этот раз:
Книжка есть на амазоне, я даже думал купить и выложить, но потом решил, что не очень хочу поддерживать пиратство. По крайней мере я бы не очень хотел, чтобы мои продукты пиратили, так что будет странно пиратить других.
@make_game
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Media is too big
VIEW IN TELEGRAM
Один разработчик поделился результатами месяца работы над кастомным рендерером травы. Задача была в том, чтобы отрисовывать траву на огромных ландшафтах при стабильных 60 FPS.
Как устроена система:
— Terrain Provider: читает данные из стандартного покрасчика террейна Unity и конвертирует их в матрицы трансформации для BatchRendererGroup.
— Chunk Streaming: огромные массивы данных разбиваются на чанки и грузятся через Addressables. Если грузить всё разом, память быстро переполняется.
— CPU Culling через Burst: куллинг (вместе с тенями) занимает всего 1,5 мс вместо 8 мс на простых методах.
Шейдер смешивает разные карты шума (для порывов ветра и турбулентности) с волновой синусоидой, чтобы трава гнулась большими волнами — как в Horizon Zero Dawn или технодемке Time Ghost.
Главная проблема, с которой столкнулся автор — гигантский овердроу (перерисовка одних и тех же пикселей). Пришлось сильно упрощать геометрию лодов. А предрасчёт матриц для больших карт весил до 800 МБ, поэтому стриминг через Addressables оказался обязательным.
В общем, почитайте оригинальный пост, интересное. Публиковать это автор не хочет, просто делится опытом. Писал для своей игры.
@make_game
Как устроена система:
— Terrain Provider: читает данные из стандартного покрасчика террейна Unity и конвертирует их в матрицы трансформации для BatchRendererGroup.
— Chunk Streaming: огромные массивы данных разбиваются на чанки и грузятся через Addressables. Если грузить всё разом, память быстро переполняется.
— CPU Culling через Burst: куллинг (вместе с тенями) занимает всего 1,5 мс вместо 8 мс на простых методах.
Шейдер смешивает разные карты шума (для порывов ветра и турбулентности) с волновой синусоидой, чтобы трава гнулась большими волнами — как в Horizon Zero Dawn или технодемке Time Ghost.
Главная проблема, с которой столкнулся автор — гигантский овердроу (перерисовка одних и тех же пикселей). Пришлось сильно упрощать геометрию лодов. А предрасчёт матриц для больших карт весил до 800 МБ, поэтому стриминг через Addressables оказался обязательным.
В общем, почитайте оригинальный пост, интересное. Публиковать это автор не хочет, просто делится опытом. Писал для своей игры.
@make_game
❤10🔥6🤗2
Кто вы в IT? Если не нашли свой вариант — напишите в комментах
Anonymous Poll
10%
Junior
25%
Middle
18%
Senior
10%
Тимлид в разработке
3%
Руководитель не в разработке (деврел, HR, маркетинг)
11%
В IT, но не разработчик (дизайн, аналитика, продакт, техпис)
5%
Нет профессионального интереса в IT
19%
Студент / ещё не работаю в IT
Тамагочи в терминале — бывают и такие игры!
Разработчик написал на чистом bash питомца, который живёт в терминале. ASCII-кот с тремя параметрами: голод, энергия и счастье. Если не заботиться, умрёт. Можно воскресить.
Самое интересное — интеграция с bash prompt. Каждый раз, когда нажимаешь Enter, видишь:
Цвет меняется от зелёного к красному в зависимости от состояния питомца.
Как устроено:
— Чистый bash, никаких зависимостей
— systemd user service снижает параметры каждые 5 минут в фоне
— Состояние хранится в простом текстовом файле в
— Работает на любом Linux с bash 4+
Установка:
Кот код на GitHub
@make_game
Разработчик написал на чистом bash питомца, который живёт в терминале. ASCII-кот с тремя параметрами: голод, энергия и счастье. Если не заботиться, умрёт. Можно воскресить.
Самое интересное — интеграция с bash prompt. Каждый раз, когда нажимаешь Enter, видишь:
[Pixel(^.^) H:80 E:65 J:90] user@hostname:~/projects$
Цвет меняется от зелёного к красному в зависимости от состояния питомца.
Как устроено:
— Чистый bash, никаких зависимостей
— systemd user service снижает параметры каждые 5 минут в фоне
— Состояние хранится в простом текстовом файле в
~/.sshb/— Работает на любом Linux с bash 4+
Установка:
git clone https://github.com/C-GBL/sshb.git && cd sshb && ./install.sh
@make_game
🔥7❤6
Чем занимаетесь? Можно выбрать несколько вариантов
Anonymous Poll
31%
Веб (Frontend / Backend / Fullstack)
15%
Мобилки (Android, iOS, Flutter, RN)
63%
Геймдев
5%
Аналитика / Data Science
6%
AI / ML
11%
DevOps / Инфраструктура / Облака
9%
Embedded / IoT / Desktop
4%
Кибербезопасность
7%
Тестирование / QA
Forwarded from Типичный программист
Победителями премии Тпрогер 🐀 становятся...
Здесь играет барабанная дробь и интригующая музыка... Вам нужно только выждать драматическую паузу перед объявлением победителей — в каждой номинации он один, и определяется большинством голосов. Готовы?
В номинации «Продукт года» золотая мышь достается компании:
🐀 NetVision за платформу интеллектуального мониторинга СИМ .
В номинации «Облачный продукт года» побеждает компания:
🐀 Гравитон с паком виртуализации «Гелиус»
Звание «IT-ивент года» вручается компании:
🐀 Островок! за О!Хакатон
И в категории «Дизайн года» первое место занимает компания:
🐀 AcademiaDev за интерактивную инсталляцию .
Каждый ваш лайк, голос влияли на исход премии. Давайте поддержим всех — ставьте 🏆участникам, которые хоть и не заняли призового места, но точно остались в сердечке.
И 🔥, если хотите аналогичных активностей и готовы выбирать еще!
Здесь играет барабанная дробь и интригующая музыка... Вам нужно только выждать драматическую паузу перед объявлением победителей — в каждой номинации он один, и определяется большинством голосов. Готовы?
В номинации «Продукт года» золотая мышь достается компании:
В номинации «Облачный продукт года» побеждает компания:
Звание «IT-ивент года» вручается компании:
И в категории «Дизайн года» первое место занимает компания:
Каждый ваш лайк, голос влияли на исход премии. Давайте поддержим всех — ставьте 🏆участникам, которые хоть и не заняли призового места, но точно остались в сердечке.
И 🔥, если хотите аналогичных активностей и готовы выбирать еще!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Посмотрите, какую историю сейчас обсуждают на реддите. Самый популярный набор графики на itch.io оказался полностью сгенерированным нейросетью, и его автор уже заработал на этом больше 40 тысяч долларов.
Речь идёт про вот этот набор: https://bkx1.itch.io/combat-rpg-4500k-characters. Он стоит всего 5 долларов, а внутри лежит 4500 спрайтов персонажей для RPG. Если открыть примеры, сразу видны типичные артефакты генерации и очень дёрганые анимации. Но низкая цена и огромный объем сделали своё дело, выведя продукт в абсолютный топ платформы.
Главная ирония ситуации кроется в лицензионном соглашении:
— автор сам создал все картинки на основе чужих работ;
— при этом он строго запретил покупателям использовать свой набор для обучения других нейросетей;
— качество графики откровенно слабое, но алгоритмы магазина продолжают продвигать товар из-за высокой конверсии.
Получается показательный пример того, как сейчас работает рынок дешёвых ассетов. Делаете ставку на объем, ставите минимальный ценник и получаете хорошую прибыль, пока сообщество возмущается двойными стандартами.
@make_game
Речь идёт про вот этот набор: https://bkx1.itch.io/combat-rpg-4500k-characters. Он стоит всего 5 долларов, а внутри лежит 4500 спрайтов персонажей для RPG. Если открыть примеры, сразу видны типичные артефакты генерации и очень дёрганые анимации. Но низкая цена и огромный объем сделали своё дело, выведя продукт в абсолютный топ платформы.
Главная ирония ситуации кроется в лицензионном соглашении:
— автор сам создал все картинки на основе чужих работ;
— при этом он строго запретил покупателям использовать свой набор для обучения других нейросетей;
— качество графики откровенно слабое, но алгоритмы магазина продолжают продвигать товар из-за высокой конверсии.
Получается показательный пример того, как сейчас работает рынок дешёвых ассетов. Делаете ставку на объем, ставите минимальный ценник и получаете хорошую прибыль, пока сообщество возмущается двойными стандартами.
@make_game
😢6🤣6🗿3
Откуда вы? Если нет вашего варианта — напишите в комментах
Anonymous Poll
18%
Москва
12%
Петербург
7%
Юг России (Ростов, Краснодар, Кавказ)
9%
Поволжье (Нижний Новгород, Казань)
7%
Урал (Екатеринбург)
10%
Сибирь и Дальний Восток
16%
Беларусь / Казахстан / Узбекистан / Украина
8%
Европа / США / Канада
13%
Другое