• Разработчики о самых грязных программных трюках в играх

    • Перевод
    image


    Когда время заканчивается, разработчики выдохлись, а загадочные проблемы продолжают появляться, иногда требуются нестандартные решения. Когда вам любой ценой нужно завершить проект, то на кону стоит всё… В паре классических статей, изначально опубликованных в дружественном журнале Game Developer magazine, мы изучили несколько потрясающих примеров таких решений из реальной жизни. Эти нестареющие шедевры можно прочитать здесь (перевод на Хабре) и здесь.

    Gamasutra ещё раз решила рассмотреть эту тему. Мы собрали со всей игровой индустрии необычные решения необычных проблем. Те, кто поделился с нами этими решениями, могут и не гордиться такими «исправлениями», но на самом деле гордиться им стоит. Им удалось выпустить игру, они ничего не испортили и, что важнее всего, никто ничего не заметил. По крайней мере, до этой статьи.

    Насладитесь изобретательностью, подивитесь бесстрашию, научитесь на ошибках своих предшественников, и самое важное — выпускайте работающие игры, и тоже в срок.
    Читать дальше →
  • Трассировка лучей на GPU в Unity

    • Перевод
    Для трассировки лучей (ray tracing) настали удивительные времена. Компания NVIDIA реализует ускоренное с помощью ИИ шумоподавление, Microsoft объявляет о нативной поддержке в DirectX 12, а Питер Ширли продаёт свои книги по свободной цене (pay what you want). Похоже, что трассировка лучей наконец получила шанс быть принятой при дворе. Возможно, говорить о начале революции ещё слишком рано, но уже определённо стоит начать изучать и накапливать знания в этой области.

    В этой статье мы напишем с нуля в Unity очень простой трассировщик лучей с помощью compute shaders. Скрипты мы будем писать на C#, а шейдеры — на HLSL. Весь код выложен на Bitbucket.

    В результате у нас получится отрендерить нечто подобное:

    Читать дальше →
    • +38
    • 5,9k
    • 6
  • Конференция DEFCON 23. «Как я сбивал назойливый дрон соседского ребёнка». Майкл Робинсон

    • Перевод
    Большое спасибо за то, что пришли меня послушать! То, о чём я буду говорить, отличается от выступлений предыдущих спикеров. Сначала я хочу поблагодарить людей, которые помогали мне в подготовке этого выступления. Некоторые из них смогли тут присутствовать, некоторые нет. Это Алан Митчел, Рон МакГайер, Крис Тейлор и Кэти Херитадж и ещё несколько человек, которые захотели сохранить анонимность, поэтому их имена напечатаны на этой картинке чёрным цветом.



    Мой сосед меня реально достал, а его ребёнок достал меня вдвойне! Меня раздражают его… сопли, можете заменить «сопли» более подходящим словом из четырёх букв! Но самая большая проблема возникла, когда у соседского парня появилось вот это – квадрокоптер с видеокамерой.



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



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

    Я стал искать варианты адекватного ответа. Может быть, это?
    Читать дальше →
  • Знакомство с гео-библиотекой S2 от Google и примеры использования

      Привет, Хабр!

      Меня зовут Марко, я работаю в Badoo в команде «Платформа». Не так давно на GopherCon Russia 2018 я рассказывал, как работать с координатами. Для тех, кто не любит смотреть видео (и всех интересующихся, конечно), публикую текстовый вариант своего доклада.



      Введение


      Сейчас у большинства людей в мире есть смартфон с постоянным доступом в Интернет. Если говорить в цифрах, то в 2018 году смартфон будет у почти 5 млрд людей, и 60% из них пользуются мобильным Интернетом.

      Это огромные числа. Компаниям получать координаты пользователей стало легко и просто. Эти лёгкость и доступность породили (и продолжают порождать) огромное количество сервисов, основанных на координатах.

      Всем нам известны компании типа Uber, игры, покорившие мир, такие как Ingress и Pokemon Go. Да что уж там, в любом банковском приложении есть возможность увидеть банкоматы или скидки поблизости.

      Мы в Badoo также очень активно используем координаты, чтобы предоставлять своим пользователям лучший, актуальный и интересный для них сервис. Но о каком именно использовании идёт речь? Давайте посмотрим на примеры сервисов, которые у нас есть.
      Читать дальше →
    • Операционные системы с нуля; уровень 2 (младшая половина)

      • Tutorial

      В этой части мы напишем менеджер памяти для того, чтоб разблокировать использование Vec, String, HashMap и всего этого. Сразу после этого реализуем файловую систему FAT32 и подключим драйвер для EMMC (такая штука для общения с SD-карточками). В конце концов в нашей командной оболочке появятся пара новых команд: cd, pwd, cat, ls.


      Нулевая лаба


      Первая лаба: младшая половина и старшая половина

      Читать дальше →
    • Синхронизация состояний в многопользовательских играх

      • Перевод
      image

      Проблема многопользовательских игр


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

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

      Обычно программа игры должна симулировать следующее:

      изменения в окружении с учётом времени и вводимых игроками данных.

      Игра — это программа, хранящая состояние, поэтому она зависит от времени (реального или логического). Например, PACMAN симулирует окружение, в котором постоянно перемещаются призраки.

      Многопользовательская игра не является исключением, однако из-за взаимодействия игроков её сложность намного выше.
      Читать дальше →
    • Как работает видеопроцессор

      • Перевод
      image

      [Прим. пер.: оригинал статьи называется GPU Performance for Game Artists, но, как мне кажется, она будет полезной для всех, кто хочет иметь общее представление о работе видеопроцессора]

      За скорость игры несут ответственность все члены команды, вне зависимости от должности. У нас, 3D-программистов, есть широкие возможности для управления производительностью видеопроцессора: мы можем оптимизировать шейдеры, жертвовать качеством картинки ради скорости, использовать более хитрые техники рендеринга… Однако есть аспект, который мы не можем полностью контролировать, и это графические ресурсы игры.

      Мы надеемся, что художники создадут ресурсы, которые не только хорошо выглядят, но и будут эффективны при рендеринге. Если художники немного больше узнают о том, что происходит внутри видеопроцессора, это может оказать большое влияние на частоту кадров игры. Если вы художник и хотите понять, почему для производительности важны такие аспекты, как вызовы отрисовки (draw calls), уровни детализации (LOD) и MIP-текстуры, то прочитайте эту статью. Чтобы учитывать то влияние, которое имеют ваши графические ресурсы на производительность игры, вы должны знать, как полигональные сетки попадают из 3D-редактора на игровой экран. Это значит, что вам нужно понять работу видеопроцессора, микросхемы, управляющей графической картой и несущей ответственность за трёхмерный рендеринг в реальном времени. Вооружённые этим знанием, мы рассмотрим наиболее частые проблемы с производительностью, разберём, почему они являются проблемой, и объясним, как с ними справиться.
      Читать дальше →
      • +52
      • 43,5k
      • 6
    • История цветовой модели RGB

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

      Пионеры исследований цветовосприятия


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

      image

      Поглощение света опсинами

      Колбочки соответствуют красной, зелёной и синей частям спектра и часто называются длинными (L), средними (M) и короткими (S) согласно длинам волн, к которым они наиболее чувствительны.
      Читать дальше →
    • Мастер-класс «Почему Стив Джобс любил шрифты» (Алексей Каптерев)

      • Tutorial


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




      Шутка, написанная гарнитурой Times, на 10 % смешнее той, что написана гарнитурой Arial. Почему? Чёрт знает. Лучшее объяснение, которое я видел: юмор ассоциируется с агрессией, с остротой, с остроумием — а Times выглядит более острым, чем Arial.


      Ещё один любопытный эксперимент, в котором участвовало 45 тыс. человек. Заходишь на сайт, тебе показывают статью Дэвида Дойча, британского физика. В статье автор пишет, что сегодня очень трудно внезапно умереть. Например, от инфекционного заболевания или в уличной драке. Лет сто назад это случалось намного чаще. Главный вывод статьи — сейчас мир безопасен как никогда. В среднем, конечно, ведь где-то постоянно идут локальные военные конфликты.

      Читать дальше →
    • Как я взломал паяльник

      Фраза звучит несколько странно? Спасибо техническому прогрессу — не так давно «сфотографировать на телефон» звучало не менее странно.

      image

      В конце прошлого года я купил паяльную станцию, уже успевшую получить ярлык «народная». Её достоинства: удобные жала-картриджи T12, приличная мощность (до 72W в теории), быстрый нагрев (единицы секунд), невысокая цена. (Подробнее ознакомиться со станцией можно в этом шикарном обзоре)

      Купил я самую последнюю версию hardware 2.1s, и немного расстроился, увидев что прошивка старая. Разумеется руки зачесались обновить. Зная что «сердцем» паяльной станции является STM32F103C8 (популярный микропроцессор ARM Cortex-M3 производства STMicroelectronics) — тем интереснее было покопаться, т.к. я когда-то уже моргал светодиодом на STM32F4Discovery.

      Тут же были припаяны 4 провода SWD интерфейса, подключен программатор, залита прошивка.
      И… Станция потребовала активацию!
      Читать дальше →