Как стать автором
Обновить

Компания Pixonic временно не ведёт блог на Хабре

Сначала показывать

Xcode Cloud, SharePlay, Focus — самое важное с Keynote WWDC21

Время на прочтение6 мин
Количество просмотров7.7K

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

Выжимка самого важного из того, что объявили во время keynote-презентации — в этом материале.

Читать далее

Тримы, тайлы и террейн: как происходит ремастеринг игровых карт

Время на прочтение12 мин
Количество просмотров15K

Игровые уровни занимают больше половины пространства экрана, что автоматически повышает требования к их выразительности и соответствию стандартам современной графики. И когда мы работали над ремастером своей игры War Robots, переработка карт по сути оказалась самой длительной и трудоемкой из работ по обновлению арта. Переработать весь пайплайн рендеринга, изменить подход к текстурированию в целом, поменять все модели на карте, по-новой произвести маппинг геометрии — всему этому следовало уделить внимание.  

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

Иными словами, нам нужно было:

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

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

Читать далее

Лаги, джиттер и потеря пакетов: откуда берутся проблемы с неткодом и как их решать

Время на прочтение11 мин
Количество просмотров78K

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

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

Читать далее

Внутри материнской платы: анализ технологий, лежащих в основе компонентов ПК

Время на прочтение15 мин
Количество просмотров60K

Сейчас уже едва ли не у каждого дома, на работе или на учебе есть свой настольный ПК. Кто-то использует его для составления налоговых деклараций, кто-то для гейминга, а кто-то и сам собирает компьютеры. Но насколько хорошо вы знакомы с компонентами, что находятся внутри ПК? Возьмем, к примеру, скромную материнскую плату: она ​​сидит себе там, внутри, тихо поддерживает все в рабочем состоянии и редко получает столько же внимания, как, скажем, процессор или видеокарта.

Однако материнские платы не менее важны для работы компьютера — и имеют не менее впечатляющую начинку. Давайте же посмотрим, что находится у них внутри, изучим их, проанализируем, декомпозируем и узнаем, за что отвечает каждый бит.

Читать далее

Ремастеринг игрового контента, или как создать 800 единиц контента за семь месяцев

Время на прочтение7 мин
Количество просмотров4.2K

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

Итак, перед нами стояла задача переработки почти всего контента в игре: графического пайплайна, роботов, пушек, визуальных эффектов, карт и т. д. Для этого нужно было внести множество технологических изменений в существующий код и поддержать эти изменения со стороны контента. Этот процесс занимает немало времени, но мы не могли остановить разработку самой игры для внесения всех этих изменений, ведь одно из требований к ремастеру — параллельная разработка с основным продуктом. Поэтому в первую очередь нам необходимо было выстроить процесс работы программистов и художников команды War Robots Remastered в рамках основного проекта. И для решения этой проблемы мы пошли по пути итерационной разработки и системы обратной совместимости.

Читать далее

Истории

Как работает рендеринг в 3D-играх: сглаживание

Время на прочтение13 мин
Количество просмотров26K

Любая 3D-игра состоит из тысяч и даже миллионов всевозможных цветных линий. Но из-за того, какими способами они появляются на экране, они часто могут выглядеть неровными и отвлекать от игрового процесса.

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

Читать далее

Как Thief: The Dark Project чуть не осталась без механики стелса

Время на прочтение6 мин
Количество просмотров6.4K

Начиная с Ultima Underworld и System Shock, Looking Glass Studios всегда стремилась создавать глубоко иммерсивные игры. Ее основатель Пол Нейрат с детства любил обследовать всякие здания, в том числе и те, где его быть не должно — но тяга к исследованиям была сильнее. 

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

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

Читать далее

Как и зачем Morrowind перезапускала оригинальный Xbox во время экрана загрузки

Время на прочтение4 мин
Количество просмотров16K

Оригинальный Xbox известен тем, что имел всего 64 мегабайта оперативной памяти, чего даже в то время не всегда хватало играм. В недавнем подкасте о слиянии Bethesda и Xbox директор Bethesda Game Studios Тодд Говард рассказал о том, что именно из-за нехватки памяти и для ее освобождения Morrowind иногда перезагружала Xbox незаметно для пользователя. Долгие внутриигровые загрузки — это как раз то, о чем идет речь. 

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

