ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к многопользовательским играм и, в частности, к способам для сокрытия задержки в сетевых многопользовательских играх.
УРОВЕНЬ ТЕХНИКИ
Многопользовательские распределенные приложения в режиме реального времени, например, многопользовательские онлайн игры, становятся все более популярными в связи с распространением скоростного доступа к сети Интернет. В то же время, хотя популярность многопользовательских игр увеличивается, остается множество недостатков в их работе, требующих рассмотрения. Один из основных недостатков связан с производительностью сети и скоростью передачи данных, которые могут оказывать существенное влияние на игровой процесс.
Многопользовательские онлайн игры позволяют игрокам, находящимся на значительном географическом удалении друг от друга, играть в одну и ту же игру, в одной и той же игровой среде, в одно и то же время. Многопользовательские свойства игры позволяют игрокам наслаждаться взаимодействием с другими людьми, как в форме сотрудничества, конкуренции или соперничества, так и в форме социального общения. В различных типах многопользовательских онлайн игр игрок может индивидуально состязаться против двух или более живых противников, сотрудничать с живым(-и) участником(-ами) для достижения общих целей, контролировать деятельность других игроков или участвовать в игре, объединяющей в себе любые возможные комбинации, приведенные выше.
В настоящее время каждое многопользовательское игровое онлайн приложение имеет дело с производительностью сети, например, ее пропускной способностью. Тем не менее, существуют ограничения, связанные с качеством и пропускной способностью сетей, созданных или используемых во время игрового процесса в многопользовательских онлайн играх. Эти ограничения могут приводить к задержкам при передаче данных, и, таким образом, вызывать замедленную или прерывистую анимацию игрового процесса. Например, в играх, основанных на использовании рукопашного боя, когда первый игрок атакует второго игрока, возможна задержка в передаче данных от компьютера первого игрока к компьютеру второго игрока, что может привести к противоречиям в анимации игрового процесса. Задержка движения объектов может приводить к нарушению синхронизации реакции игроков. В результате, игроки могут воспринимать игру, как нечестную. Например, с точки зрения первого игрока, анимированный персонаж, управляемый первым игроком, может замахнуться дубинкой на анимированного персонажа, управляемого вторым игроком, до того, как анимированный персонаж, управляемый вторым игроком, будет способен блокировать удар дубинкой с помощью щита. Тем не менее, с точки зрения второго игрока, когда анимированный персонаж, управляемый первым игроком, только начинает замахиваться дубинкой, анимированный персонаж второго игрока уже поднял щит, но, при этом, будет убит в любом случае, так как с точки зрения первого игрока он все еще остается незащищенным.
Появление аспектов настоящего изобретения обусловлено данной ситуацией.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
Фиг. 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 в одно и то же время для локального и серверного объекта анимированного персонажа, платформа клиентского устройства не должна выполнять переход до тех пор, пока она не получит подтверждение того, что оба анимированных персонажа (атакующего и защищающегося) достигли момента перехода.
С точки зрения защищающегося 103, определить, когда выполнять выход из режима задержки и начать период ответной анимации 314, достаточно просто. Если защищающийся 103 определяет, что атака была удачной, и одна или более анимаций атаки содержат событие-удар 230, содержащее указания для реализации периода задержки удара 313, то защищающийся 103 инициирует период задержки удара 313. При этом нет необходимости добавлять вспомогательный период задержки удара 316, так как нет задержки, которую необходимо скрыть, ввиду того, что не требуется дополнительная информация для защищающегося 103, чтобы инициировать ответную анимацию. Как только период задержки удара 313 будет закончен, защищающийся 103 может инициировать период ответной анимации 314, как для локального анимированного персонажа (то есть анимированного персонажа защищающегося), так и для серверного анимированного персонажа (то есть анимированного персонажа атакующего).
Для того чтобы атакующий 102 мог определить, возможно ли выполнить переход от периода задержки удара 313 (или вспомогательного периода задержки удара 316) к периоду ответной анимации 314, атакующий 102 должен знать следующее: (1) что информация о состоянии и событии в таблице ударов атакующего 235 указывает на то, что серверный анимированный персонаж защищающегося больше не находится в периоде задержки удара 313; и (2) что атакующий 102 больше не находится в периоде задержки удара 313 или вспомогательном периоде задержки удара 316. Если хотя бы одно из этих двух условий не выполняется, то атакующий 102 должен оставаться в режиме задержки. Таким образом, переход от периода задержки удара 313 к периоду ответной анимации 314 происходит в результате выполнения двух отдельных сценариев.
В соответствии с первым сценарием, атакующий 102 определяет, что период задержки удара 313 для его анимированного персонажа превышен и ожидает ответа на удар со стороны защищающегося 103, что указывает на то, что анимированный персонаж защищающегося также превысил период задержки удара 313. Указание того, что анимированный персонаж защищающегося превысил период задержки удара 313, доставляется как часть информации о состоянии, передаваемой каждой платформе клиентского устройства. Как только атакующий 102 получает обновление, указывающее, что анимированный персонаж вышел из режима задержки, атакующий 102 также может выйти из режима задержки. Как правило, первый сценарий происходит тогда, когда ответ на удар 231 получен перед окончанием расширенного периода перед ударом 315.
Второй сценарий обычно происходит тогда, когда атакующий 102 нуждается в добавлении вспомогательного периода перед ударом 316, чтобы обеспечить более длинную задержку. В такой ситуации защищающийся 103 уже может выполнить переход от периода задержки удара 313 к периоду ответной анимации 314. Даже в том случае, если защищающийся 103 передает другой платформе клиентского устройства информацию о выходе из режима задержки, серверный анимированный персонаж защищающегося, отображаемый на дисплее атакующего 137, может находиться в замороженном состоянии, так как атакующий 102 еще не получил обновленную информацию о состоянии в ответе на удар 231 в связи с задержкой в системе. Дополнительно, во время периода задержки удара, атакующий 102 может игнорировать обновление обычного положения, получаемое от защищающегося 103. Таким образом, локальный анимированный персонаж защищающегося (то есть положение анимированного персонажа защищающегося, демонстрируемое на дисплее защищающегося 137') уже может начать двигаться назад, даже в том случае, если серверный анимированный персонаж защищающегося (то есть положение защищающегося анимированного персонажа, демонстрируемое на дисплее атакующего 137) остается замороженным. Затем выполняется переход к периоду ответной анимации 314, как только атакующий 102 получает обновление с информацией о том, что период задержки удара 313 завершен, в соответствии с информацией в его таблице ударов 235. Когда атакующий 102 выполняет окончательный переход к периоду ответной анимации 314, локальный анимированный персонаж защищающегося и серверный анимированный персонаж защищающегося могут находиться в разных положениях. Таким образом, атакующий 102 может выполнить одно или более действий для объединения положений серверного анимированного персонажа защищающегося и реального положения локального анимированного персонажа защищающегося. В качестве примера и не с целью ограничения, после завершения атакующим 102 вспомогательного периода задержки удара 316 атакующий 102 может интерполировать траекторию от неправильного положения (то есть положения, в котором серверный анимированный персонаж находился во время задержки удара), что быстро приведет к схождению серверного анимированного персонажа защищающегося с положением и траекторией локального анимированного персонажа защищающегося. Необходимые условия для выполнения перехода от периода задержки удара 313 к периоду ответной анимации 314 с точки зрения наблюдателя 104, по существу, аналогичны условиям для атакующего 102.
Во время задержки удара на всех машинах, для которых защищающийся является удаленным серверным объектом (машине атакующего и наблюдателя), обновление обычного положения, от машины защищающегося, могут игнорироваться во время периода задержки. Затем после завершения задержки удара обычная интерполяция от текущего положения к новому, обновленному положению быстро преобразует неправильное положение, обратно в траекторию, по которой защищающийся продвинулся в результате исхода атаки. Это можно реализовать за счет физического обновления положения, при котором происходит переход из положения задержки к траектории защищающегося в результате удара. Чаще всего обновление положения используется в игре для синхронизации перемещения игрока. В основном, на машине защищающегося, защищающийся реагирует на удар. На машине атакующего реакция защищающегося удаляется до тех пор, пока машина атакующего не выйдет из режима задержки. Для иллюстрации этого, представим бейсбольную биту, твердо ударяющую по мячу. Бейсбольный мяч (защищающийся) уже летит в воздухе с точки зрения бейсболиста. Бейсбольный мяч остается замороженным на бите, на машине биты (атакующего) до тех пор, пока машина биты, готова выйти из режима задержки удара. Затем, так как бейсбольный мяч прилетает по воздуху на машину биты, положение бейсбольного мяча интерполируется таким образом, что оно мгновенно сходится с траекторией бейсбольного мяча, уже летящего по воздуху на машине бейсбольного мяча.
Ранее описанные механизмы для перехода от периода задержки удара 313 (или вспомогательного периода задержки удара 316) к периоду ответной анимации 314 также применяется в ситуации с множеством событий-ударов 230 и ответов на удар 231, остающихся невыполненными. Во множестве многопользовательских игр отдельный игрок может быть и атакующим и защищающимся в любой заданный момент времени, или же он может быть атакован множеством других игроков в одно и то же время. Таким образом, определение того, выполнен ли переход от периода задержки удара 313 к периоду ответа на удар 314 очень важно для анализа всех невыполненных периодов задержки удара 313 и вспомогательных периодов задержки удара 316. Например, если вы являетесь атакующим 102, который доставил отдельное событие-удар 230 защищающемуся 103, однако защищающийся 103 был при этом атакован другими игроками приблизительно в одно и то же время, то вы должны подождать до тех пор, пока защищающийся 103 не укажет, что он превысил все задержки ударов от ближайших атак перед тем, как вы также превысите период задержки удара 313.
Как проиллюстрировано на Фиг. 4, атакующий 102 и защищающийся 103 могут быть выполнены с возможностью реализации способа, скрывающего задержки в многопользовательской игре в соответствии с изобретенным способом 400. Различные аспекты способа 400 могут быть реализованы за счет выполнения компьютерных инструкций, запущенных на атакующем 102, защищающемся 103 и/или наблюдателе 104. В частности, атакующий 102 может быть выполнен с возможностью, например, за счет соответствующего программирования, реализации определенных атакующих инструкций 481. Кроме того, защищающийся 103 может быть выполнен с возможностью реализации определенных защитных инструкций 482. Кроме того, наблюдатель 104 может быть выполнен с возможностью реализации определенных наблюдательных инструкций 483. На Фиг. 4 пунктирными стрелками проиллюстрирован поток данных между атакующим 102, защищающимся 103 и/или наблюдателем 104 по сети 160.
В начальной стадии на этапе 484 атакующий 102 может прогнозировать, что одно или более атакующих действий, инициированных атакующим 102, приведет к успешной атаке против защищающегося 103. Далее атакующий 102 может сформировать событие-удар 230 на этапе 485. Событие-удар может содержать одно или более атакующих действий и уникальных идентификаторов. Дополнительно, событие-удар 230 сохраняется в таблице ударов 235, расположенной на атакующем 102. Затем атакующий 102 может доставить событие-удар 230 защищающемуся 103 и наблюдателю 104 на этапе 486. Для обеспечения большего доступного времени, позволяющего скрыть задержки при передаче данных между атакующим 102 и защищающимся 103, атакующий инициирует альтернативный режим анимации на этапе 488. Альтернативный режим анимации содержит использование расширенного периода задержки удара 315 и/или добавление вспомогательного периода задержки удара 316 после окончания периода задержки удара 313, если требуется больше времени для того, чтобы скрыть задержки. Так как атакующий 102 находится в альтернативном режиме анимации, защищающийся 103 получает событие-удар 230 на этапе 487. Защищающийся 103 также сохраняет событие-удар 230 в таблице ударов 235, расположенной на защищающемся. Аналогично, наблюдатель 104 получает событие 230 на этапе 487' и сохраняет событие-удар в локальной таблице ударов 235. После получения события-удара защищающийся 103 определяет, приведет ли событие-удар 230 к успешной или неуспешной атаке на защищающегося 103 на этапе 489. После анализа события-удара 230 защищающийся формирует ответ на удар 231 на этапе 490. Ответ на удар 231 содержит информацию, идентифицирующую одну или более ответную анимацию, которая должна быть отображена, в соответствии с тем, успешной или неуспешной была одна или более анимация атаки. Ответ на удар 231 дополнительно содержит идентификатор, связанный с событием-ударом 230. Защищающийся 102 также сохраняет ответ на удар в своей локальной таблице ударов 235. Затем, на этапе 491, защищающийся 103 доставляет ответ на удар 231 атакующему 102 и наблюдателю 104 по сети 160. Атакующий 102 получает ответ на удар 231 на этапе 492 и может сохранить событие-удар 231 в локальной таблице ударов 235 атакующего. Аналогично, наблюдатель 104 получает ответ на удар 231 на этапе 492' и может сохранить событие-удар 231 в локальной таблице ударов 235 наблюдателя. Ответ на удар 231 может быть получен атакующим 102 перед окончанием расширенного периода перед ударом 316, во время периода задержки удара 313, во время расширенного периода задержки удара 316. Если ответ на удар 231 не получен перед окончанием расширенного периода задержки удара 316, то атакующий 102 формирует предполагаемый ответ на удар 231'. Предполагаемый ответ на удар 231' оптимально, но не обязательно, анализирует, что одно или более атакующих действий привели к успешной атаке. На этапе 493 защищающийся 103 может запускать выполнение одной или более ответных анимаций в соответствии с информацией, содержащейся в ответе на удар 231. На этапе 494 атакующий 102 может запускать выполнение одной или более ответных анимаций в соответствии с информацией, содержащейся в ответе на удар 231. На этапе 494' наблюдатель 104 может запускать выполнение одной или более ответных анимаций, по существу, таким же способом, что и атакующий 102. Для каждой из платформ клиентского устройства 102, 103 и 104 переход от периода задержки удара 313 (или расширенного периода задержки удара 316) к периоду ответной анимации 314 совершается, как только они определяют, что (в соответствии с их локальной информацией) период задержки удара 313 (или расширенный период задержки удара 316) закончен, и что они получили получение информацию от защищающегося 102 о том, что он также завершил период задержки удара 313.
Как проиллюстрировано на Фиг. 5А, набор инструкций атакующего 581 реализован, например, атакующим 102. Инструкции атакующего 581 могут быть сформированы в энергонезависимом машиночитаемом устройстве хранения, например, памяти 132 или устройстве хранения данных 134. Инструкции атакующего 581 также могут быть частью программы управления процессом 133. На этапе 584 инструкции могут содержать инструкции для прогнозирования того, что против защищающегося 102 будет проведена успешная атака. Далее, на этапе 585, атакующий 102 может получать инструкции для формирования события-удара 230. Затем инструкции 581 могут содержать информацию о доставке атакующим 102 события-удара 230 защищающемуся 103 и наблюдателю 104. Таким образом, атакующий 102 может получать инструкции для инициирования альтернативного режима анимации на этапе 588. На этапе 593 атакующий может быть обеспечен инструкциями для получения ответа на удар 231 от защищающегося 103. В заключение, атакующий 102 может получать инструкции для выполнения одной или более анимаций ответов на удар в соответствии с ответом на удар 231 на этапе 594.
Как проиллюстрировано на Фиг. 5Б, набор инструкций защищающегося 582 реализован, например, защищающимся 103. Инструкции защищающегося 582 могут быть сформированы в энергонезависимом машиночитаемом устройстве хранения, например, памяти 132' или устройстве хранения данных 134'. Инструкции защищающегося 582 также могут быть частью программы управления процессом 133'. На этапе 587 инструкции защищающегося 582 содержат инструкции для получения ответа на удар 230 от нападающего 102. После получения события-удара 230 защищающийся 103 получает инструкции для локального анализа события-удара 230 для определения того, привело ли одно или более атакующих действий, содержащихся в событии-ударе 230, к успешной или неуспешной атаке на защищающегося 103 на этапе 589. Далее, на этапе 590, защищающийся 103 может получать инструкции для формирования ответа на удар 231. Инструкции могут направлять защищающегося 103 на доставку ответа на удар 231 атакующему 102 и наблюдателю 103 на этапе 591. В заключение, на этапе 593, атакующий 103 может получать инструкции для выполнения одной или более ответных анимаций, содержащихся в ответе на удар 231.
Как проиллюстрировано на Фиг. 5В, набор инструкций наблюдателя 583 реализован, например, наблюдателем 104. Инструкции наблюдателя 583 могут быть сформированы в энергонезависимом машиночитаемом устройстве хранения, например, памяти 132'' или устройстве хранения данных 134''. Инструкции наблюдателя 583 также могут быть частью программы управления процессом 133''. На этапе 587' инструкции наблюдателя 583 содержат инструкции для получения события-удара 230 от атакующего 102. В дальнейшем, на этапе 592' наблюдатель 104 может быть проинструктирован для получения ответа на удар 231 от атакующего 103. В заключение, на этапе 594', наблюдатель 104 получает инструкции для выполнения одной или более ответных анимаций, содержащихся в ответе на удар 231.
Хотя выше приведено полное описание предпочтительного варианта реализации настоящего изобретения, возможно использование различных альтернативных вариантов, модификаций и эквивалентов. Таким образом, сущность и объем настоящего изобретения должны определяться не только с учетом приведенного выше описания, но и, вместе с тем, с учетом прилагаемой формулы изобретения, в сочетании с ее полным объемом эквивалентов. Любые свойства, описанные в данном документе, вне зависимости от того, являются ли они предпочтительными или нет, могут быть скомбинированы с любыми другими свойствами, описанными в данном документе, вне зависимости от того, являются ли они предпочтительными или нет. В последующей формуле изобретения указание объекта в единственном числе относится к количеству одного или более предметов, если точно не указано иное. Прилагаемую формулу изобретения не следует воспринимать как содержащую ограничение "способы-плюс-функция", помимо ограничений, явно указанных в данной формуле изобретения с использованием фразы "способы для".
Настоящее изобретение относится к информационным технологиям, в частности к способам и аппаратным средствам для сокрытия задержек, возникающих при передаче данных между устройствами пользователей-участников сетевых многопользовательских игр. Способ сокрытия задержки на платформе устройства атакующего участника заключается в том, что выполняется прогнозирование результатов атаки, формируется событие-удар, содержащее период задержки перед ударом, которому приписывается уникальный идентификатор удара. Событие-удар доставляется на устройство защищающегося пользователя, причем инициализация включает расширенный период задержки перед ударом. Далее ответ на удар передается через сеть на устройство атакующего, где идентифицируется тем же самым идентификатором, что и событие-удар. При этом ответ на удар содержит анимацию, которая будет отображена, как только будет инициирован период ответной анимации. Способ сокрытия задержки на платформе устройства защищающегося пользователя заключается в том, что на устройство пользователя передается событие-удар, исходящее с устройства атакующего пользователя и содержащее уникальный идентификатор события-удара. Далее определяется, приведет ли событие-удар к успешной атаке, формируется ответ на удар, содержащий информацию, идентифицирующую одну или более анимаций, которые будут отображаться, когда будет инициирован период ответной анимации. Ответ на удар доставляется на устройство атакующего пользователя, где идентифицируется тем же идентификатором, что и событие-удар, и выполняется одна или более анимаций. Способ сокрытия задержки на платформе устройства пользователя-наблюдателя заключается в том, что на устройство наблюдателя от устройства атакующего пользователя передается событие-удар, содержащее уникальный идентификатор удара. От устройства защищающегося пользователя на устройство наблюдателя передается ответ на удар, идентифицируемый тем же идентификатором, что и событие-удар. Далее осуществляется инициирование периода ответной анимации после определения устройством наблюдателя, что одна или более анимаций атаки закончены. Платформы устройств атакующего, защищающегося и наблюдающего пользователей содержат процессор, память, подключенную к процессору, и одну или более инструкций, реализованных в памяти, для выполнения процессором. Инструкции служат для реализации на устройстве атакующего, защищающегося и наблюдающего пользователей способа сокрытия задержки на устройстве атакующего, защищающегося и наблюдающего пользователя соответственно. Техническим результатом изобретения является устранение задержек при передаче данных между устройствами пользователей, участвующих в многопользовательской сетевой игре. 7 н. и 9 з.п. ф-лы, 12 ил.
1. Способ, предназначенный для сокрытия задержки на платформе клиентского устройства атакующего, настроенной для работы по сети, при взаимодействии между первым анимированным персонажем, управляемым платформой клиентского устройства атакующего, и вторым анимированным персонажем, управляемым платформой клиентского устройства защищающегося, в многопользовательской игре, выполняемой по сети, включающий:
а) прогнозирование того, что одна или более анимаций атаки, выполняемых первым анимированным персонажем, могут привести к успешной атаке на второго анимированного персонажа, при этом одна или более анимаций атаки содержат, по меньшей мере, период задержки перед ударом;
б) формирование события-удара, соответствующего одной или более анимаций атаки, при этом событие-удар содержит идентификатор удара (ID), являющийся уникальным для данного события-удара;
в) доставку события-удара через сетевое соединение, по меньшей мере, на платформу клиентского устройства защищающегося;
г) инициализацию альтернативного режима анимации при отображении одной или более анимаций атаки на платформе клиентского устройства атакующего, при этом альтернативный режим анимации содержит, по меньшей мере, расширенный период задержки перед ударом, замещающий период задержки перед ударом;
д) получение через сетевое соединение ответа на удар от платформы клиентского устройства защищающегося, при этом ответ на удар идентифицируется тем же самым идентификатором, что и событие-удар; при этом ответ на удар определяет, была ли осуществлена успешная атака на второго анимированного персонажа; и при этом ответ на удар дополнительно содержит информацию, идентифицирующую одну или более ответных анимаций, которые будут отображаться, как только будет инициирован период ответной анимации; и
е) инициализацию периода ответной анимации после определения платформой клиентского устройства атакующего того, что первый анимированный персонаж завершил отображение одной или более анимаций атаки в альтернативном режиме анимации и платформа клиентского устройства атакующего получила сигнал от платформы клиентского устройства защищающегося, указывающий на то, что второй анимированный персонаж инициировал период ответной анимации.
2. Способ по п. 1, отличающийся тем, что ответ на удар принимается перед окончанием расширенной части задержки перед ударом одной или более анимаций атаки.
3. Способ по п. 1, отличающийся тем, что одна или более анимаций атаки дополнительно содержат период задержки удара, при этом период задержки удара начинается после окончания расширенного периода задержки перед ударом.
4. Способ по п. 3, отличающийся тем, что ответ на удар принимается после окончания расширенного периода задержки перед ударом.
5. Способ по п. 4, отличающийся тем, что альтернативный способ анимации дополнительно включает:
вспомогательный период задержки удара, при этом вспомогательный период задержки удара добавляется после периода задержки удара.
6. Способ по п. 5, отличающийся тем, что вспомогательный период задержки удара увеличивает продолжительность времени до получения ответа на удар.
7. Способ по п. 5, отличающийся тем, что вспомогательный период задержки удара увеличивает продолжительность времени до истечения предварительно заданного периода задержки.
8. Способ по п. 7, дополнительно включающий:
удаление всех данных, соответствующих идентификатору удара, и замену ответной анимации анимацией задержки до получения ответа на удар перед истечением предварительно заданного периода задержки.
9. Способ по п. 8, отличающийся тем, что анимация задержки соответствует неудачной атаке.
10. Способ по п. 1, дополнительно включающий:
доставку события-удара на платформу клиентского устройства наблюдателя.
11. Платформа клиентского устройства атакующего, настроенная для работы по сети, содержащая:
процессор;
память, подключенную к процессору;
одну или более инструкций, реализованных в памяти, для выполнения процессором, при этом инструкции реализованы для осуществления способа, предназначенного для сокрытия задержки во время взаимодействия между первым анимированным персонажем, управляемым платформой клиентского устройства атакующего, и вторым анимированным персонажем, управляемым платформой клиентского устройства защищающегося, в многопользовательской игре, выполняемой по сети, при этом данный способ включает:
а) прогнозирование того, что одна или более анимаций атаки, выполняемых первым анимированным персонажем, могут привести к успешной атаке на второго анимированного персонажа, при этом одна или более анимаций атаки содержат, по меньшей мере, период задержки перед ударом;
б) формирование события-удара, соответствующего одной или более анимациям атаки, при этом событие-удар содержит идентификатор удара (ID), являющийся уникальным для данного события-удара;
в) доставку события-удара через сетевое соединение, по меньшей мере, на платформу клиентского устройства защищающегося;
г) инициализацию альтернативного режима анимации при отображении одной или более анимаций атаки на платформе клиентского устройства атакующего, при этом альтернативный режим анимации содержит, по меньшей мере, расширенный период задержки перед ударом, замещающий период задержки перед ударом;
д) получение через сетевое соединение ответа на удар от платформы клиентского устройства защищающегося, при этом ответ на удар идентифицируется тем же самым идентификатором, что и событие-удар; при этом ответ на удар определяет, была ли осуществлена успешная атака на второго анимированного персонажа; и при этом ответ на удар дополнительно содержит информацию, идентифицирующую одну или более ответных анимаций, которые будут отображаться, как только будет инициирован период ответной анимации; и
е) инициализацию периода ответной анимации после определения платформой клиентского устройства атакующего того, что первый анимированный персонаж завершил отображение одной или более анимаций атаки в альтернативном режиме анимации и платформа клиентского устройства атакующего получила сигнал от платформы клиентского устройства защищающегося, указывающий на то, что второй анимированный персонаж инициировал период ответной анимации.
12. Способ, предназначенный для сокрытия задержки на платформе клиентского устройства защищающегося, настроенной для работы по сети, при взаимодействии между первым анимированным персонажем, управляемым платформой клиентского устройства атакующего, и вторым анимированным персонажем, управляемым платформой клиентского устройства защищающегося, в многопользовательской игре, выполняемой по сети, включающий:
а) получение события-удара от платформы клиентского устройства атакующего по сети, при этом событие-удар соответствует одной или более анимациям атаки, выполняемым первым анимированным персонажем для атаки на второго анимированного персонажа, при этом событие-удар содержит идентификатор удара (ID), являющийся уникальным для данного события-удара;
б) определение того, приведет ли событие-удар к успешной атаке на второго анимированного персонажа;
в) формирование ответа на удар, при этом ответ на удар содержит информацию, идентифицирующую одну или более ответных анимаций, которые будут отображаться, как только период ответной анимации инициирован и идентифицирован тем же идентификатором, что и событие-удар;
г) доставку ответа на удар, по меньшей мере, на платформу клиентского устройства атакующего; и
д) инициирование периода ответной анимации после выполнения одной или более анимаций атаки.
13. Платформа клиентского устройства защищающегося, настроенная для работы по сети, содержащая:
процессор;
память, подключенную к процессору;
одну или более инструкций, реализованных в памяти, для выполнения процессором, при этом инструкции реализованы для осуществления способа, предназначенного для сокрытия задержки во время взаимодействия между первым анимированным персонажем, управляемым платформой клиентского устройства атакующего, и вторым анимированным персонажем, управляемым платформой клиентского устройства защищающегося, в многопользовательской игре, выполняемой по сети, при этом способ включает:
а) получение события-удара от платформы клиентского устройства атакующего по сети, при этом событие-удар соответствует одной или более анимациям атаки, выполняемым первым анимированным персонажем для атаки на второго анимированного персонажа, при этом событие-удар содержит идентификатор удара (ID), являющийся уникальным для данного события-удара;
б) определение того, приведет ли событие-удар к успешной атаке на второго анимированного персонажа;
в) формирование ответа на удар, при этом ответ на удар содержит информацию, идентифицирующую одну или более ответных анимаций, которые будут отображаться, как только период ответной анимации инициирован и идентифицирован тем же идентификатором, что и событие-удар;
г) доставку ответа на удар по меньшей мере на платформу клиентского устройства атакующего; и
д) инициирование периода ответной анимации после выполнения одной или более анимаций атаки.
14. Способ, предназначенный для сокрытия задержки на платформе клиентского устройства наблюдателя, настроенной для работы по сети, при взаимодействии между первым анимированным персонажем, управляемым платформой клиентского устройства атакующего, и вторым анимированным персонажем, управляемым платформой клиентского устройства защищающегося, в многопользовательской игре, выполняемой по сети, включающий:
а) получение события-удара от платформы клиентского устройства атакующего по сети, при этом событие-удар соответствует одной или более анимациям атаки, выполняемым первым анимированным персонажем для атаки на второго анимированного персонажа, при этом событие-удар содержит идентификатор удара (ID), являющийся уникальным для данного события-удара;
б) получение ответа на удар от платформы клиентского устройства защищающегося через сетевое соединение, при этом ответ на удар идентифицирован тем же идентификатором удара, что и событие-удар; при этом ответ на удар определяет, была ли выполнена успешная атака на второй анимированный персонаж; и при этом ответ на удар дополнительно содержит информацию, идентифицирующую одну или более ответных анимаций, которые будут отображаться, как только инициирован период ответной анимации; и
в) инициирование периода ответной анимации после определения платформой клиентского устройства наблюдателя того, что одна или более анимаций атаки закончены и платформа клиентского устройства наблюдателя получила сигнал от платформы клиентского устройства защищающегося, указывающий, что второй анимированный персонаж инициировал период ответной анимации.
15. Платформа клиентского устройства наблюдателя, настроенная для работы по сети, содержащая:
процессор;
память, подключенную к процессору;
одну или более инструкций, реализованных в памяти, для выполнения процессором, при этом инструкции реализованы для осуществления способа, предназначенного для сокрытия задержки во время взаимодействия между первым анимированным персонажем, управляемым платформой клиентского устройства атакующего, и вторым анимированным персонажем, управляемым платформой клиентского устройства защищающегося, в многопользовательской игре, выполняемой по сети, при этом данный способ включает:
а) получение события-удара от платформы клиентского устройства атакующего по сети, при этом событие-удар соответствует одной или более анимациям атаки, выполняемым первым анимированным персонажем для атаки на второго анимированного персонажа, при этом событие-удар содержит идентификатор удара (ID), являющийся уникальным для данного события-удара;
б) получение ответа на удар от платформы клиентского устройства защищающегося через сетевое соединение, при этом ответ на удар идентифицирован тем же идентификатором удара, что и событие-удар; при этом ответ на удар определяет, была ли выполнена успешная атака на второй анимированный персонаж; и при этом ответ на удар дополнительно содержит информацию, идентифицирующую одну или более ответных анимаций, которые будут отображаться, как только инициирован период ответной анимации; и
в) инициирование периода ответной анимации после определения платформой клиентского устройства наблюдателя того, что одна или более анимаций атаки закончены и платформа клиентского устройства наблюдателя получила сигнал от платформы клиентского устройства защищающегося, указывающий, что второй анимированный персонаж инициировал период ответной анимации.
16. Энергонезависимый машиночитаемый носитель информации, содержащий программные инструкции, при этом выполнение программных инструкций одним или более процессорами компьютерной системы приводит к выполнению одним или более процессорами последовательности действий согласно одному из пп. 1, 11 или 13.
US 20060135258 A1, 22.06.2006 | |||
KR 100508875 B1, 17.08.2005 | |||
US 6415317 B1, 02.07.2002 | |||
WO 2001025871 A2, 12.04.2001 | |||
US 6330636 B1, 11.12.2001 | |||
US 7244181 B2, 17.07.2007. |
Авторы
Даты
2017-07-17—Публикация
2014-01-23—Подача