• Learnopengl. Урок 4.2 — Тест трафарета

    • Перевод

    image


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


    Читать дальше →
    • +17
    • 2,6k
    • 2
  • Танчики в консоли, статья первая: «От спора к написанию кода»

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

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

    Ну что, все готовы? Начинаем!


    Эта статья будет короткой, но информативной (для новичков, как я).

    На момент написания статьи я знала всего несколько языков и рассуждала о выборе каждого из них и насколько он подходит для разработки этих самых танчиков. Но опираясь на знания я решила распределить всё так:

    C# — клиент (так как самый лёгкий в изучении язык)
    Rust — сервер (так как самый безопасный и быстрый)
    Php/html/css/javascript — сайт (который мы ВОЗМОЖНО будем делать)
    Читать дальше →
  • Топ 10 примеров и антипримеров взаимодействия «разработчик- аудитория»: Часть первая

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



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

      Что такого делают первые и чего не делают вторые? В чем разница между этими студиями? Как вообще работать с такой неспокойной структурой, как игровое сообщество? В этой статье, которая будет состоять из двух частей, я постарался проанализировать текущее положение дел в игровом сообществе, взяв в качестве примера десять компаний, часть из которых хорошо работает с аудиторией, а часть… ну, скажем, не так хорошо. Ранжирование списка весьма условное, но точно можно сказать, что ребята на верхних позициях делают все правильно (в том, что касается отношений с сообществом), а те, кто снизу, делают что-то не так. При этом я не буду говорить о качестве игр или других заслугах и особенностях этих компаний — речь пойдет именно о взаимодействии с аудиторией.
      Читать дальше →
    • Готовимся к публикации игры в Xiaomi Mi Game Center (Unity, C#)

      • Tutorial
      Китайский рынок мобильных игр и приложений остается в значительной степени закрытым для остального мира. И не так давно Unity анонсировали сотрудничество с Xiaomi, призванное помочь разработчикам опубликовать свои игры с помощью сервисов Unity напрямую в Xiaomi Mi Game Center. А пока на официальном сайте висит табличка «Функция еще не включена, ждите новостей!», мы можем подготовить наш билд для Xiaomi. А если повезет, то и успешно опубликовать!

      image
      Читать дальше →
    • Шон Барретт: как я попал в видеоигровую индустрию

      • Перевод
      image


      Программист Terra Nova: Strike Force Centauri, System Shock 2 и серии Thief Шон Барретт рассказывает о том, что привело его к программированию трёхмерной графики и работе над играми.

      Один из постов Майка Абраша начинается с рассуждений о том, как его письменные труды повлияли на его карьеру. Это напомнило мне о том, как его труды повлияли на мою карьеру. Не уверен, говорил ли я когда-нибудь ему о том, что, возможно, благодаря ему я попал в игровую индустрию. Я подумывал написать ему письмо, но потом решил изложить всё это публично и провести небольшое исследование в этой области.

      Когда я был подростком, в 80-х у меня был компьютер Atari 800, на котором я занимался обычными вещами (немного игр, в основном BASIC). (Технически, по крайней мере, изначально, им владела моя семья, но я был единственным пользователем.) Хотя это было практически невозможно на 800, но я заинтересовался 3D-графикой. Я изучал Pascal и работу 3D одновременно с расшифровкой программы для рисования каркасной графики из журнала Byte; я предпринимал хакерские попытки воспроизвести тот же эффект на 800. (В конце концов мне удалось выполнить на 800 трассировку лучами простой сферы с освещением по Ламберту, а затем клетчатых и отражающих сфер на Atari ST моего друга.)
      Читать дальше →
    • Алгоритмы антиалиасинга в реальном времени

      • Перевод
      image

      Алиасинг (aliasing) — это, возможно, наиболее фундаментальный и самый широко обсуждаемый артефакт 3D-рендеринга всех времён. Однако в игровом сообществе его часто недопонимают. В этой статье я подробно расскажу о теме сглаживания (антиалиасинга, anti-aliasing, AA) в реальном времени, особенно о том, что касается игр, и в то же время буду излагать всё достаточно простым языком.

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

      Эту программу можно скачать здесь.

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

      Подробнее
      Реклама
    • Шаблон проектирования Entity-Component-System — реализация и пример игры

      • Перевод
      image


      В этой статье я хочу обсудить шаблон проектирования «сущность-компонент-система» (Entity-Component-System, ECS). По этой теме можно найти много информации в Интернете, поэтому я не буду глубоко вдаваться в объяснения, а больше расскажу о моей собственной реализации.

      Часть 1: Реализация шаблона Entity-Component-System на C++


      Начнём сначала. Полный исходный код моей реализации ECS можно найти в репозитории на github.

      Entity-Component-System, в основном используемый в играх — это шаблон проектирования, обеспечивающий огромную гибкость в проектировании общей архитектуры программного обеспечения[1]. Такие большие компании, как Unity, Epic или Crytek используют этот шаблон в своих фреймворках, чтобы предоставить разработчикам очень богатый возможностями инструмент, с помощью которого они могут разрабатывать собственное ПО. Прочитать более широкое обсуждение по этой тематике можно в этих постах [2,3,4,5].
      Читать дальше →
    • Дневник техлида: полгода разработки мобильного PvP



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

        Как техлид команды, я расскажу, с какими задачами и проблемами мы успели столкнуться, как их решаем и почему. Мы используем итеративный подход добавления функционала в проект и в данный момент у нас реализованы: PvP на iOS и Android (обе платформы играют на одних серверах); набор персонажей, три десятка игровых механик, боты; матчмейкинг; набор мета-фич (кастомизация персонажей, прокачка и другие); решена задача масштабируемости на весь мир.

        Итак, поехали.
        Читать дальше →
      • Проектирование системы для считывания данных с устройств ввода (Часть вторая)

          В первой части статьи были приведены шаги по созданию системы для считывания данных с устройств ввода, основанной на алиасах. Но в первой статье не был описан процесс создания приложения, который бы показывал преимущества использования подобной системы. В этой статье будет рассмотрено создание простой игры Pong, рассчитанной на игру вдвоем, с возможностью переназначить управление и возможностью назначить на действие не одну, а несколько клавиш, не ограничиваясь только клавиатурой. Мы рассмотрим не только мышь и несколько подключенных джойстиков, но и возможность назначать комбинацию клавиш, например W + Left Mouse Button, т.е. будет продемонстрирована максимальная гибкость в работе с устройствами ввода.
          Читать дальше →
        • Дайджест интересных материалов для мобильного разработчика #232 (27 ноября-3 декабря)

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

            Читать дальше →
          Самое читаемое