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

Иллюстрации

Показать все

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

Реферат

ОБЛАСТЬ ТЕХНИКИ

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

УРОВЕНЬ ТЕХНИКИ

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

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

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

Появление аспектов настоящего изобретения обусловлено данной ситуацией.

КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ

Фиг. 1 представляет собой схематическую иллюстрацию платформ клиентских устройств для атакующего, защищающегося и наблюдателя, взаимодействующих по сети в соответствии с аспектом настоящего изобретения.

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

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

Фиг. 3Б-3Г представляют собой шкалу времени, иллюстрирующую различные периоды времени, происходящие во время анимации атаки, которые содержат один или более настроенных режимов анимации, в соответствии с различными аспектами настоящего изобретения.

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

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

ПОДРОБНОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ

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

Аспекты настоящего изобретения описывают аппаратные средства и способы для сокрытия задержки в многопользовательских играх по сети. Многопользовательская игра может включать атакующего и защищающегося. Атакующий может играть в игру на первой платформе клиентского устройства, а защищающийся может играть на второй платформе клиентского устройства. Оба клиентских устройства могут быть подключены к сети. В соответствии с аспектами настоящего изобретения, атакующий может инициировать одну или более анимаций атаки. Первая платформа клиентского устройства может предварительно прогнозировать, что одна или более анимаций атаки могут привести к успешному нанесению удара по защищающемуся. Затем, после выполнения положительного прогноза, платформа клиентского устройства атакующего формирует событие-удар. Событие-удар содержит одну или более инициированных анимаций атаки и уникальный идентификатор удара (ID), который будет использован для отслеживания результатов одной или более анимаций атаки. Затем событие-удар записывается в таблицу ударов на платформе клиентского устройства атакующего и передается через сетевое соединение на платформу клиентского устройства защищающегося. Частота воспроизведения одной или более анимаций атаки на платформе клиентского устройства атакующего может быть снижена для увеличения доступного времени, в течение которого платформа клиентского устройства атакующего может получить ответ от платформы клиентского устройства защищающегося для указания того, была ли на самом деле атака успешной, как предполагалось.

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

Аспекты настоящего изобретения описывают, как аппаратные средства и способы реагируют на различия в продолжительности задержек. Перед тем, как событие-удар передается платформой клиентского устройства атакующего, атакующий не знает, какова будет продолжительность задержки, и, по этой причине, ему требуется возможность учесть любой потенциальный исход. Последующие шаги, осуществляемые платформой клиентского устройства атакующего, основаны на том, в какой момент ответ на удар будет получен атакующим: (1) в период задержки перед ударом; (2) после периода задержки перед ударом; (3) после расширенного периода задержки удара (или никогда не будет получен).

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

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

Аспекты настоящего изобретения дополнительно описывают аппаратные средства и способы, обеспечивающие непрерывную анимацию во время перехода между одной или более анимациями атаки, и одной или более ответными анимациями. Эта ситуация является критичной, так как атакующая машина и защищающаяся машина могут выполнять действия в разное время в связи с задержками в передаче данных между машинами. Для обеспечения того, что действия атакующего останутся в одной фазе с действиями защищающегося, платформа клиентского устройства атакующего использует информацию из таблицы ударов атакующего. Сначала, после чтения таблицы, если платформа клиентского устройства определяет, что она должна находиться в периоде задержки перед ударом в результате любого из событий-ударов, то платформа клиентского устройства вставляет задержку в первый кадр ответной анимации. Затем задержка закончится, и ответная анимация будет получена, как только платформа клиентского устройства определит, что: (1) закончилась задержка удара в соответствии с платформой клиентского устройства; и в то же время (2) платформа клиентского устройства получила информацию о том, что защищающийся вышел из режима задержки удара.

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

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

Фиг. 1 представляет собой схематическое представление трех различных платформ клиентских устройств 102, 103 и 104, которые способны взаимодействовать друг с другом по сети 160. Каждая платформа клиентского устройства используется для одного или более игроков в любой заданный момент времени. Для простоты аспекты настоящего изобретения иллюстрируют каждую платформу клиентского устройства как имеющую одного игрока, однако для специалиста в данной области техники очевидно, что два или более игроков могут играть в игру на одиночной платформе клиентского устройства. На Фиг. 1 проиллюстрирована платформа клиентского устройства 102, связанная с атакующим игроком, платформа клиентского устройства 103, связанная с защищающимся игроком, и платформа клиентского устройства 104, связанная с наблюдающим игроком. Как принято в данном документе, платформа клиентского устройства 102 может называться "атакующий", платформа клиентского устройства 103 может называться "защищающийся", платформа клиентского устройства 104 может называться "наблюдатель". В вариантах, где два или более игрока играют на одиночной платформе клиентского устройства, метка "атакующий", защищающийся" и "наблюдатель" относятся к отдельному игроку и не используются для определения платформы клиентского устройства в целом.

