устройство синхронизации времени сетевой игры и соответствующий способ

Классы МПК:H04L29/06 отличающиеся процедурой регистрации и коммутации сообщений
H04N1/36 для синхронизации и фазирования передатчика и приемника 
Автор(ы):, , , , ,
Патентообладатель(и):ТЕНСЕНТ ТЕКНОЛОДЖИ (ШЭНЬЧЖЭНЬ) КОМПАНИ ЛИМИТЕД (CN)
Приоритеты:
подача заявки:
2010-05-24
публикация патента:

Группа изобретений относится к синхронизации времени сетевой игры между множеством игроков. Технический результат заключается в повышении надежности передачи данных в игровой среде при наличии временных задержек. В способе определяют разницу во времени между сервером и клиентом сетевой игры с учетом момента передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры и момента получения сервером сетевой игры второго пакета данных от клиента сетевой игры. Далее определяют фактический момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры в ходе игры с учетом указанной разницы во времени и синхронизируют время клиента сетевой игры с временем сервера сетевой игры. Благодаря настоящему изобретению обеспечивается возможность точного определения момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры, что позволяет снизить нагрузку на память и процессорные ресурсы, а также улучшить восприятие игры игроками. 2 н. и 10 з.п. ф-лы, 6 ил. устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

Формула изобретения

1. Способ синхронизации времени сетевой игры, содержащий следующие этапы:

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

определение фактического момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры в ходе игры с учетом разницы во времени между этими сервером и клиентом и синхронизация времени клиента сетевой игры с временем сервера сетевой игры в соответствии с фактическим моментом передачи клиентом сетевой игры второго пакета данных серверу в ходе игры.

2. Способ по п.1, в котором момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры совпадает с моментом получения клиентом сетевой игры первого пакета данных от сервера сетевой игры.

3. Способ по п.2, в котором, если момент получения клиентом сетевой игры первого пакета данных от сервера сетевой игры не совпадает с моментом передачи клиентом сетевой игры второго пакета данных серверу сетевой игры, разницу во времени вычисляют по выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 - разница во времени между сервером и клиентом сетевой игры, St0 - момент передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, St1 - момент получения сервером сетевой игры второго пакета данных от клиента сетевой игры, Ct2 - момент получения клиентом сетевой игры первого пакета данных от сервера сетевой игры, Ct 1 - момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры.

4. Способ по п.1, в котором разницу во времени вычисляют по выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 - разница во времени между сервером и клиентом сетевой игры, St0 - момент передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, St1 - момент получения сервером сетевой игры второго пакета данных от клиента сетевой игры, Ct0 - момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры.

5. Способ по любому из пп.1-4, дополнительно содержащий:

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

6. Способ по п.5, в котором указанную ошибку синхронизации времени вычисляют по выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где St0 - момент передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, a St 1 - момент получения сервером сетевой игры второго пакета данных от клиента сетевой игры.

7. Устройство синхронизации времени сетевой игры, содержащее:

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

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

8. Устройство по п.7, в котором в блоке вычисления разницы во времени момент времени, в который клиент сетевой игры передает второй пакет данных серверу сетевой игры, совпадает с моментом получения клиентом сетевой игры первого пакета данных от сервера сетевой игры.

9. Устройство по п.8, в котором в блоке вычисления разницы во времени момент получения клиентом сетевой игры первого пакета данных от сервера сетевой игры не совпадает с моментом передачи клиентом сетевой игры второго пакета данных серверу сетевой игры, и разница во времени вычисляется по выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 - разница во времени между сервером и клиентом сетевой игры, St0 - момент передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, St1 - момент получения сервером сетевой игры второго пакета данных от клиента сетевой игры, Ct2 - момент получения клиентом сетевой игры первого пакета данных от сервера сетевой игры, Ct 1 - момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры.

10. Устройство по п.7, в котором в блоке вычисления разницы во времени разница во времени вычисляется по выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 - разница во времени между сервером и клиентом сетевой игры, St0 - момент передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, St1 - момент получения сервером сетевой игры второго пакета данных от клиента сетевой игры, Ct0 - момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры.

11. Устройство по любому из пп.7-10, дополнительно содержащее:

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

