Открыть список
Как стать автором
Обновить
213.83
Рейтинг
Pixonic
Разрабатываем и издаем игры с 2009 года
Сначала показывать
  • Новые
  • Лучшие

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

Блог компании PixonicРабота с 3D-графикойРазработка игрАлгоритмы
Перевод

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

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

Читать далее
Всего голосов 28: ↑27 и ↓1 +26
Просмотры4.6K
Комментарии 12

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

Блог компании PixonicРазработка игрДизайн игрИгры и игровые приставки
Перевод

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

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

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

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Просмотры4.6K
Комментарии 6

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

Блог компании PixonicРазработка игрРеверс-инжинирингИгры и игровые приставки
Перевод

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

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

Читать далее
Всего голосов 42: ↑42 и ↓0 +42
Просмотры13.6K
Комментарии 16

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

Блог компании PixonicРазработка игрУправление проектамиДизайн игрИгры и игровые приставки

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

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

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Просмотры2K
Комментарии 0

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

Блог компании PixonicРабота с 3D-графикойРазработка игрUnityИгры и игровые приставки

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

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

Читать далее
Всего голосов 32: ↑31 и ↓1 +30
Просмотры5.5K
Комментарии 10

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

Блог компании PixonicРазработка игрДизайн игрИгры и игровые приставки

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

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

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Просмотры4K
Комментарии 8

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

Блог компании PixonicРазработка игрРеверс-инжинирингUnreal Engine
Перевод

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

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

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

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

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры5.4K
Комментарии 1

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

Блог компании PixonicPythonПрограммированиеРабота с 3D-графикойРазработка игр
Перевод

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

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

Читать далее
Всего голосов 36: ↑34 и ↓2 +32
Просмотры10.6K
Комментарии 14

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

Блог компании PixonicРазработка игрКомпьютерное железоПроцессоры
Перевод

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

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

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

Читать далее
Всего голосов 37: ↑37 и ↓0 +37
Просмотры15.4K
Комментарии 39

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

Блог компании PixonicРазработка игрДизайн игрИгры и игровые приставки

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

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

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Просмотры7.3K
Комментарии 9

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

Блог компании PixonicРазработка игрДизайн игрИгры и игровые приставки
Перевод

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

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

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

Читать далее
Всего голосов 64: ↑60 и ↓4 +56
Просмотры36.6K
Комментарии 85

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

Блог компании PixonicРазработка игрКомпьютерное железоПроцессоры
Перевод

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

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

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

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Просмотры17.4K
Комментарии 74

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

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

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

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

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

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

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

image
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры8.9K
Комментарии 28

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

Блог компании PixonicРазработка игрДизайн игрИгры и игровые приставки

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

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

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

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Просмотры6.6K
Комментарии 16

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

Блог компании PixonicРабота с 3D-графикойКомпьютерная анимация
Перевод

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

Читать далее
Всего голосов 24: ↑21 и ↓3 +18
Просмотры6.6K
Комментарии 0

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

Блог компании PixonicРазработка игрДизайн игр
Перевод
image

MoonGun — игра в жанре экшен/стратегия о защите лунной базы от астероидов. Игра была создана Ивенсом Серпой — автором множества статей о геймдизайне — в рамках Github Game Off Game Jam в ноябре 2020 года. Занимался он ей в одиночку в свободное от работы время. Игра получила немало положительных отзывов, так что ее создатель решил поделиться опытом ее разработки: описать весь процесс создания и поделиться методами, которые он использовал, включая этапы концепции, планирования, непосредственно разработки и релиза.
Читать дальше →
Всего голосов 25: ↑22 и ↓3 +19
Просмотры10.7K
Комментарии 11

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

Блог компании PixonicРазработка игрДизайн игр
Перевод

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

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

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

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

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

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

Читать далее
Всего голосов 28: ↑27 и ↓1 +26
Просмотры5.5K
Комментарии 12

Как устроены абилки в War Robots

Блог компании PixonicРазработка игрДизайн игрИгры и игровые приставки


Привет! Меня зовут Владимир Попов, и я клиентский разработчик на проекте War Robots.

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

О том, как устроена и как эволюционировала система способностей в нашей игре, просто и без особых технических подробностей я расскажу в этой статье.
Читать дальше →
Всего голосов 26: ↑24 и ↓2 +22
Просмотры4.1K
Комментарии 3

Избавляемся от «мистических» строк в системе реактивного связывания на Unity

Блог компании PixonicПрограммированиеРазработка игрUnity
Любая система, которая часто используется в проекте, со временем обречена на эволюцию. Так случилось и с нашей системой реактивного связывания reactive bindings.

Что это за система? Она позволяет нам связывать данные на префабе с данными в коде. У нас есть ViewModel, лежащая на префабе. В ней есть некие ключи с разными типами. Соответственно, вся остальная логика, которая у нас привязана к UI, привязана к этим ключам и их изменениям. То есть, если у нас есть некая логическая переменная, меняя ее в коде, мы можем менять любые состояния UI автоматически.



Использование reactive bindings принесло нам как множество новых возможностей, так и ряд зависимостей. Для связи переменных кода и ViewModel, лежащей на префабе, нам необходимо было соответствие строковых имен. Это приводило к тому, что в результате неосторожной правки префаба или ошибки мерджа могли быть утеряны какие-то из этих связей, а ошибка замечалась уже на этапе поздних тестов в виде отвалившегося UI-функционала.

Росла частота использования системы — росло число подобных сложностей.

Два основных неудобства, с которыми мы столкнулись:

  • Строковые ключи в коде;
  • Нет проверки соответствия ключей в коде и ключей в модели.

Эта статья — о том, как мы дополнили систему и тем самым закрыли эти потребности.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры2.2K
Комментарии 2

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

Блог компании PixonicРазработка мобильных приложенийРазработка игрUnityИгры и игровые приставки
Перевод


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

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

Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры3.3K
Комментарии 1