• Мультиплеер в быстрых играх (Часть III: появление врага)

    • Перевод


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

    Введение


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

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

    • Перевод

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

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

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


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

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



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


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

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

    • Перевод
    image

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

    image

    Имея параметры видимости наблюдателя (направление взгляда, расстояние видимости и угол поля зрения), нам нужно найти видимую для него область, т.е. определить область видимости (field of view, FoV). Если препятствия отсутствуют, это будет сектор круга, состоящий из двух граней (радиусов) и соединяющей их дуги (см. Рис. 1). Кроме того, имея заданную точку мира, мы должны быстро определить, видима ли она для наблюдателя, т.е. необходимо обрабатывать запросы линии взгляда (line of sight, LOS) для заданной точки. Обе эти операции можно выполнить достаточно эффективно для использования при рендеринге в реальном времени.
    Читать дальше →
  • Внутренняя структура игры Contra

    • Перевод
    image

    Как и многие из тех, кто программирует видеоигры, в детстве я часто играл в игры для NES. Меня всегда поражало, как разработчики смогли добиться столь многого минимальными усилиями, поэтому я потратил кучу времени на анализ внутренней работы некоторых игр. Сегодня я начинаю серию постов, в котором буду документировать то, чему научился, с точки зрения программиста игр. Я постараюсь сосредоточиться на работе систем игры на уровне движка, а не на аппаратном уровне (то есть буду говорить о том, как игра решает, что нужно отрисовать в текущем кадре, а не о том, как работают спрайты на NES). Также я постараюсь добавить любые крупицы информации об играх, которые мне покажутся интересными, например, неочевидное с точки зрения игрока поведение или примеры багов в логике игры.
    Читать дальше →
  • Работодателю о служебном изобретении

    • Tutorial
    Изобретения делают люди. Деньги на изобретениях делают фирмы. Как фирме избежать проблем с автором изобретения и другими заинтересованными лицами? Читайте разъяснения патентного эксперта.
    Читать дальше →
    • +31
    • 22,1k
    • 4
  • «Всеобщий язык науки» устами Альберта Эйнштейна

      Сегодня случайно обнаружил в Сети весьма интересную аудиозапись. Это запись голоса Эйнштейна, читающего «Всеобщий язык науки» для Британской ассоциации содействия развитию науки (на английском языке). Запись была сделана в 1941 году. Думаю, многие хотели бы услышать голос Эйнштейна.

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

    • Государственная регистрация Программы для ЭВМ

      Навеяно комментарием. Мне почему-то думалось, что уж на Хабре-то таких вопросов и возникать не должно, ибо, почитав пару-тройку раз соответствующий Административный регламент и прочие бума странички, все становится ясно. (Можете прочитать разок для общего развития, но, в принципе, ниже все необходимое расписано, если только у вас не какой-то уникальный и экзотический случай).
      В любом случае, я не прочь поделиться своим скромным опытом и рассказать о том, как мне пришлось заниматься государственной регистрацией программы для ЭВМ (правообладатель – юр. лицо, 1 штука). Ничего сложного, бтв.
      Читать дальше →
    • Паранойя по поводу юридической безопасности или с чего начать защиту своего бизнеса

        Успешные компании всегда привлекают к себе разного рода мошенников, взяточников и прочую нечисть. По собственной практике могу сказать, что в бизнесе действует принцип детской песочницы. В детстве все делились на тех, кто создает и тех, кто хочет прийти на все готовенькое. Вот построишь ты дворец из песка, а кто-то придет и обязательно или разрушит, или заберет. Бороться с этим бесполезно, как бесполезно бороться с животными инстинктами, которые в нас живут.
        Читать дальше →
      • Тайм-менеджмент для разгильдяев

          «Провести время?! Ишь чего захотела! Время не проведешь!» /Л.Кэролл. «Алиса в стране чудес». Пер. Б.Заходера/

          Недавно посетил лекцию Глеба Архангельского о тайм-менеджменте и решил поделиться своими мыслями на эту тему. Я нисколько не ставлю под сомнения классическую теорию тайм-менеджмента и ее достижения. Однако, мне показалось, что она может не подойти многим людям. В частности, я точно не хотел бы по ней жить — моя жизнь стала бы предсказуема, как железная дорога в Германии, а потому скучна и неинтересна. Мне кажется, муза к человеку, пользующемуся тайм-менеджментом не придет (или придет, немного посидит и уйдет), т.к. в любой момент времени такой человек будет корпеть над заранее запланированным списком дел.

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

          Читать дальше →