Pull to refresh
95
0
Pixonic @Pixonic

Пользователь

Send message

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

Reading time4 min
Views16K

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

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

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments16

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

Reading time8 min
Views4K

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

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

Читать далее
Total votes 14: ↑12 and ↓2+11
Comments0

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

Reading time7 min
Views8.7K

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

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

Читать далее
Total votes 27: ↑26 and ↓1+30
Comments11

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

Reading time16 min
Views18K

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

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

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

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

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments2

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

Reading time16 min
Views23K

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

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

Читать далее
Total votes 31: ↑29 and ↓2+32
Comments14

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

Reading time21 min
Views23K

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

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

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

Читать далее
Total votes 37: ↑37 and ↓0+37
Comments39

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

Reading time8 min
Views39K

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

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

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

Читать далее
Total votes 52: ↑48 and ↓4+56
Comments85

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

Reading time12 min
Views26K

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

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

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

Читать далее
Total votes 26: ↑26 and ↓0+26
Comments74

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

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

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

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

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

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

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

image
Total votes 26: ↑26 and ↓0+26
Comments29

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

Reading time9 min
Views7.5K

После того, как 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, так что скомпилировать его на этих платформах не должно составить труда.

Читать далее
Total votes 20: ↑17 and ↓3+18
Comments1

Как написать игру за месяц, не отвлекаясь от основной работы

Reading time12 min
Views14K
image

MoonGun — игра в жанре экшен/стратегия о защите лунной базы от астероидов. Игра была создана Ивенсом Серпой — автором множества статей о геймдизайне — в рамках Github Game Off Game Jam в ноябре 2020 года. Занимался он ей в одиночку в свободное от работы время. Игра получила немало положительных отзывов, так что ее создатель решил поделиться опытом ее разработки: описать весь процесс создания и поделиться методами, которые он использовал, включая этапы концепции, планирования, непосредственно разработки и релиза.
Читать дальше →
Total votes 21: ↑18 and ↓3+19
Comments11

Как мощность влияет на геймплей: численный подход к дизайну игры для достижения ее честности

Reading time13 min
Views7.8K

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

Стоит заметить, что термин «честность» здесь более уместен, чем «баланс», ведь последний чаще можно истолковать неверно. Честность подразумевается в том смысле, что опыт игроков должен быть выдержанным и правдоподобным. Честный геймплей должен быть приятным и увлекательным, даже если он не совсем четко сбалансирован. Идеальный баланс, в свою очередь, может сделать игру более скучной. По словам ведущего дизайнера Overwatch Джеффа Каплана:

Восприятие баланса гораздо важнее, чем сам баланс.

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

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

Во всех описанных случаях могут быть разные стратегии и отправные точки, которые можно использовать для достижения этой самой честности. Одна из них, на которой мы и сфокусируемся в данной статье, — мощность (Power).

Читать далее
Total votes 23: ↑22 and ↓1+26
Comments12

Связываем две мобильные платформы в едином коде на Unity

Reading time7 min
Views5.3K


Для Unity-разработчиков уже привычно управление игровыми потоками и сервисами на таких платформах, как iOS и Android. Однако после того, как в экосистеме появились мобильные сервисы Huawei, теперь нужно поддерживать и еще одну версию игры, если вы хотите охватить игроков, у которых есть девайсы этой фирмы.

Эта статья — как раз о том, как минимальными усилиями управлять зависимостями между несколькими мобильными сервисами Android и Huawei в одной кодовой базе.

Читать дальше →
Total votes 16: ↑15 and ↓1+15
Comments1

Трассировка теней с технологиями AMD: как реализованы тени в The Riftbreaker

Reading time10 min
Views7.5K
The Riftbreaker — изометрическая стратегия, сочетающая в себе элементы выживания, исследования и hack’n’slash. Разработанная на собственном движке Exor Studios — Schmetterling Engine 2.0, The Riftbreaker позволяет использовать новейшие разработки в игровой индустрии, одной из которых является трассировка лучей в реальном времени. В этой статье речь пойдет о том, с какими проблемами столкнулись в студии при реализации трассировки лучей в игре и какие нашли для них решения.

image

Динамически меняющееся время суток, разнообразные погодные эффекты и множество исследуемых биомов делают трассировку лучей в реальном времени отличным выбором для The Riftbreaker
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments10