Читать далее

Препродакшн игровых проектов: как оценить объем работ на старте и не сгореть к дедлайну

Время на прочтение8 мин
Количество просмотров4.1K

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

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

Читать далее

Почему мы отказались от стандартных теней Unity для мобильных шутеров и вместо этого написали свои

Время на прочтение7 мин
Количество просмотров9K

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

Сегодня мы расскажем, как в геймдеве делаются тени — в реальном времени и статичные. В своих проектах War Robots и Dino Squad мы используем сразу несколько техник — им и уделим особое внимание.

Читать далее

Nodens: создание лавкрафтианского робота для мультиплеерного шутера от идеи до релиза

Время на прочтение13 мин
Количество просмотров5.2K

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

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

Читать далее

От int main() до BeginPlay: как происходит инициализация Unreal Engine под капотом

Время на прочтение16 мин
Количество просмотров19K

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

Но когда вы пишете игровой код на Unreal Engine, вы не имеете дело с игровым циклом напрямую. Вы не начинаете работать сразу с основной функцией — сначала вы определяете подкласс GameMode и переопределяете функцию под названием InitGame. Или пишете одноразовые классы Actor и Component и переопределяете их функции BeginPlay или Tick для добавления собственной логики. Это самый минимум того, что вам нужно сделать: обо всем остальном движок позаботится за вас.

Unreal Engine также предлагает вам как программисту мощный и гибкий инструментарий: конечно, он имеет открытый исходный код, но также возможно и расширение несколькими другими способами. Даже если вы только начинаете работать с этим движком, было бы не лишним получить представление о его GameFramework: о таких классах, как GameMode, GameState, PlayerController, Pawn и PlayerState.

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

Читать далее

Трассировщик лучей с нуля за 100 строчек Python

Время на прочтение16 мин
Количество просмотров25K

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

Примечание: Эта статья ни в коем случае не является полным руководством/объяснением трассировки лучей, поскольку эта тема слишком обширна, а скорее просто введением для любопытствующих.

Читать далее

NVIDIA Ampere против AMD RDNA 2: битва архитектур

Время на прочтение21 мин
Количество просмотров24K

Спустя два года после запуска Turing в сентябре 2020 года NVIDIA сменила архитектуру своих видеокарт на Ampere. AMD не осталась в стороне и вскоре после этого тоже обновила архитектуру RDNA до второй версии.  

Всем хотелось, чтобы новые видеокарты RX 6000 могли составить конкуренцию лучшим продуктам NVIDIA. И теперь, когда обе серии вышли в продажу, геймеры оказались избалованы выбором (по крайней мере, теоретически), куда вложить свои деньги.

Но что насчет чипов, лежащих в их основе? Какой из них лучше?

Читать далее

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

4 – 5 апреля
Геймтон «DatsCity»
Онлайн
8 апреля
Конференция TEAMLY WORK MANAGEMENT 2025
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Как удобно вести игровой баланс и не сломаться от количества ячеек в таблицах

Время на прочтение11 мин
Количество просмотров17K

Каждый геймдизайнер рано или поздно сталкивается с необходимостью регулярной работы с таблицами. Базовых знаний Google Sheets или Excel обычно достаточно для того, чтобы вести простые расчеты и работать над игровым балансом. Но когда игра развивается и обрастает новыми сущностями, возникает потребность в том, чтобы организовать для себя удобную и эффективную структуру. При этом нужно иметь возможность легко в ней ориентироваться, дополнять и модифицировать ее, она должна быть устойчива к ошибкам. 

В этой статье я систематизировал собственный опыт работы с таблицами и их дополнительными функциями, которые могут оказаться полезными как для начинающих, так и опытных геймдизайнеров. Примеры приведены в Google Sheets, поскольку они чаще используются командами разработки, но большая часть из них применима и к MS Excel.

Читать далее

Как всего одна игровая механика навсегда изменила Diablo

Время на прочтение8 мин
Количество просмотров39K

«Игра всегда называлась именно так», — вспоминает Дэвид Бревик, ведущий программист оригинальной Diablo 1997 года. — «Diablo — это название горы в районе залива Сан-Франциско, у подножия которой я тогда жил. Когда я об этом узнал, помнится, я сказал: «Да, когда-нибудь это станет отличным названием для видеоигры».