Платформа атакующего игрока 102 содержит центральное процессорное устройство (ЦПУ) 131. В качестве примера, ЦПУ 131 может содержать один или более процессоров, выполненных в виде двухъядерной, четырехъядерной, многоядерной или ячеистой процессорной архитектуры. Атакующий 102 содержит память 132 (ОЗУ, ДОЗУ, ПЗУ и тому подобную). ЦПУ 131 способно выполнять программу управления процессом 133, части которой могут сохраняться в памяти 132. Атакующий 102 также может содержать широко распространенные схемы 140, например, схемы ввода/вывода 141, источники питания (ИП) 142, генератор тактовых импульсов (ГТИ) 143 и буфер 144. Атакующий 102 может дополнительно содержать устройство хранения 134, например, дисковод, привод CD-ROM, магнитный диск и тому подобные, для хранения программ и/или данных. Атакующий 102 также может дополнительно содержать дисплей 137. Дисплей 137 может представлять собой экран на базе электронно-лучевой трубки (ЭЛТ) или плоскую панель, отображающую текст, цифры или графические символы. Контроллер 145 подключен к атакующему 102 через схему ввода/вывода 141 или может быть напрямую интегрирован в атакующего 102. Контроллер 145 обеспечивает взаимодействие между атакующим 102 и игроком, управляющим игровым процессом. Контроллер 145 может содержать клавиатуру, мышь, джойстик, световое перо, портативные устройства управления или другие устройства. Атакующий 102 может содержать сетевой интерфейс 139, выполненный с возможностью использования Wi-Fi, порта локальной сети или других коммуникационных способов связи.

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

Платформа атакующего 102 может получать доступ к игровой программе 106, которая имеет многопользовательские возможности. На атакующем 102 могут сохраняться одна или более игровых программ 106. Игровые программы могут сохраняться в памяти 132 или на устройстве хранения данных 134. Дополнительно, одна или более игровых программ 106 могут сохраняться на удаленном хранилище, доступ к которому имеет атакующий 102 по сети 160. Каждая игровая программа 106 содержит исполняемый игровой код, который используется ЦПУ 131 для формирования анимации в ответ на ввод команд игроком.

Указанные выше компоненты могут обмениваться сигналами друг с другом по внутренней системной шине 150. Атакующий 102 может представлять собой обычный персональный компьютер, который может стать специализированным персональным компьютером при выполнении кода, обеспечивающего варианты реализации настоящего изобретения, описанные в данном документе. В качестве примера и не с целью ограничения, атакующий 102 может представлять собой игровую консоль PlayStation 3 от компании Sony Computer Entertainment, портативную консоль PlayStation Vita, домашний компьютер, сотовый телефон или другое аналогичное устройство, поддерживающее многопользовательские видео игры по сети.