Воксели против теневых карт: выбор новой системы освещения для Roblox

Reading time14 min
Views6.3K


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

Освещение — штука сложная, так что нужно быть осторожными при выборе новых технологий, ведь при этом необходимо учитывать множество факторов. Для облегчения принятия решения для Roblox создали прототипы двух будущих систем: так называемых вокселей и теневых карт. Для того, чтобы понять ограничения тех и других, сначала важно понять, как они работают.
Total votes 27: ↑27 and ↓0+27
Comments4

Meta Gameplay Framework, или бэкенд без серверных разработчиков

Reading time8 min
Views5.7K


Привет! Меня зовут Кирилл, я руководитель отдела серверной разработки в Pixonic. Здесь я работаю уже более 5 лет. Долгое время Pixonic была компанией одной игры — War Robots. Но однажды к нам пришло осознание, что так больше продолжаться не может, и мы начали работу над созданием новых проектов.

Поначалу мы взялись за это дело по старинке, используя традиционные для нас подходы: писали клиент на Unity 3D, бэкенд разрабатывали на Java. Это было привычно, понятно, но имело ряд серьезных недостатков. Проекты разрабатывались медленнее, чем нам бы хотелось. Для выполнения любой задачи необходимо было задействовать как минимум двух разработчиков. Однако, когда в разработке участвуют два и более человека, неизбежно возникают ошибки в духе: то один не так понял другого, то второй работает быстрее, чем первый. Такие ситуации приводят к тому, что кому-то из разработчиков в дальнейшем приходится возвращаться к задаче, которую он, казалось, уже давно закончил, а ведь у него и других дел полно. Так мы начали думать над тем, как разрешить эту проблему.
Читать дальше →
Total votes 21: ↑20 and ↓1+22
Comments5

Процедурное разрушение в Control: какие уроки можно почерпнуть из опыта Remedy

Reading time11 min
Views9.1K
Этим летом на GDC старший VFX-артист Remedy Йоханнес Рихтер рассказал о том, как реализовано процедурное разрушение в последней игре студии — мистическом экшене Control.

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


Читать дальше →
Total votes 32: ↑29 and ↓3+29
Comments7

Новая архитектура AMD RDNA 2: преимущества видеокарт Radeon RX 6000 по сравнению с конкурентами и предшественницами

Reading time3 min
Views53K
image

На осенней презентации AMD представила новое поколение видеокарт семейства Radeon RX 6000 серии, построенных на архитектуре RDNA 2. Та же архитектура используется и в консолях следующего поколения Xbox Series X и S и PlayStation 5.

На презентации сотрудники компании сравнили производительность Radeon RX 6800 XT с недавно представленным конкурирующим решением NVIDIA, GeForce RTX 3080. Исходя из этого сравнения, производительность видеокарт AMD оказывается той же или даже немного лучше по показателю частоты кадров при меньшем энергопотреблении.

Подробнее обо всех основных преимуществах новой архитектуры — читайте ниже.
Читать дальше →
Total votes 23: ↑22 and ↓1+25
Comments30

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man

Reading time7 min
Views14K


По мере приближения запуска нового поколения консолей Insomniac Games начала публиковать больше материалов, раскрывающих подробности о Marvel’s Spider-Man и Marvel's Spider-Man: Miles Morales. Оба проекта задействуют технологию трассировки лучей. На взгляд Алекса Баттальи из Digital Foundry, выглядит она очень достойно, если не сказать, что превосходно. Для старта — весьма недурно.

Тем не менее, читая комментарии в Интернете, он столкнулся с немалым количеством критики по отношению к реализации технологии, а также к частоте и разрешению кадров. Поэтому в новое видео Digital Foundry он решил представить своего рода пособие по трассировке лучей на консолях следующего поколения и объяснить, почему в Marvel's Spider-Man она выглядит именно так.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments23

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

Reading time7 min
Views4.4K


Сегодня разберем выступление Джеймса Вуттона из IBM Quantum на конференции FDG 2020. Речь пойдет о квантовых вычислениях — потенциально многообещающей технологии, для которой, однако, на современном этапе развития находится мало применения. И все же одно из них нашлось в процедурной генерации.

Поговорим подробнее, как реализовать ее на кубитах, а также приведем коды программы.

Total votes 23: ↑22 and ↓1+27
Comments7

Information

Rating
Does not participate
Registered
Activity