12. Устройство по п.11, в котором в блоке вычисления разницы во времени ошибка синхронизации времени вычисляется по выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где St0 - момент передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, a St 1 - момент получения сервером сетевой игры второго пакета данных от клиента сетевой игры.

Описание изобретения к патенту

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

[0001] Настоящее изобретение относится к прикладным методам сетевых игр и, в частности, к способу и устройству, обеспечивающим синхронизацию времени сетевой игры.

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

[0002] Сетевая игра - это один из прикладных методов виртуальной реальности, которые привлекают много внимания и в последнее время получили большое распространение. С появлением прикладных методов виртуальной реальности наступила эпоха Многопользовательских Интернет-Игр (игр МИИ), масштаб использования которых все время растет. Поэтому подсистемы сетевых игр должны иметь большие возможности сетевой обработки, осуществлять синхронизацию состояния всей игровой среды между сервером и клиентом и обеспечивать надежную передачу данных между игроками даже при наличии задержек в сети, неизбежных потерях пакетов и ограниченной пропускной способности. Поскольку современные сетевые игры основаны на Интернет-технологиях и в большинстве игр МИИ используется модель "клиент-сервер", проблемы, связанные с задержкой синхронизации сетевых данных и ошибками их синхронизации, стали "узким местом" всей игры.

[0003] В известном уровне техники проблемы синхронизации времени сетевых игр решаются в основном следующими способами.

[0004] 1. Схема синхронизации "дыра во времени"

[0005] Обычно считается, что самым важным протоколом синхронизации в распределенных системах является протокол "дыра во времени". В схеме "дыра во времени" не существует внешней синхронизации между узлами обработки.

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

[0006] 2. Схема времени игры

[0007] В большинстве сетевых игр используется модель "клиент-сервер".

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

[0008] В существующих способах решения проблемы синхронизации времени в сети при применении схемы "дыра во времени" требуется сохранять большое число снимков, и часто выполняемые операции отката занимают много памяти и процессорных ресурсов, что отрицательно влияет на скорость работы сервера и клиента. В сетевых играх, в которых используется схема синхронизации времени в сети, независимо от того, выполняет ли сервер сортировку по времени поступления пакетов от клиентов, или клиент прогнозирует время получения его пакета данных сервером, записывает это время в пакет данных и направляет пакет серверу, для игроков с большими задержками в сети обеспечить синхронизацию времени невозможно.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0009] Согласно одному из аспектов изобретения, предложен способ синхронизации времени сетевой игры, содержащий следующие этапы:

[0010] определение разницы во времени между сервером и клиентом сетевой игры с учетом момента передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры и момента получения сервером сетевой игры второго пакета данных от клиента сетевой игры,

определение фактического момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры в ходе игры с учетом разницы во времени между этими сервером и клиентом и синхронизация времени клиента сетевой игры с временем сервера сетевой игры в соответствии с фактическим моментом передачи клиентом сетевой игры второго пакета данных серверу в ходе игры.

[0011] Согласно другому аспекту изобретения, предложено устройство синхронизации времени сетевой игры, содержащее:

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0013] На фиг.1 показана блок-схема, иллюстрирующая предложенный способ синхронизации времени сетевой игры.

[0014] На фиг.2 схематически представлена процедура синхронизации времени между сервером и клиентом сетевой игры, соответствующая принципам настоящего изобретения.

[0015] На фиг.3 схематически представлена упрощенная процедура синхронизации времени между сервером и клиентом сетевой игры, соответствующая принципам настоящего изобретения.

[0016] На фиг.4 схематически представлена процедура обработки основного события при нападении Неигрового Персонажа (персонажа НИ) на управляемую игроком роль, соответствующая принципам настоящего изобретения.

[0017] На фиг.5 схематически представлена процедура проверки сервером сетевой игры момента передачи ему второго пакета данных клиентом сетевой игры, соответствующая принципам настоящего изобретения.

[0018] На фиг.6 показана блок-схема предложенного устройства синхронизации времени сетевой игры.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

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

[0020] Разницу во времени между сервером и клиентом сетевой игры можно определить по следующему выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 - разница во времени между сервером и клиентом сетевой игры, St0 - момент передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, St1 - момент получения сервером сетевой игры второго пакета данных от клиента сетевой игры, Ct0 - момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры.