Платформа защищающегося игрока 103 может представлять собой устройство, аналогичное атакующему 102. Элементы платформы защищающегося игрока 103, соответствующие аналогичным компонентам платформы атакующего 102, отмечены такими же номерами позиций, с добавлением одиночного штриха ('). Тем не менее, следует помнить, что в определенных вариантах реализации изобретения могут быть отличия, например, платформой атакующего 102 может быть консоль PlayStation 3, а платформой защищающегося 103 может быть портативная консоль PlayStation Vita. Дополнительно, платформой наблюдателя 104 может быть устройство, аналогичное, по существу, платформе защищающегося 103 и платформе атакующего 102. Элементы платформы наблюдателя 104, соответствующие аналогичным компонентам платформы атакующего игрока 102, отмечены такими же номерами позиций, с добавлением двойного штриха (''). В этом случае также определенные варианты реализации платформы наблюдателя 104 могут отличаться от платформ атакующего 102 и защищающегося 103. Тогда как Фиг. 1 только иллюстрирует три платформы клиентского устройства, каждая из которых соответствует атакующему 102, защищающемуся 103 и наблюдателю 104, дополнительные аспекты настоящего изобретения содержат системы с большим или меньшим количеством платформ клиентского устройства. В качестве примера и не с целью ограничения, возможно только наличие атакующего 102 и защищающегося 103, при этом только два игрока играют в игру 106, может быть два или более наблюдателей 104, каждый из которых наблюдает взаимодействие между атакующим 102 и защищающимся 103, может быть множество защищающихся 103, если атакующий 102 атакует множество оппонентов в одно и то же время, может быть множество атакующих 102, если защищающийся 103 атакован двумя или более оппонентами в одно и то же время, а также возможна любая их комбинация.

Аспекты настоящего изобретения позволяют использовать игровой процесс, построенный на архитектуре точка-точка. Каждая платформа клиентского устройства может быть связана с анимированным персонажем, то есть атакующий 102 связан с анимированным персонажем атакующего, защищающийся 103 связан с анимированным персонажем защищающегося, а наблюдатель 104 связан с анимированным персонажем наблюдателя. Каждая платформа клиентского устройства способна доставлять информацию о состоянии и событии, связанную с ее соответствующим анимированным персонажем, другой платформе клиентского устройства. В качестве примера и не с целью ограничения, информация о состоянии может содержать позицию и передвижение анимированного персонажа. В качестве примера и не с целью ограничения, информация о событии может содержать анимацию атаки, например, замах или удар дубинкой, и ответную анимацию в случае успешной атаки, например, падение на землю или отталкивание назад. Информация о состоянии и событии доставляется каждой платформой клиентского устройства с обычным интервалом, например, 30 пакетов в секунду. При отображении игрового процесса на ее соответствующем дисплее 137, платформа клиентского устройства будет использовать информацию о состоянии и событии для отображения серверных объектов других анимированных персонажей. Например, анимированный персонаж атакующего может быть отображен на дисплее атакующего 137, в соответствии с информацией о состоянии и событии, сформированном атакующим 102, а серверные объекты анимированных персонажей для анимированного персонажа наблюдателя и анимированного персонажа защищающегося могут отображаться на дисплее атакующего 137, в соответствии с данными состояния и события, которые передаются атакующему 102 от соответствующей платформы клиентского устройства для наблюдателя 104 и защищающегося 103.

В связи с этим, в соответствии с аспектами настоящего изобретения, описывается информация о событии, связанная с анимацией атаки, и информация об ответах. Скрытие задержек при доставке этих событий позволяет игровому процессу быть более плавным для игроков и позволяет получать непрерывную анимацию. Фиг. 2А-2В представляют собой функциональные схемы, иллюстрирующие, как события-удары 230 и ответы на удары 231 доставляются и хранятся соответствующими платформами клиентских устройств 102, 103 и 104.

Событие-удар 230 может формироваться атакующим 102, как только он предполагает, что одна или более анимация приведут к успешной атаке. В общем смысле, прогнозирование успешной атаки выполняется за счет предварительного просмотра анимации для определения того, попадет или нет в массив столкновений атакующий. В качестве примера, прогнозирование может быть выполнено путем предположения, что позиция атакующего и защищающегося остается неизменной. Исходя из этого начального предположения, последующая траектория оружия нападающего, например, помимо всего прочего, меча, дубинки или кулака, определяется путем просмотра кадров после инициализации анимации, на предмет того, было ли в них столкновение между атакующим и защищающимся. Анимация атаки может продвигаться кадр за кадром от текущего времени к времени перед ударом, и в каждый момент времени платформа атакующего 102 может проверять прогноз столкновения с защищающимся. События-удары 230 могут содержать одну или более анимаций атаки, прогнозирующих удачную атаку и соответствующий идентификатор удара (ID). Идентификатор удара является уникальным идентификатором, который может использоваться каждой платформой клиентского устройства 102, 103 и 104 для отслеживания анимации. Для обеспечения уникальности идентификатора, идентификатор удара может содержать 8-битный компонент оперативного запоминающего устройства (ОЗУ) и 8-битный компонент по модулю. Первое событие-удар 230 имеет компонент по модулю от "1" и каждое последующее событие-удар 230 увеличивается с шагом в 1. В качестве примера, набор идентификаторов удара может представлять собой следующую последовательность {RAM-1, RAM-2, RAM-3, RAM-4 …}, где RAM представляет собой 8-битное число.

На Фиг. 2А атакующий 102 прогнозирует, что одно или более действий анимированного персонажа атакующего приведет к успешной атаке на анимированный персонаж защищающегося. Таким образом, было сформировано событие-удар 230. Событие-удар сохраняется в таблице ударов 235, расположенной на атакующем 102. В качестве примера, таблица ударов 235 может быть расположена в памяти 132. Таблица ударов 235 используется для связи события-удара 230 с ответом на удар 231, который может быть получен от защищающегося 103 в будущем. Дополнительно, атакующий 102 доставляет событие-удар 230 защищающемуся 103 и наблюдателю 104 по сети 160, что показано пунктирными стрелками.

На Фиг. 2Б наблюдатель 104 и защищающийся 103 получают событие-удар 230 и сохраняют его в своей соответствующей таблице ударов 235. Наблюдатель 104 предпочтительно должен получать и сохранять событие-удар 230 для того, чтобы у наблюдателя 104 корректно отображалась анимация атаки и ответная анимация на его дисплее 137''. Информация, сохраненная в таблице 235 наблюдателя, будет указывать, когда анимация, например, задержка удара, будет инициирована и остановлена.

Помимо сохранения события-удара 230 в своей таблице ударов 235, защищающийся 103 также может определять, соответствует ли одна или более атак успешной атаке. Проблемой защищающегося 103, которому наносился урон, даже тогда, когда он был полностью защищен от атаки, как было в предыдущих уровнях техники, было невозможность принятия решения об успешности атаки на защищающегося 103. Вместо использования серверной информации, которая не отражает большинство последних позиций анимированного персонажа защищающегося (которые могли возникнуть в случае принятия решения об атаке атакующим 102), одна или более анимаций атаки анализируются с использованием информации о наибольшем количестве текущих состояний и событий, доступных защищающемуся 103. После анализа атаки защищающийся 103 может формировать ответ на удар 231. Ответ на удар 231 сохраняется в таблице ударов защищающегося 235, а также доставляется по сети к атакующему 102 и наблюдателю 104. Ответ на удар содержит информацию, идентифицирующую одну или более анимаций ответа на удар и такой же идентификатор, который был связан с событием-ударом 230. Одна или более анимация ответа на удар будет соответствовать результату атаки. Например, если одна или более анимаций ответа на удар определит, что результат атаки был успешным, то одна или более анимаций ответа на удар будет содержать анимацию, демонстрирующую падение на землю анимированного персонажа защищающегося или толчок назад. В альтернативном варианте, если будет определено, что атака не была успешной, анимация ответа на удар будет содержать анимацию блокировки атаки защищающимся или полного ухода от атаки. Как только событие-удар 230 будет проанализировано сразу же после его получения защищающимся 103, любые блокирующие действия или действия по уклонению, инициированные защищающимся 103 после получения, не изменят результатов атаки. Событие-удар 230 может быть получено перед возникновением контакта между анимированным персонажем атакующего и защищающегося, и, таки образом, может потребоваться отмена последующей анимации блокировки или уклонения анимированного персонажа защищающегося, как только событие-удар 230 будет получено. Это позволит предотвратить ощущение у игрока, управляющего защищающимся анимированным персонажем, того, что удар находится в середине блокирующего движения.

На Фиг. 2В атакующий 102 и наблюдатель 104 получают ответ на удар и сохраняют его в своей соответствующей таблице ударов 235. Атакующий 102 и наблюдатель 104 теперь могут видеть полное взаимодействие между анимированным персонажем атакующего и анимированным персонажем защищающегося. Передача события-удара 230 и получение ответа на удар 231 должны происходить перед выполнением анимации атаки, инициируемой атакующим 102, для получения непрерывной анимации. Если задержки слишком большие для полного цикла передачи данных между атакующим 102 и защищающимся 103 перед тем, как анимация атаки будет завершена, игровой процесс нарушается. Таким образом, возможность скрыть задержки позволяет улучшить игровой процесс в условиях многопользовательских игр.

Аспекты настоящего изобретения скрывают задержки с использованием одного или более альтернативных режимов анимации. Фиг. 3А представляет собой обычную шкалу времени 300 в системе, которая не использует технологию, скрывающую задержки. Фиг. 3Б-3Г иллюстрируют примеры расширенных шкал времени атаки 301, 301' и 302, которые используют альтернативные режимы анимации, скрывающие задержки в соответствии с аспектами настоящего изобретения. Следует учитывать, что шкалы времени, проиллюстрированные на Фиг. 3А-3Г, не масштабированы. На Фиг. 3А обычная шкала времени 300 начинается тогда, когда одна или более анимаций атаки инициированы в точке 310. В качестве примера, анимация атаки может начинаться, когда анимированный персонаж, управляемый атакующим 102, замахивается дубинкой на анимированный персонаж, управляемый защищающимся 103. Временной интервал после анимации атаки, инициированной в точке 310, и перед контактом между анимированным персонажем атакующего и анимированным персонажем защищающегося в точке 312, определенным как период времени перед ударом 311. Период времени перед ударом 311 может иметь разную продолжительность, в зависимости от различных факторов, например, помимо всего прочего, типа оружия, расстояния между анимированными персонажами, силой атаки, силы анимированного персонажа атакующего или любой комбинацией этих факторов. В качестве примера и не с целью ограничения, период времени перед ударом 311 может быт равен около 100 мс. В этом случае, когда не реализована технология, скрывающая задержки, ответ на удар 231 будет получен атакующим 102 перед окончанием периода времени 311 перед ударом. Как только ответ на удар 231 будет получен, ответная анимация 314 буферизируется, это событие может быть инициировано, как только будет достигнута точка контакта 312. Частота воспроизведения первого кадра ответной анимации 314 может быть значительно снижена или даже приостановлена на короткий промежуток времени для получения эффекта задержки удара. Продолжительность эффекта задержки удара учитывает период задержки удара 313. Период задержки удара 313 может иметь разную продолжительность, в зависимости от различных факторов, например, помимо всего прочего, типа оружия, расстояния между анимированными персонажами, силой атаки, силы анимированного персонажа атакующего или защищающегося или любой комбинацией этих факторов. В качестве примера и не с целью ограничения, частота воспроизведения первого кадра ответной анимации может быть уменьшена до минимального значения, отличного от нуля, например, до около 1/1000 от обычной скорости. После окончания периода задержки удара 313 частота воспроизведения ответной анимации 314 может вернуться к обычному значению. В идеальном случае ответная анимация на удар может быть инициирована на машине атакующего и наблюдателя в момент удара, например, в конце периода времени перед ударом, но перед задержкой удара.

Фиг. 3Б иллюстрирует расширенную временную шкалу атаки 301, которая включает в себя альтернативный режим анимации, в соответствии с аспектами настоящего изобретения. Шкала времени 301, по существу, аналогична шкале времени атаки 300 за исключением того, что период перед ударом 311 расположен в расширенном периоде времени перед ударом 315. Расширение периода времени перед ударом 311 обеспечивает дополнительное время для атакующего 102 на получение ответа на удар 231 перед контактом между анимированным персонажем атакующего и анимированным персонажем защищающегося в точке 312.

Увеличенный период времени перед ударом 315, в сущности, аналогичен периоду перед ударом 311, за исключением того, что частота воспроизведения периода перед ударом 315 снижена по сравнению с частотой воспроизведения периода времени перед ударом 311. В связи с тем, что частота воспроизведения расширенного периода времени перед ударом снижена, общий объем задержки, который должен быть скрыт, увеличен. Тем не менее, слишком большое уменьшение частоты воспроизведения расширенного периода времени 315 перед ударом может привести к тому, что анимация атаки будет замедленной и не реагирующей на действия игрока. Лимит того, насколько может быть уменьшен расширенный период времени перед ударом 315, зависит от типа игры и ожиданий игроков, играющих в игру. В качестве примера, в играх типа боевых единоборств частота воспроизведения расширенного периода перед ударом 315 может составлять около двух третьих от частоты воспроизведения периода перед ударом 311 без замедления анимации и снижения реакции на действия игрока. Соответственно, период времени 311, который длится 100 мс, может иметь расширенный период времени перед ударом 315, который длится 150 мс. В идеале, дополнительные 50 мс достаточны для предоставления дополнительного времени на получение ответа на удар 231 перед контактом между анимированным персонажем атакующего и анимированным персонажем защищающегося в точке 312.

Тем не менее, если ответ на удар 231 не получен перед моментом контакта 312, то период задержки удара 313 также используется в качестве дополнительного периода времени для скрытия задержки, как проиллюстрировано на Фиг. 3В. Перед достижением периода времени задержки удара 313 анимация атаки 310 может быть приостановлена в точке или практически рядом с точкой контакта 312. В некоторой точке внутри периода задержки перед ударом 313 может быть получен ответ на удар 231. Как только ответ получен, ответная анимация 314 инициируется при сниженной частоте воспроизведения, например, при частоте около 1/1000 от обычной скорости. Сниженная частота воспроизведения во время задержки удара является достаточно низкой для эффективного "замедления" анимации. Например, замедление анимации на одну четвертую от обычной скорости будет слишком быстрым. Частота воспроизведения, большая, чем нуль (например, 1/1000 от обычной частоты) может быть приемлемой, так как она медленнее, чем анимация, которая практически приостановлена. Тем не менее, очень медленная (практически равная нулю) частота воспроизведения может быть приемлемой для обеспечения визуальных эффектов. Замедленная анимация будет выглядеть лучше, чем та, которая полностью остановлена. После окончания периода задержки удара 313 ответная анимация 314 может продолжиться с обычной частотой воспроизведения.

Следует помнить, что во время задержки удара анимация на платформе защищающегося 103 также приостанавливается. Защищающийся также может воспроизводить ответную анимацию на удар, например, соответствующую "получению удара" или "блокировке", а первый кадр ответной анимации защищающегося может быть приостановлен (например, масштабирование времени на 1/1000 от обычной скорости, как и в случае с анимацией атаки) для визуального воздействия во время периода задержки.

Расширенная шкала времени 302 на Фиг. 3Г обеспечивает дополнительные аспекты настоящего изобретения, которые предоставляют еще больше времени для скрытия задержек, если ответ на удар 231 не получен в конце периода задержки удара 313. При таком условии, альтернативный режим анимации может дополнительно содержать вспомогательный период задержки удара 316. Вспомогательный период задержки удара 316 увеличивает продолжительность обычной задержки удара 313 для обеспечения дополнительного времени на получение атакующим 102 ответа на удар 231. Вспомогательный период задержки удара 316 может иметь неограниченную продолжительность по времени. В этом случае вспомогательный период задержки удара может еще не закончиться до момента получения ответа на удар 231. Тем не менее, если количество времени, используемое для вспомогательного периода задержки удара 316 слишком большое, игровой процесс может стать замедленным и не реагировать на действия игрока. Как правило, вспомогательная задержка удара 316 обеспечивает дополнительно 200-300 мс перед задержкой, что начинает отвлекать игрока. Если при окончании периода вспомогательной задержки удара 316 все еще нет ответа на удар 231, то атакующий 102 может решить, что ответ на удар 231 не будет получен никогда. В этом случае, атакующий 102 может перейти в режим ожидания. Когда атакующий 102 находится в режиме ожидания, атакующий сотрет все данные в его таблице данных, соответствующих идентификатору удара, которые не отвечают периоду и не выводят из режима вспомогательного периода задержки удара 316. При выходе из режима ожидания может быть инициирована анимация задержки 314'. В качестве примера и не с целью ограничения, анимация задержки 314' может возобновить анимацию атаки в результате неудачной атаки.

Дополнительный аспект настоящего изобретения содержит обработку существующего периода задержки удара 313 (или, при необходимости, вспомогательного периода задержки 316) таким способом, чтобы обеспечить синхронизацию ответной анимации, как для анимированного персонажа атакующего, так и для анимированного персонажа защищающегося. В зависимости от задержки, которая должна быть скрыта, могут возникнуть ситуации, когда защищающийся 103 инициирует период ответной анимации 314 перед тем, как атакующий 102 или наблюдатель 104 инициирует период ответной анимации 314. В таких ситуациях серверный объект анимированного персонажа защищающегося 103 будет показан, как двигающийся на дисплее атакующего 137 перед тем, как анимированный персонаж атакующего начнет период ответной анимации 314. Такой сценарий создает рассыпающуюся анимацию и является нежелательным. Для того, чтобы обеспечить переход от периода задержки удара 313 (или вспомогательного периода задержки удара 316) к периоду ответной анимации 314 в одно и то же время для локального и серверног