• Допинг для аналитики: почему стоит обратить внимание на Apache Zeppelin

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

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

      Поэтому я расскажу об инструменте, который будет полезен для всех. Кто только начинает выстраивать аналитику — сможет «на коленке» создать систему с нуля, а компании с уже готовыми решениями — «бустануть» свой подход.
      Читать дальше →
    • Создание шейдеров

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

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


      Сцена из Minecraft, до и после добавления нескольких шейдеров.

      Задача этого туториала


      Иногда программирование шейдеров представляется загадочной чёрной магией и его часто понимают неправильно. Существует множество примеров кода, демонстрирующих создание невероятных эффектов, но в которых практически нет объяснений. В своём руководстве я хочу восполнить этот пробел. Я сосредоточусь в основном на базовых принципах создания и понимания кода шейдеров, чтобы вы смогли с лёгкостью настраивать, сочетать или писать свои собственные шейдеры с нуля!
      Читать дальше →
    • Библиотека быстрого поиска путей на графе

        Привет, Друзья!


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


        Пример использования на огромном графе:



        Поиграться с демо можно здесь


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


        Описание разных вариантов A* уже не раз встречалось на хабре. Мне очень понравилось вот это, потому повторяться в этой статье я не буду. Под катом расскажу подробнее почему библиотека работает быстро и о том, как было сделано демо.

        Читать дальше →
      • Системы Линденмайера

        • Перевод

        Естественные паттерны


        Системы Линденмайера придумал венгерский биолог Аристид Линденмайер, изучая рост водорослей. Он разработал L-системы как способ описания процесса роста водорослей и простых растений. Результатом стал своего рода язык, на котором можно было выразить свойства рекурсивности и самоподобия роста организма. И в самом деле, L-системы можно использовать для генерирования естественных паттернов; кроме того, хорошо известные математические паттерны тоже можно записать в виде L-системы. В этой статье я расскажу о различных типах L-систем и продемонстрирую их с помощью отрисовки «черепашьей графикой» двухмерных и трёхмерных систем Линденмейера.
        Читать дальше →
        • +39
        • 10k
        • 3
      • Создание когнитивных связей у игроков

        image

        Вступление


        Статья повествует о создании когнитивных связей в головах игроков логической игры
        «Maze Lord». Или как перевели её различные сайты — Повелитель Подземелий. Это пошаговая логическая игра с элементами менеджмента ресурсов в roguelike сеттинге.
        Читать дальше →
      • Чему инди-разработчики могут научиться у инди-писателей

        • Перевод
        image

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

        Но представьте рынок, на котором такие рекомендации неприменимы. На нём нет таких вещей, как Steam Launch Visibility Round или рекомендации в App Store. Что, если нет прессы, с радостью пишущей обзоры? И что, если вместо 7667 игр, выпущенных в Steam в 2017 году, в тот же год выпущено больше 100 000 новых книг? А общее количество книг на рынке превышает 4 000 000 наименований?
        Читать дальше →
      • Супер-полное руководство по публикации в Microsoft Store

        • Tutorial
        Привет, хабр! У меня часто случаются подобные ситуации: занимаюсь чем-нибудь сложным и в какой-то момент вылезает ошибка. Начинаю искать проблему в, соответственно, замороченных вещах, часто делая то, что не надо. И так проблемы нарастают. А в конце оказывается, что неполадка была в чем-то простейшем, например, программу запускать нужно было от имени администратора. Я один такой? В любом случае, ниже мы делимся супер-полным руководством по публикации приложения в Microsoft Store на примере игры. Заглядывайте под кат, чтобы сохранять свое время!

        Читать дальше →
        • +19
        • 4,3k
        • 4
      • Дизайн игр: не сбивайте игрока с толку

        • Перевод
        image

        Игровой процесс может быть очень сложной задачей. Некоторые игры, например, «Змеи и лестницы», достаточно прямолинейны, однако такие игры, как SpaceChem и Factorio могут быть невероятно сложной проверкой работы мозга.

        Каждой игре, от простой до сложной, очень важно объяснить игроку, как в неё играть. Неважно, бросает ли он кубики или решает сложные математические уравнения — главное, чтобы игрок понимал, как работает игра.

        Но создатели некоторых игр делают их сложными без необходимости. В большинстве игр существует чёткий набор правил, а любые возможные действия игрока приводят к ожидаемым результатам, но некоторые игры иногда становятся запутанными. Давайте рассмотрим одни из самых частых ловушек для разработчиков и подумаем над тем, как их избежать.
        Читать дальше →
      • Мультиплеер в быстрых играх (Часть IV: Хэдшот! Путешествуем во времени)

        • Перевод

        1. Части I, II (синглплеер с авторитарным сервером)
        2. Часть III (Появление врага)
        3. Часть IV (Хэдшот!)

        Как повесить идеальный хэдшот если у тебя пинг 2 секунды? Вы узнаете в этой статье.

        Текущий алгоритм работы мультиплеера


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

        Обычно это отлично работает, но это становится большой проблемой для событий, которым нужна высокая пространственно-временная точность. Например если хочется разнести врагу башку!
        Читать дальше →
      • Мультиплеер в быстрых играх (части I, II)



        1. Части I, II (синглплеер с авторитарным сервером)
        2. Часть III (Появление врага)
        3. Часть IV (Хэдшот!)


        Предлагаю вашему вниманию перевод статьи Fast-Paced Multiplayer (Part I): Introduction.

        Разработка игры — само по себе непростое занятие. Но мультиплеерные игры создают совершенно новые проблемы, требующие разрешения. Забавно, что у наших проблем всего две причины: человеческая натура и законы физики. Законы физики привнесут проблемы из области теории относительности, а человеческая натура не даст нам доверять сообщениям с клиента.
        Читать дальше →