[0021] Что касается синхронизации времени между сервером и клиентом сетевой игры, величину ошибки такой синхронизации можно получить с учетом момента передачи сервером сетевой игры первого пакета данных клиенту сетевой игры и момента получения сервером сетевой игры второго пакета данных от клиента сетевой игры. Если разница во времени между сервером и клиентом сетевой игры превышает эту величину ошибки, считают, что момент времени, в который клиент сетевой игры передает второй пакет данных, является ошибочным.

[0022] Ниже предложенный способ синхронизации времени в сети описывается более подробно со ссылкой на прилагаемые чертежи. Как видно из фиг.1, способ предусматривает выполнение следующих этапов.

[0023] На этапе 11 определяют разницу во времени между сервером и клиентом сетевой игры с учетом момента передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры и момента получения сервером сетевой игры второго пакета данных от клиента сетевой игры.

[0024] Разница во времени между сервером и клиентом сетевой игры показана на фиг.2. Сервер сетевой игры передает первый пакет данных клиенту сетевой игры в момент времени St 0. Предположим, что задержка в сети - устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 d. В момент времени St0+устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 d, т.е. Ct2, клиент сетевой игры получает первый пакет данных от сервера. Он обрабатывает его сразу после получения. Предположим, что время обработки - Т р. В момент времени St0+устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 d+Tp, т.е. Ct1, клиент сетевой игры передает второй пакет данных. Спустя время, равное задержке в сети устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 u, второй пакет данных поступает на сервер сетевой игры. Это происходит в момент времени St1. На этом процедура синхронизации времени сервера сетевой игры завершается. Получив в момент времени St1 второй пакет данных от клиента сетевой игры, сервер сетевой игры может вычислить разницу во времени устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 между собой и клиентом. Соответствующее выражение имеет следующий вид:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

[0025] На практике клиент сетевой игры обрабатывает первый пакет данных от сервера довольно быстро, обычно менее чем за 1 мс. Следовательно, время обработки Т р почти равно нулю. Таким образом, первый пакет данных, передаваемый сервером сетевой игры клиенту, обрабатывается мгновенно, т.е. клиент сетевой игры возвращает второй пакет данных сразу после получения мгновенно обрабатываемого пакета. Поэтому момент времени, в который клиент сетевой игры передает второй пакет данных серверу сетевой игры, можно считать моментом получения клиентом сетевой игры первого пакета данных от сервера сетевой игры. По существу, фиг.3 можно получить, упростив фиг.2, а приведенное ниже выражение можно вывести на основе выражения для расчета разницы во времени между сервером и клиентом сетевой игры.

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где Ct0 - момент получения клиентом сетевой игры первого пакета данных от сервера сетевой игры или момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры.

[0026] На этапе 12 определяют фактический момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры в ходе игры с учетом разницы во времени между этими сервером и клиентом и выполняют синхронизацию времени сервера сетевой игры с временем клиента сетевой игры в соответствии с фактическим моментом передачи клиентом сетевой игры второго пакета данных серверу в ходе игры.

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

[0028] Синхронизацию времени сервера и клиента сетевой игры можно применять для игры МИИ, в которой сервер сетевой игры обычно должен поддерживать такие действия, как нападение, поиск пути и обход ряда Неигровых Персонажей (персонажей НИ). Определение сервером сетевой игры порядка, в котором происходят событие персонажа НИ и событие клиента сетевой игры, становится ключевым фактором для синхронизации времени сервера и клиента сетевой игры. Ниже представлен вариант изобретения, согласно которому сервер сетевой игры определяет управляемую игроком роль, на которую нападает персонаж НИ, с помощью временного окна.

[0029] Управляемая игроком роль принимает микстуру и усиливается в момент времени Ct0, и выздоравливает в момент времени Ct1. В момент времени Ct2 роль перемещается с места нападения персонажа НИ. В момент времени Ct3 персонаж НИ нападает в месте, где управляемая игроком роль находится в момент времени Ct1. Если игрок не выполнит перемещение, роль будет поражена. Подробное представление см. на фиг.4.

[0030] На сервере сетевой игры имеется очередь событий для каждого игрока, а также есть персонаж НИ для нападения. Ниже приведено подробное описание событий.

