• О создании UI-анимаций в играх и почему они так важны



      Привет! Я старший UI-дизайнер Pixonic, Алексей Морев. И в этой статье речь пойдет UI-анимациях, которые каждый из нас может увидеть в играх.

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

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

      Итак, начнем!
      Читать дальше →
    • Как создавать игры для тех, кто не хочет играть по правилам

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

      Как исследователя, меня всегда восхищало то, что скрыто от глаз в играх, в которые я играю. До сих пор хорошо помню, как в первый раз попала под Штормград в World of Warcraft. Добраться туда нетрудно, и я, конечно, не была первой. Но когда я спустилась вниз под шумный город, мой восторг было не передать. Прямо надо мной стояли сотни людей: все куда-то спешили, продавали вещи на аукционе или болтали с друзьями, и я была как бы не с ними, но все еще там. С тех пор я всегда искала в играх что-то подобное. Мне все время хочется заглянуть за дым и зеркала и увидеть игру такой, какая она на самом деле. Это привело меня к размышлению о том, как разработчики создают игры для таких людей, как я, — исследователей.

      image
      Читать дальше →
    • Как увеличить удержание в игре при помощи коллабораций

      • Перевод


      Все мы знаем, что для достижения успеха мобильному проекту F2P необходимо грамотное оперирование live-ops. Иными словами, вам необходимо обеспечивать своих игроков непрерывным потоком качественного контента.

      Игровые ивенты привлекают внимание игроков и стимулируют FOMO — синдром упущенной выгоды, — что приводит к улучшению удержания, а то и увеличению LTV.

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

      Какой из этого профит?

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

      В статье мы немного поговорим о сути партнерских ивентов и рассмотрим несколько известных кейсов таких коллабораций разной степени успешности.
      Читать дальше →
    • Выжимаем из Gears Tactics максимальную производительность с минимальными артефактами при помощи VRS

      • Перевод
      Gears Tactics — динамичная пошаговая стратегия во вселенной одной из самых известных игровых франшиз — Gears of War. Кроме того, это первая игра, поддерживающая одну из основных функций DirectX 12 UltimateVariable Rate Shading (VRS).

      VRS позволяет Gears Tactics добиться значительного прироста производительности — до 18,9%! — на широком спектре оборудования без заметной потери качества изображения.

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

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

      image
      Читать дальше →
      • +17
      • 2,6k
      • 4
    • Облачный гейминг: сравниваем производительность Google Stadia и NVIDIA GeForce NOW

      • Перевод


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

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

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

      Здесь мы поговорим о двух сервисах стриминга игр, наиболее часто находящихся на слуху, — это NVIDIA GeForce NOW и Google Stadia. Вкратце обсудим их требования, архитектуру, производительность и, как итог, упомянем про будущее.

      Сразу заметим, что речь пойдет о работе стриминговых сервисов (и, в частности, релевантности результатов тестов) для США, где проживает автор оригинального текста. Эта информация может дать представление о состоянии стриминговых сервисов на основных для них рынках, но не отображает текущую картину в России. У нас GeForce NOW (GFN.ru) запущен через партнеров, а Stadia официально не поддерживается. Если вас интересуют исследования локальных стриминговых сервисов — напишите об этом в комментариях, и, если мы увидим интерес, обязательно рассмотрим и этот аспект.
      Читать дальше →
    • Самое важное с конференции Apple WWDC'20

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


        Читать дальше →
      • Охотники, щелкуны и Элли: как устроен игровой искусственный интеллект в The Last of Us

        • Перевод
        Вчера состоялся релиз сиквела The Last of Us ― игры, уже семь лет являющейся одним из наиболее узнаваемых эксклюзивов PlayStation. Это кинематографическая история о человеческих жизнях в бесчеловечной реальности мира, разрушенного современной чумой. В то время, когда игроки берут на себя управление циничным и озлобленным главным героем Джоэлом, искусственный интеллект разыгрывает других персонажей, будь то союзник, враг или зараженный.

        На фоне выхода второй части игры рассказываем о том, почему игрокам так понравился оригинал. В этой переводной статье поговорим о философии дизайна The Last of Us, касающейся всех аспектов искусственного интеллекта.



        Предупреждение: речь в статье идет только об оригинальной игре 2013 года.
        Читать дальше →
      • Как мы обвесили механику баллистического расчета для мобильного шутера алгоритмом компенсации сетевой задержки



          Привет, я Никита Брижак, серверный разработчик из Pixonic. Сегодня я хотел бы поговорить о компенсации лагов в мобильном мультиплеере.

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

          Используем ее и мы в своем мобильном мультиплеерном шутере Dino Squad.

          В этой статье моя цель ― не повторить то, что было написано уже тысячу раз, но рассказать, как мы внедряли лагкомпенсацию в нашу игру с учетом нашего технологического стэка и особенностей кор-геймплея.
          Читать дальше →
          • +32
          • 8,2k
          • 5
        • Основные тенденции в левел-дизайне мультиплеерных шутеров: чему мы научились за годы разработки War Robots

            За шестилетнюю историю существования War Robots мы не раз проводили опросы среди игроков касательно наших карт. Какие нравятся, какие нет, почему? Затем анализировали полученные ответы, фидбек ютуберов, отзывы с форумов и из социальных сетей.

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

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


            Читать дальше →
          • Удаленка ― круто. Может, остаться навсегда?

              В марте 2020 года многие компании перевели своих сотрудников на режим дистанционной работы, и Pixonic не стала исключением. По итогам первых двух месяцев можно сделать вывод, что переезд из офиса по домам просадкой в работе не обернулся, и все дедлайны соблюдаются исправно. Отсюда возникает резонный вопрос: самоизоляция когда-нибудь закончится, но раз все так хорошо, может, отказаться от офиса совсем и продолжить работать дистанционно? Тенденция к такому переходу уже существует: например, руководство Twitter разрешило желающим среди своих сотрудников навсегда остаться на удаленке.

              До недавнего времени доктрина Pixonic основывалась на том, что все штатные сотрудники работают в офисе. Мы собрали мнения глав отделов и компании об идее продолжения практики удаленной работы после окончания пандемии, и вот что из этого вышло.


              Читать дальше →
            • Вместо 100 запусков приложения ― один автотест, или как сэкономить QA-инженеру 20 лет жизни

                Всем привет, меня зовут Евгений Демиденко. Последние несколько лет я занимаюсь разработкой автоматизированной системы тестирования игр в Pixonic. Сегодня я хотел поделиться нашим опытом разработки, поддержки и использования такой системы на проекте War Robots.

                Для начала разберемся, что же все-таки мы автоматизируем этой системой.

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

                image

                Приведу немного цифр. Сейчас для War Robots написано более 600 UI-тестов и порядка 100 core-тестов. Только на этом проекте мы произвели около миллиона запусков наших тестовых сценариев, каждый из которых занимал порядка 80 секунд. Если бы эти сценарии мы проверяли вручную, то потратили бы минимум по пять минут на каждый. Кроме того, мы запустили более 700 тысяч бенчмарков.

                Из платформ мы используем Android и iOS ― всего 12 устройств в парке. Разработкой системы и ее поддержкой занимаются два программиста, а написанием и анализом тестов ― один QA-инженер.

                Читать дальше →
              • Unreal Engine 5 задает новую планку игровой реалистичности



                  Компания Epic Games впервые продемонстрировала возможности игрового движка Unreal Engine 5. Одной из главных целей его создания было достижение исключительной фотореалистичности, сравнимой только с AAA-блокбастерами и самой жизнью.

                  Unreal Engine 5 поддерживает ПК, Mac, консоли текущего и нового поколения, iOS и Android. Полноценный релиз движка ожидается в следующем году.

                  В новом движке выделяются две ключевые области:

                  • Первая ― полностью динамическое глобальное освещение, мгновенно реагирующее на изменение сцены. Теперь нет необходимости ограничиваться игрой со статичным миром ― можно проводить итерации над ним чрезвычайно быстро. Новая система освещения носит название Lumen.
                  • Вторая ― виртуализированная геометрия. С UE5 художникам не обязательно задумываться о подсчете полигонов или о том, сколько места в памяти системы они займут. Можно использовать ассеты кинематографичного качества в движке напрямую, загружать модели из ZBrush и данные фотограмметрии, не тратя время на оптимизацию уровней детализации или понижение качества для того, чтобы вписаться в нужную частоту кадров. Эта технология получила название Nanite.

                  Теперь рассмотрим все нововведения на примере игрового демо для PlayStation 5.
                  Читать дальше →
                • Маленькие секреты геймдизайнеров, заставляющие игрока ненавидеть вашу игру чуточку меньше

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

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

                  • В Hellblade предупреждение перед игрой было тщательно продумано, чтобы заставить игроков поверить, будто в игре срабатывает система permadeath в случае, если игрок умирает слишком часто, хотя на самом деле ее там нет.
                  • Pacman может огибать углы более резко, чем это делают призраки, тем самым наделяя игрока небольшим преимуществом.
                  • Во многих шутерах последние очки здоровья стоят больше всей остальной шкалы, чтобы усилить чувство «выживания на грани». С той же целью в System Shock последняя пуля нанесет урон в 4 раза более сильный, чем остальные.
                  • И, напротив, Shadow of Mordor слегка увеличивает здоровье некоторых врагов, чтобы бои длились дольше.
                  • В Bioshock и Devil May Cry, находясь за спиной игрока, противники замедляют свою атаку.
                  • В Xcom, если промахнуться много раз подряд, игрок получит скрытый бонус для последующих выстрелов. Кроме того, если игроки остаются пассивными слишком долго, враги усиливают свою агрессивность.
                  • Похоже, что в Heartstone есть pity timers ― таймеры жалости. Многие другие игры позорно использовали их в более ранние годы.
                  • В Resident Evil 4 после слишком большого количества смертей заспавнится меньше врагов, чтобы дать игроку больше шансов пройти трудный для него эпизод.
                  • В любой гоночной игре реализован адаптивный ИИ, чтобы сделать соревнование более жестким.

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

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


                  Читать дальше →
                • Pixockets: как мы написали собственную сетевую библиотеку для игрового сервера



                    Привет! На связи Станислав Яблонский, Lead Server Developer из Pixonic.

                    Когда я только пришел в Pixonic, наши игровые сервера представляли собой приложения на основе Photon Realtime SDK: многофункционального, но весьма тяжелого фреймворка. Решение это, казалось бы, должно было упростить работу с сервером. Так оно и было ― до определенного момента.

                    Photon Realtime привязывал нас к себе тем, что приходилось использовать его для обмена данными между игроками и сервером, ― а также привязывал к ОС Windows, поскольку может работать только на ней. Это накладывало на нас ограничения как с точки зрения runtime (среды исполнения): нельзя было изменить многие важные настройки виртуальной машины .NET, ― так и операционной системы. Мы привыкли работать с Linux-серверами, а не Windows. Кроме того, они нам обходились дешевле.

                    Также использование Photon било по производительности как на сервере, так и на клиенте, а при профилировании образовывалась приличная нагрузка на сборщик мусора и большое количество boxing/unboxing.

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

                    Так как мне было интересно не только решить проблему, но и лучше разобраться в работе сети, я решил взять инициативу в свои руки и попробовать написать библиотеку самостоятельно. Но, сами понимаете, дома ― дом, на работе ― работа, в результате время на разработку библиотеки находилось только в транспорте. Однако это не помешало довести идею до реализации.

                    Что из этого вышло ― читайте дальше.
                    Читать дальше →
                  • Как подготовить игру к портированию на ПК и консоли

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

                    Тем не менее, кроссплатформенность сейчас находится на подъеме. Появляется все больше и больше игр, обладающих этим свойством. Fortnite, Call of Duty, Street Fighter ― все они разных жанров, по-разному реализованы, но в той или иной степени обладают функциями кроссплатформенности.

                    Андерсен Хоровиц в своем блоге писал о том, что игры исторически сегментировались различными платформами, но теперь с ростом популярности кроссплатформменности количество мультиплеерных игр тоже растет все больше и больше.

                    Зачем нужно делать игру кроссплатформенной?

                    Для игроков это здорово: не нужно выбирать, на каком устройстве запускать игру, ― можно беспрепятственно играть с друзьями, не беспокоясь о том, есть ли они в базе игроков.

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



                    Отлично, так давайте портировать нашу игру на несколько платформ!

                    Конечно, звучит классно, почему бы и нет. Вот только…

                    Во «Властелине колец», если вы помните, на совете Элронда герои тоже обсуждали, мол, давайте же просто сделаем, что должны, на что Боромир сказал:



                    А все потому, что Боромир знает: создание полноценной кроссплатформенной игры ― это не так-то просто.

                    Так появилась идея подготовить материал для тех, кто подумывает о создании собственной кроссплатформенной игры.

                    Если вы уже издавали игры раньше, значит, вы имели дело с их отправкой на различные платформы и знаете возможности каждой из них, что будет хорошей основой для сегодняшнего материала ― и, кроме того, поможет на начальном этапе подготовки.
                    Читать дальше →
                  • CGI в домашних условиях при помощи Unreal Engine и iPhone

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

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

                      Год назад я наткнулся на следующее видео:

                      Смотреть видео


                      Что мы здесь видим? Парень нацепил на себя костюм захвата движения тела (пока ничего необычного), повесил перед собой iPhone (а вот это уже интересно) и таким образом транслирует анимацию лица и тела персонажа напрямую в режиме реального времени в Unreal Engine, и выглядит результат для столь незамысловатой реализации довольно качественно.

                      Классная идея, подумал я. Затем закрыл видео. И продолжил дальше работать.

                      Спустя полгода в открытом доступе оказался обучающий материал о том, как произвести захват анимации лица в Unreal Engine при помощи приложения на iPhone. В то же время я узнал, что в наш арт-отдел приобрели костюм для захвата движения. Посмотрел его совместимость с UE: всё подошло. Оставалось только найти iPhone для дальнейшей работы, но в наше время с этим проблем еще меньше.

                      Смотреть видео


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

                      Начался долгий процесс изучения различной документации.

                      Что в результате получилось и как мы этого добились, читайте дальше.
                      Читать дальше →
                    • Вычисление центра масс за O(1) с помощью интегральных изображений



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

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

                        В этой статье я расскажу:

                        • Что за задача такая, о которой идет речь;
                        • Подробнее об интегральных изображениях;
                        • Как использовать интегральные изображения для приближенного решения гравитационной задачи N тел применительно к дискретному полю импульсов (масс-скоростей);
                        • Какой недостаток имеет это решение и как его исправить;
                        • И, наконец, как за константное время вычислить центр масс для произвольного региона.
                        Читать дальше →
                      • Машинное обучение в Unity: учим МО-агентов перепрыгивать через стены

                        • Перевод
                        За последние несколько лет в обучении с подкреплением (reinforcement learning, RL) произошли серьезные прорывы: от первого успешного его использования в обучении по сырым пикселям до обучения Open AI роборуки, ― и для дальнейшего прогресса становятся необходимы все более сложные среды, в чем на помощь приходит Unity.

                        Инструмент Unity ML-Agents ― это новый плагин в игровом движке Unity, позволяющий использовать Unity как конструктор среды для обучения МО-агентов.

                        От игры в футбол до ходьбы, прыжков со стен и обучения ИИ собаки игре с палкой, Unity ML-Agents Toolkit предоставляет широкий спектр условий для тренировки агентов.

                        В этой статье мы рассмотрим, как работают МО-агенты Unity, а затем научим одного из таких агентов перепрыгивать через стены.

                        image

                        Читать дальше →
                        • +28
                        • 6,9k
                        • 4
                      • Валидация ассетов в Unity3D



                          Начнём с того, что я обожаю сериализацию в Unity. Она надёжна и очень проста в использовании. Я просто расширяю MonoBehaviour, ScriptableObject и подобные классы и настраиваю сериализуемые поля экземпляров в инспекторе.

                          Но у неё есть и слабости. Одна из них ― человеческий фактор. Представьте себе огромный проект, который живёт несколько лет и над которым работает около сотни человек. И любой из них может совершить ошибку: оставить пустую ссылку на объект, указать число вне диапазона, ввести строку в неверном формате, заполнить массив слишком маленьким или, наоборот, слишком большим количеством объектов. Уверен, у каждого из вас найдутся такие примеры из своего опыта. Причин и оправданий тоже множество: невнимательность, неожиданные последствия слияния веток, сбои редактора… И никто от этого не застрахован.

                          Такие ошибки до поры до времени остаются незаметными: компилятору до них нет дела, в отличие от опечаток в коде. Особенно неприятны они тем, что проявляются часто уже во время выполнения кода. Только тогда вы начинаете читать журнал сообщений и идёте проверять данные: тыкать их в редакторе или листать YAML. Но объектов может быть достаточно много, есть риск что-то пропустить или попросту залениться.

                          Конечно, можно добавить проверок в коде, но от этого он загрязнится. Иногда эти проверки негативно влияют на производительность. А ещё не всегда однозначно понятно, как именно обработать каждую конкретную ошибку.

                          Универсального или даже штатного метода бороться с подобным в Unity нет. Поэтому мы в Pixonic реализовали свою систему валидации ассетов. И это очень помогает нам жить.

                          Сейчас я опишу, как там всё устроено.
                          Читать дальше →
                          • +26
                          • 3,5k
                          • 6
                        • Блендинг и Unity Terrain: как избавиться от пересечений и перестать делать глазам больно

                            Для того, чтобы получить реалистичный мир внутри игры, необходимо учитывать взаимодействие различных форм рельефа между собой и с другими моделями. И если видимые линии пересечения между 3D-моделями портят органичность изображения, стоит задуматься над тем, как их устранить. Самый распространенный случай таких линий, который может быть знаком многим, — пересечение билбордов частиц с непрозрачной геометрией.

                            image

                            Другой пример — нарушающие естественность композиции пересечения скал и растительности с поверхностью ландшафта в сценах «на открытом воздухе».

                            image

                            Помимо разнообразных методов сглаживания (SSAA, MSAA, CSAA, FXAA, NFAA, CMAA, DLAA, TAA и др.), которые пусть и смягчают вызывающий внешний вид таких линий пересечений, но не исправляют ситуацию в полной мере, существуют и более действенные приемы. Их мы и рассмотрим.
                            Читать дальше →
                            • +35
                            • 7,8k
                            • 9