Своеобразная анти-RPG того времени, Diablo многие заложенные в нее решения получила не благодаря, а вопреки. «Посмотри, как делают другие, и сделай ровно наоборот», — примерно по такому принципу и разрабатывалась ее философия.

Но одна из знаковых для игры механик все-таки не была заложена в нее изначально.

Читать далее

Apple M1 хорош, но насколько он хорош в трассировке лучей?

Время на прочтение12 мин
Количество просмотров26K

Чип Apple M1, доступный в новых MacBook Air, MacBook Pro и Mac Mini, уже стал предметом множества обсуждений, статей о бенчмарках и публикаций в блогах. И производительность его действительно впечатляет, особенно если говорить о производительности на ватт.

Но конкретно сейчас мы остановимся подробнее на трассировке лучей — в частности, на трассировке лучей через API Metal, анонсированный на WWDC-2020.

Для тестов в данной статье использовались Mac Mini и интерактивный трассировщик пути ChameleonRT, а сравнение проводилось с DirectX, Vulkan, OptiX и Embree.

Читать далее

Ста-ста-статтеринг, или откуда в игре берутся микрофризы и как с ними бороться

Время на прочтение10 мин
Количество просмотров80K
Представьте себе: вот вы ждете новую часть вашей любимой игры и, наконец, она выходит. Специально под это дело вы обновили свой ПК: установили новейшие ЦП и ГП, увеличили объем оперативки и даже заменили жесткий диск на SSD. Теперь игра должна запускаться у вас гладко, как шелк, с первого же экрана загрузки и до самого конца.

Вот вы скачиваете себе ранее оплаченный предзаказ. Завершается установка, вы запускаете игру. Все идет хорошо: игра «летает» с частотой кадров 60 FPS. Или, во всяком случае, так говорит вам счетчик кадров в оверлее вашего ГП. Но что-то идет не так. Вы водите мышкой туда-сюда и замечаете, что игра… фризится.

Как это возможно? Какие еще фризы при 60 FPS?

Это может казаться смешным до тех пор, пока не столкнешься с этим сам. Если вы встречались с такими фризами, то наверняка уже успели их возненавидеть.

Это не лаги. Не низкий фреймрейт. Это статтеринг. При высоких FPS и идеальной сверхбыстрой конфигурации.

Что это такое, откуда взялось и есть ли способ от него избавиться? Сейчас разберемся.

image

О важности левел-дизайна, или как не сломать кор игры плохим лэйаутом

Время на прочтение12 мин
Количество просмотров9.7K

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

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

Для начала немного об игре. War Robots — это мобильный сессионный PvP-шутер про огромных роботов. Игроки здесь делятся на две команды и сражаются в одном из режимов: захват маяков или дезматч. Кор-геймплей формируют следующие механики:

Читать далее

Рендеринг острова из «Моаны» менее чем за 10 000 строк кода на Swift

Время на прочтение9 мин
Количество просмотров7.6K

После того, как Walt Disney Animation Studios выложила в сеть описание сцены острова из «Моаны», много кто пытался его отрендерить своими силами, исключающими оригинальный Hyperion. Это лишь малая часть списка таких движков:

Hyperion (естественно);

Renderman;

PBRT;

Embree/OSPRay;

A hobby renderer от Джо Шютте (с использованием Embree);

Moana на RTX (с использованием Optix);

GPU-Mononui (с использованием Optix).

Андреас Вендледер из Бабельсбергского киноуниверситета представил другой, написанный им рендерер Gonzales. Он в значительной степени вдохновлен PBRT, написан на Swift (с несколькими строками кода на C ++ для вызова OpenEXR и Ptex) и оптимизирован для проведения рендеринга в (сравнительно) разумные сроки на бесплатном хранилище Google Cloud (8 виртуальных ЦП, 64 ГБ RAM). Насколько автору известно, это единственный рендерер, написанный не на C/C++, способный на рендеринг этой сцены. Написан он с помощью vi и командной строки Swift в Ubuntu Linux и Xcode на macOS, так что скомпилировать его на этих платформах не должно составить труда.

Читать далее