[0031] 1) В момент времени St2 персонаж НИ нападает, сервер сетевой игры помещает пакет события нападения в очередь и отмечает его как пакет основного события.

[0032] 2) В момент времени St3 сервер сетевой игры получает пакет данных, возвращенный клиентом сетевой игры, помещает этот пакет данных в очередь и изменяет содержащееся в нем значение Ct0 на значение St0. Затем сервер сетевой игры сортирует все пакеты данных в очереди по времени. Наконец, определяют, имеется ли пакет данных от клиента сетевой игры после основного события, отмеченного на этапе 1). Если да, значит, сервер сетевой игры получил все пакеты данных, переданные клиентом сетевой игры до момента времени St3 , и готов к проверке событий. Поскольку момент времени Ct 0 предшествует моменту St3, никакой обработки не выполняется и продолжается ожидание пакетов данных от клиента сетевой игры.

[0033] 3) Для пакета данных, переданного в момент времени Ct2 и полученного в момент St 4, обработка совпадает с описанной выше.

[0034] 4) Получив в момент времени St5 пакет данных, отправленный в момент времени Ct4, сервер сетевой игры после сортировки обнаруживает, что от клиента сетевой игры получен пакет данных, переданный после момента времени St 3. Поскольку протокол TCP обеспечивает надлежащую последовательность пакетов данных во времени, можно считать, что все пакеты данных, переданные клиентом сетевой игры до момента времени St3 , получены.

В это время сервер готов определить событие нападения и определяет, поражена ли управляемая игроком роль.

[0035] 5) После этого определения ненужные события в очереди могут быть удалены.

[0036] 6) Что касается определения сервером сетевой игры основного события в момент времени St2, существует предел времени, называемый временным окном. Подождав в течение временного окна, сервер сетевой игры проверяет основное событие с учетом имеющейся в данный момент ситуации с клиентом сетевой игры.

[0037] Для временного окна, указанного на этапе 6), может существовать пороговое значение. Например, временное окно позволяет сохранять события, произошедшие в течение 2 секунд. Предположим, что частота передачи пакетов персонажа НИ - 1 пакет в секунду, а частота передачи пакетов игрока - 5 пакетов в секунду. При этом в очереди требуется иметь свободное место для хранения 12 пакетов данных. Превышение этого порога означает, что задержка клиента сетевой игры больше 2 секунд. Сервер сетевой игры проверяет основное событие с учетом обнаруживаемой им в данный момент ситуации. Предположим, что сервер военных действий может иметь 2000 игроков и 15 пакетов данных для каждого игрока; каждый пакет данных имеет длину 100 байт. При этом для сервера сетевой игры необходимо предусмотреть память объемом 2000*15*100/(1024*1024)устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 3 МБ. Такой объем памяти для сервера сетевой игры приемлем.

[0038] Указанный выше способ проверки с использованием временного окна может обеспечить следующий результат: если задержка игрока не превышает длительность временного окна (пороговое значение - 2 секунды и может корректироваться), персонаж НИ нападает на роль игрока, и клиент сетевой игры представляет это нападение нормально. Поскольку результат нападения должен быть определен сервером сетевой игры, но после этого определения клиент сетевой игры не может представить состояние роли (поражена или не поражена), действие управляемой игроком роли может иметь некоторую временную задержку (которую можно объяснить следующим образом: если роль поражена, она должна исчезнуть; если клиент сетевой игры передает серверу сетевой игры пакет нападения и сервер уведомляет о том, что роль поражена, может существовать задержка 400 мс, т.е. роль клиента сетевой игры не исчезнет до истечения этой задержки; в это время возникает временная задержка). После того как клиент сетевой игры представляет нападение персонажа НИ, сервер сетевой игры вычисляет свое время, соответствующее времени клиента, согласно значению времени, включенному в пакет клиента сетевой игры.

Результат равняется разности времени сервера и максимальной величины ошибки. Если этот результат представляет время после момента нападения со стороны персонажа НИ сервера сетевой игры, сервер выполняет проверку нападения (поражена ли роль). Если сервер сетевой игры не получает пакет данных от клиента сетевой игры по истечении порогового значения времени (2 с), он прогнозирует положение роли при нападении персонажа НИ по информации о пути, включенной в предыдущий пакет данных клиента сетевой игры. Если роль находится в зоне нападения, считается, что она поражена; в противном случае считается, что роль не поражена. Согласно описанной выше процедуре клиенту сетевой игры не требуется ждать ответа сервера сетевой игры для каждого события. Поэтому время задержки игрока уменьшается, и восприятие игры улучшается. Если задержка больше 2 с, сервер сетевой игры корректирует время клиента сетевой игры. При этом может быть некоторая задержка. Однако она возникает только между игроками с большим временем задержки и игроками с малым временем задержки. Между игроками с малым временем задержки временной задержки не будет. Таким образом, игроки, время задержки которых не превышает длительность временного окна, получают лучшее восприятие игры. Ситуации, в которой задержка одного игрока приводит к задержке всех игроков, возникать не будет.

[0039] На этапе 13 определяют ошибку синхронизации времени между сервером и клиентом сетевой игры в соответствии с разницей во времени между моментом передачи сервером сетевой игры первого пакета данных клиенту сетевой игры и моментом получения сервером сетевой игры второго пакета данных от клиента сетевой игры. Если указанная разница во времени между сервером и клиентом сетевой игры превышает величину этой ошибки синхронизации времени, считают, что момент времени, в который клиент сетевой игры передает второй пакет данных, является ошибочным.

[0040] Как видно из фиг.3, момент времени Ct0 находится между моментами St1 и St0. Ошибку синхронизации времени о- между сервером и клиентом сетевой игры можно вычислить по следующему выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

[0041] Благодаря предварительной корректировке времени сервером сетевой игры в отношении клиента сетевой игры сервер может не только реализовать функцию точного определения времени клиента, но и выполнять проверку диапазона времени ответа клиента с учетом ошибки синхронизации времени между сервером и клиентом сетевой игры. Если время превышает указанный диапазон, сервер сетевой игры может решить, что игрок жульничал. Ниже со ссылкой на сриг.5 описывается проверка диапазона времени ответа клиента сетевой игры.

[0042] После выполнения описанной выше процедуры синхронизации времени между сервером и клиентом сетевой игры сервер в момент времени St2 передает клиенту третий пакет данных. Получив этот пакет, клиент сетевой игры в момент времени Ct1 отвечает серверу четвертым пакетом данных. Сервер сетевой игры получает этот пакет в момент времени St3, извлекает из него время клиента Ct1, и определяет свое скорректированное время устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 по выражению расчета разницы во времени между сервером и клиентом сетевой игры. Если значение устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 меньше разности St2-устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 , значит, клиент сетевой игры получил третий пакет данных, переданный сервером сетевой игры в момент времени St2 , до момента времени сервера St2, что недопустимо. Таким образом, можно сделать вывод, что клиент сетевой игры изменил время, т.е., возможно, использовал обманное средство, например подключаемый модуль замедления. Аналогично, в другой момент времени клиента Ct2 клиент сетевой игры передает пятый пакет данных, содержащий время клиента Ct2. Сервер сетевой игры получает этот пакет в момент времени St4 и выполняет проверку. Он извлекает время клиента Ct2 и определяет свое скорректированное время устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 по выражению расчета разницы во времени между сервером и клиентом сетевой игры. Согласно объяснению выше оно должно быть меньше суммы St2+устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 . Если значение устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 больше суммы St2+устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 , значит, игрок, возможно, использует обманное средство, например, подключаемый модуль замедления. При использовании описанного выше способа улучшаются характеристики безопасности игры, обеспечивается ее единообразие и у игроков улучшается восприятие игры.

[0043] В настоящем изобретении предложено также устройство синхронизации времени сетевой игры. Как следует из фиг.6, это устройство содержит следующие блоки.

[0044] Блок 61 вычисления разницы во времени, выполненный с возможностью вычисления разницы во времени между сервером и клиентом сетевой игры с учетом момента передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры и момента получения сервером сетевой игры второго пакета данных от клиента сетевой игры.

[0045] Блок 62 синхронизации времени, выполненный с возможностью: а) получения фактического момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры в ходе игры с учетом разницы во времени между этими сервером и клиентом, определенной блоком вычисления разницы во времени; б) синхронизации времени сервера и клиента сетевой игры в соответствии с фактическим моментом передачи клиентом сетевой игры второго пакета данных серверу в ходе игры.

[0046] Блок 63 вычисления ошибки, выполненный с возможностью: а) определения величины ошибки синхронизации времени между сервером и клиентом сетевой игры в соответствии с разницей во времени между моментом передачи сервером сетевой игры первого пакета данных клиенту сетевой игры и моментом получения сервером сетевой игры второго пакета данных от клиента сетевой игры; б) принятия решения о том, что момент передачи клиентом сетевой игры второго пакета данных является ошибочным, если разница во времени между сервером и клиентом сетевой игры, определенная блоком вычисления разницы во времени, превышает величину ошибки синхронизации времени.

[0047] Момент времени, в который клиент сетевой игры передает второй пакет данных серверу сетевой игры, совпадает с моментом получения клиентом сетевой игры первого пакета данных от сервера сетевой игры. Разницу во времени между сервером и клиентом сетевой игры можно вычислить по следующему выражению:

устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519

где устройство синхронизации времени сетевой игры и соответствующий   способ, патент № 2498519 - разница во времени между сервером и клиентом сетевой игры, St0 - момент передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, St1 - момент получения сервером сетевой игры второго пакета данных от клиента сетевой игры, Ct0 - момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры.

[0048] Блок 61 вычисления разницы во времени определяет разницу во времени между сервером и клиентом сетевой игры с учетом момента передачи сервером сетевой игры первого пакета данных клиенту сетевой игры, момента передачи клиентом сетевой игры второго пакета данных серверу сетевой игры и момента получения сервером сетевой игры второго пакета данных от клиента сетевой игры. Затем блок 62 синхронизации времени получает фактический момент передачи клиентом сетевой игры второго пакета данных серверу сетевой игры в ходе игры с учетом разницы во времени между этими сервером и клиентом, определенной блоком 61 вычисления разницы во времени, и синхронизирует время сервера и клиента сетевой игры в соответствии с фактическим моментом передачи клиентом сетевой игры второго пакета данных серверу в ходе игры. Дополнительно блок 63 вычисления ошибки может определить ошибку синхронизации времени между сервером и клиентом сетевой игры в соответствии с разницей во времени между моментом передачи сервером сетевой игры первого пакета данных клиенту сетевой игры и моментом получения сервером сетевой игры второго пакета данных от клиента сетевой игры. Если разница во времени между сервером и клиентом сетевой игры, определенная блоком 61 вычисления разницы во времени, превышает величину этой ошибки синхронизации времени, считают, что момент времени, в который клиент сетевой игры передает второй пакет данных, является ошибочным.

[0049] Принципы реализации функций обработки указанными выше блоками в предложенном устройстве описаны выше при рассмотрении соответствующего способа и поэтому сейчас повторно описываться не будут.

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

Класс H04L29/06 отличающиеся процедурой регистрации и коммутации сообщений

устройство передачи данных, программа генерирования данных передачи и способ генерирования данных передачи -  патент 2529106 (27.09.2014)
способ и система диспетчеризации восходящего сообщения в гигабитных пассивных оптических сетях -  патент 2527739 (10.09.2014)
управление ключами безопасности в основанных на ims услугах широковещания и многоадресного вещания мультимедиа (mbms) -  патент 2527730 (10.09.2014)
способ и система передачи вызова по протоколу sip с помощью абонентской приставки -  патент 2526710 (27.08.2014)
способ и устройство для осуществления синхронизации часов между устройствами -  патент 2526278 (20.08.2014)
способ и система для загрузки файла для веб-приложения -  патент 2523216 (20.07.2014)
способ и система для создания мультимедийной службы -  патент 2519511 (10.06.2014)
улучшенное обслуживание беспроводных полевых устройств -  патент 2518941 (10.06.2014)
переход в альтернативный режим, используя ассистируемое мобильным устройством прекращение выбора области доступа -  патент 2518414 (10.06.2014)
система для создания ip-туннеля "борт-земля" в авиационной беспроводной сотовой сети для различения индивидуальных пассажиров -  патент 2518180 (10.06.2014)

Класс H04N1/36 для синхронизации и фазирования передатчика и приемника 

Наверх