ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Варианты осуществления настоящего изобретения относятся, в общем случае, к компьютерному моделированию и к генерации синтезированной среды, и, в частности, к системе, к считываемому посредством компьютера носителю информации, к способу и к устройству для генерации синтезированных сред в распределенной архитектуре, предназначенным, помимо прочего, для введения динамического информационного содержимого.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Традиционные способы разработки и моделирования генерируемых посредством компьютера сред, таких как, например, виртуальные миры в глобальных многопользовательских онлайн-играх (massively multiplayer online ("MMO") games), не обеспечивают быстрое обеспечение эффективной разработки и создания новых или видоизмененных виртуальных миров. Кроме того, обычные игровые компьютерные платформы для генерации виртуальных миров являются дополнительной помехой для разработки и создания виртуальных миров, в особенности, применительно к глобальным многопользовательским онлайн-играм. Как правило, обычные игровые компьютерные платформы используют для создания виртуального мира набор игровых серверов, причем каждый дополнительный набор игровых серверов используют для создания копии виртуального мира. Такие копии обычно именуют "шардами" ("shards"). Традиционные игровые компьютерные платформы обычно разделяют географию каждого виртуального мира на разделы и выделяют один игровой сервер для генерации каждого одиночного раздела. Игровой сервер, сконфигурированный для генерации раздела виртуального мира, обычно именуют "сервером области" ("area server"). Кроме того, некоторые обычные игровые серверы являются монолитными, а это означает следующее: установлено, что все игровые процессы для генерации раздела виртуального мира выполняются в одиночном процессе и/или сервере. Несмотря на то, что обычные игровые компьютерные платформы, а также традиционные подходы к разработке создаваемых посредством компьютера миров, являются работоспособными, существует множество недостатков, связанных с ними.
Недостаток некоторых обычных игровых компьютерных платформ состоит в том, что для раздела виртуального мира они выделяют один игровой сервер. По существу, игровой сервер и его функциональные возможности обычно непосредственно связаны с разделом и с его действиями. Следовательно, производительность географически связанного игрового сервера зависит от количества игроков в этом разделе, а также от видов действий, выполняемых в нем. Кроме того, обычные игровые компьютерные платформы, в которых используют монолитные игровые серверы, отчасти ограничены их неспособностью корректировки своих аппаратных возможностей для удовлетворения возросших потребностей. Следовательно, по мере того, как большее количество игроков перемещается в конкретный раздел, нагрузка на игровой сервер, обеспечивающий поддержку этого раздела, становится все более и более высокой. Это, в свою очередь, ограничивает количество игроков, которые могут взаимодействовать с соответствующим разделом виртуального мира. В качестве средства решения этой проблемы некоторые глобальные многопользовательские онлайн-игры функционируют таким образом, что перемещают игроков из перенаселенных игровых серверов в те игровые серверы, которые являются относительно менее населенными. Это может оказывать существенное влияние на восприятие игроков.
Еще один недостаток традиционных игровых компьютерных платформ состоит в том, что каждый игровой сервер обычно имеет отдельное пространство процесса для генерации раздела виртуального мира, иное, чем другие игровые серверы в том же самом виртуальном мире. Часто игроки взаимодействуют через географическую границу, которая разграничивает два участка виртуального мира. Также возникают затруднения вследствие наличия границ разделов, и в обычных игровых компьютерных платформах обычно требуется, чтобы вычислительные ресурсы пытались управлять взаимодействиями между разделами. Например, игровой сервер, связанный с одним игроком в одном разделе, обычно требует наличия некоторых функций отслеживания для отслеживания взаимодействий этого игрока с другими игроками в других разделах виртуального мира. В качестве другого примера, полагают, что обычно требуются вычислительные ресурсы для поддержки игроков как посредников (proxies) в различных пространствах процесса. Реализация игроков как посредников обычно требует преобразования одного представления информации о конкретном игроке для одного раздела виртуального мира, например идентификатор персонажа, в другое представление для использования в отдельном пространстве процесса для другого раздела виртуального мира. Кроме того, игровые серверы обычно производят между собой обмен информацией о взаимодействиях игроков с использованием, например, удаленных вызовов процедур, что увеличивает сложность обмена информацией, а также время задержки для взаимодействий между разделами.
Еще один недостаток игровых компьютерных платформ состоит в том, что игроки (или посредники игроков), которые взаимодействуют через различные разделы виртуального мира, могут легко нарушать транзакции для незаконного обогащения себя. Для иллюстрации этого предположим, что первый игрок в одном разделе виртуального мира предлагает обмен оружия на золото, которым владеет второй игрок в другом разделе виртуального мира. Затем, предположим, что первый игрок получает золото, но прежде, чем сдать оружие, первый игрок разрывает соединение между игровыми серверами в различных разделах виртуального мира. В результате, первый игрок получает золото без обмена оружием.
Один из недостатков использования монолитных игровых серверов состоит в следующем: если один из игровых подпроцессов, например процесс, связанный с физикой, монолитного игрового сервера прерывается или отключается, то весь игровой сервер, в котором находится игровой подпроцесс, также чувствителен к этому прерыванию или отключению.
Имеются и другие недостатки использования существующих в настоящее время вариантов архитектуры "клиент-сервер" для разработки и моделирования создаваемых посредством компьютера сред для глобальных многопользовательских онлайн-игр. Учитывая это наряду с необходимостью проведения разработок для создания нового информационного содержимого для новых или видоизмененных виртуальных миров, проектировщики и разработчики игр также регулярно изменяют исполняемые команды для размещения нового информационного содержимого и его данных. Изменение исполняемых команд обычно увеличивает время разработки, в особенности, во время проверки гарантии качества и надежности для устранения ошибок и других проблем. Кроме того, глобальные многопользовательские онлайн-игры обычно требуют загрузки измененного исполняемого кода в клиентский компьютер до взаимодействия с новым информационным содержимым. Например, в компьютерных платформах для глобальных многопользовательских онлайн-игр весьма часто реализованы загрузки большого объема данных (например, 250 мегабайт), которые могут включать в себя измененный исполняемый код.
С учетом вышеизложенного, было бы желательно создание системы, считываемого посредством компьютера носителя информации, способа и устройства для генерации синтезированных сред в распределенной архитектуре, предназначенных, помимо прочего, для введения динамического информационного содержимого в синтезированные среды и, кроме того, для обеспечения эффективной разработки и создания новых или видоизмененных синтезированных сред.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящего изобретения относятся, в общем случае, к компьютерному моделированию и к генерации синтезированных сред, и, в частности, к системе, к считываемому посредством компьютера носителю информации, к способу и к устройству для генерации синтезированных сред в распределенной архитектуре, предназначенным, помимо прочего, для введения динамического информационного содержимого. В одном из вариантов осуществления изобретения в компьютерной платформе для генерации синтезированных сред может быть реализована универсальная структура данных и система обмена сообщениями для облегчения генерации синтезированных сред.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Более полное понимание настоящего изобретения будет получено из приведенного ниже подробного описания при его рассмотрении совместно с сопроводительными чертежами, на которых изображено следующее:
на Фиг.1A изображена система для генерации синтезированных сред согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.1B приведена иллюстрация серверов управления игрой, генерирующих, полностью или частично, синтезированную среду, применительно к квази-агрегированному пространству процесса согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.2 изображена схема, на которой показан пример системы обмена сообщениями согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.3 изображена система для генерации синтезированных сред, в которой реализованы интерфейсы обмена универсальными сообщениями, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.4A показан способ введения динамического информационного содержимого в синтезированные среды согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.4B изображена компьютерная платформа для генерации синтезированных сред, сконфигурированная для введения динамического информационного содержимого в синтезированную среду, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.5 приведена иллюстрация квази-агрегированного пространства процесса для использования при генерации синтезированных сред согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.6 изображена схема, на которой показан пример части системы обмена сообщениями, в которой реализовано сжатое универсальное сообщение, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.7 изображена система для генерации синтезированных сред, в которой реализован главный сервер масштабирования, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.8 изображена схема, на которой показан пример главного сервера масштабирования, добавляющего масштабируемые серверы игровых подпроцессов, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.9 приведена иллюстрация компьютерной платформы для генерации синтезированных сред, в которой реализованы конкретные реализации серверов игровых подпроцессов, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.10 изображена схема, на которой показана реализация процессов, связанных с физикой, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.11 изображена схема, на которой показан способ определения видимости, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.12 приведена иллюстрация компьютерной платформы для генерации синтезированных сред, в которой реализованы дополнительные типы серверов игровых подпроцессов, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.13 изображена схема, на которой показан способ предоставления возможности проведения игры во время внесения исправляющих дополнений в программу, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.14 приведена иллюстрация компьютерной платформы для генерации синтезированных сред, в которой реализован сервер событий и редактор событий, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.15 изображена последовательность операций для создания событий для введения динамического информационного содержимого в различной степени, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.16 изображена схема, на которой показана конкретная реализация универсальной структуры данных согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.17 приведена схема, на которой изображены элементы систем классов свойств согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.18 изображена последовательность операций для создания универсального сообщения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.19 проиллюстрированы элементы системы классов свойств для создания универсального сообщения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.20 проиллюстрированы элементы системы классов свойств для создания "вставки" (plug) согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
на Фиг.21 изображена схема, на которой показан пример части системы обмена сообщениями, в которой реализовано сжатое универсальное сообщение, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения; и
на Фиг.22 приведена иллюстрация нескольких клиентов, в которых реализован интерфейс обмена универсальными сообщениями для взаимодействия с компьютерной платформой для генерации синтезированных сред, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.
Одинаковые номера позиций относятся к соответствующим элементам на всех чертежах. Следует отметить, что большинство номеров позиций включают в себя одну или две крайние левые цифры, которыми обычно обозначен номер чертежа, на котором впервые был введен этот номер позиции.
ПОДРОБНОЕ ОПИСАНИЕ
На Фиг.1A изображена система для генерации синтезированных сред согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Одним из примеров такой системы является компьютерная платформа 100 для генерации синтезированных сред, которая включает в себя узлы (и процессы, выполняемые в узлах), объединенные друг с другом в сеть, для генерации синтезированной среды, с которой взаимодействуют клиенты 150. Компьютерная платформа 100 для генерации синтезированных сред представляет собой серверную структуру и/или серверные функциональные возможности в сетевой архитектуре клиент-сервер, а клиенты 150 представляют собой клиентскую структуру и/или клиентские функциональные возможности. Узлы включают в себя серверы 104 игровых подпроцессов, базы 112 данных и серверы 122 управления игрой, причем все они связаны друг с другом посредством сети 115 для надлежащей реализации игровых подпроцессов 102, процессов 110, связанных с базами данных, и процессов 120 управления игрой. Игровые подпроцессы 102 могут включать в себя большее или меньшее количество подпроцессов, чем подпроцессы 102a, 102b и 102c. Как показано на чертеже, серверы 104 игровых подпроцессов скомпонованы в виде распределенной схемы расположения относительно, по меньшей мере, серверов 122 управления игрой, посредством чего обеспечивают обособление игровых подпроцессов 102 от процессов 120 управления игрой. По меньшей мере, в одном варианте осуществления изобретения серверы 104a игровых подпроцессов, серверы 104b игровых подпроцессов и серверы 104c игровых подпроцессов могут быть сконфигурированы таким образом, что способны функционировать, соответственно, как серверы физики, серверы искусственного интеллекта и серверы обработки транзакций, или как любой другой связанный с игрой подпроцесс. Кроме того, согласно различным вариантам осуществления изобретения, компьютерная платформа 100 для генерации синтезированных сред сконфигурирована таким образом, что реализует квази-агрегированное пространство 152 процесса, которое может совместно использоваться либо серверами 122 управления игрой, либо компьютерной платформой 100 для генерации синтезированных сред и другими подобными компьютерными платформами 100 для генерации синтезированных сред (на чертеже не показаны), или обоими из них.
За счет создания распределенной структуры, при которой игровые подпроцессы 102a, 102b и 102c отделены от процессов 120 управления игрой, серверы 122 управления игрой работают независимо, что, тем самым, делает их менее уязвимыми к ухудшениям производительности любого из серверов 104 игровых подпроцессов. Таким образом, неисправности аппаратных средств и программного обеспечения могут быть локализованы в подпроцессе 102 конкретного игрового сервера, что, тем самым, обеспечивает возможность ускоренного распознавания и решения проблемы, часто без прерывания процессов 120 управления игрой. Это позволяет клиентам 150, например клиенту 150a и клиенту 150b, продолжать взаимодействие с синтезированной средой, без перерыва из-за проблем, возникающих в серверах 104 игровых подпроцессов. Кроме того, распределенные игровые подпроцессы 102a, 102b и 102c способствуют независимому наращиванию количества серверов 104 игровых подпроцессов, которое может выполняться в оперативном режиме, для обеспечения надлежащего количества игровых подпроцессов 102a, 102b и 102c в достаточной мере. Например, если синтезированная среда требует дополнительного искусственного интеллекта, то дополнительные серверы искусственного интеллекта могут быть подключены к сети в оперативном режиме вне зависимости от потребностей других игровых подпроцессов 102, например процессов, связанных с физикой. Таким образом, может быть реализовано надлежащее количество аппаратных средств и программного обеспечения для облегчения генерации синтезированных сред для любого количества клиентов 150, взаимодействующих с синтезированной средой, сгенерированной компьютерной платформой 100 для генерации синтезированных сред. Кроме того, квази-агрегированное пространство 152 процесса, совместно используемое также и другими аналогичными компьютерными платформами для генерации синтезированных сред, облегчает взаимодействия между компьютерными платформами (то есть между шардами (shard)), что, помимо прочего, обеспечивает усовершенствованный обмен информацией и более безопасные транзакции.
Каждый из серверов 122 управления игрой сконфигурирован таким образом, что работает совместно с игровыми подпроцессами 102 и с процессами 110, связанными с базами данных, для генерации синтезированной среды, с которой взаимодействует участник. По существу, серверы 122 управления игрой сконфигурированы таким образом, что управляют несколькими участниками, связанными с клиентами 150, при их взаимодействиях с синтезированной средой. Следует отметить, что игровые подпроцессы 102 могут быть соответствующим образом масштабированы для обеспечения поддержки нескольких клиентов 150. В различных вариантах осуществления изобретения клиенты 150 могут быть распределены по множеству серверов 122 управления игрой, а не являться ограниченными одним процессом генерации игры. Для иллюстрации этого предположим, что клиент 150a может взаимодействовать с сервером 122a управления игрой, а клиент 150b может взаимодействовать с сервером 122c управления игрой. Хотя клиенты 150a и 150b взаимодействуют с различными процессами управления игрой, они могут совместно использовать квази-агрегированное пространство 152 процесса, вне зависимости от синтезированной среды, с которой взаимодействуют клиенты 150a и 150b. В одном из вариантов осуществления изобретения клиенты 150a и 150b могут совместно использовать квази-агрегированное пространство 152 процесса как общее пространство процесса. По существу, могут легко происходить взаимодействия между синтезированными средами. В некоторых вариантах осуществления изобретения серверы 122 управления игрой могут функционировать таким образом, что проверяют правильность действия, запрошенного конкретным участником, подтверждая, тем самым, то, что участник имеет право на изменение данных об игре. По меньшей мере, в одном варианте осуществления изобретения серверы 122a-122n управления игрой сохраняют данные об игре, отображающие взаимодействия клиентов 150 с синтезированной средой в виде, предназначенном только для чтения. По существу, с данными об игре не могут производиться какие-либо манипуляции для искажения транзакций, которые в противном случае могли бы привести к незаконному обогащению участника.
В одном из вариантов осуществления изобретения серверами 104a игровых подпроцессов могут являться серверы физики, которые могут быть сконфигурированы таким образом, что выполняют обработку действий, связанных с движением и столкновениями, например, для участника в синтезированной среде. Например, сервер 104a физики может выполнять обработку событий, связанных с процессами, связанными с физикой, таких как, например, обнаружение столкновения, перемещение твердого тела и т.п. Согласно, по меньшей мере, одному варианту осуществления настоящего изобретения, серверы 104b игровых подпроцессов могут представлять собой серверы искусственного интеллекта, которые могут быть сконфигурированы таким образом, что обеспечивают искусственный интеллект для моделирования, например, движения персонажей, не являющихся игроками, ("NPC"), в синтезированной среде.
В различных вариантах осуществления изобретения сервером 104c игрового подпроцесса может являться сервер обработки транзакций, который может быть сконфигурирован таким образом, что управляет транзакциями между участниками для обеспечения гарантии того, что транзакции являются элементарными (атомарными). То есть 104c сервер игрового подпроцесса может функционировать таким образом, что обеспечивает выполнение всех частей транзакции или не выполнение всех частей транзакции, гарантируя, тем самым, то, что данные об игре, запомненные в процессах 110, связанных с базами данных, не будут обновлены, пока все части транзакций не будут успешно выполнены, что, тем самым, сокращает лазейки, через которые участники могут предпринимать попытки незаконного обогащения. Сервер обработки транзакций представляет собой полномочный орган управления игрой, который обеспечивает гарантию того, что действия завершены правильно для обоих участников или выполнены неуспешно обоими участниками. В одном из вариантов осуществления изобретения все серверы в компьютерной платформе 100 для генерации синтезированных сред являются доступными только для чтения, кроме сервера 104c игрового подпроцесса (функционирующего в качестве сервера обработки транзакций). Таким образом, сервер обработки транзакций, в качестве сервера 104c игрового подпроцесса, может функционировать как единственный полномочный орган для обработки транзакций данных об игре (то есть он обладает полномочиями на изменение данных об игре). По меньшей мере, в одном варианте осуществления изобретения сервер обработки транзакций, образующий сервер 104 игрового подпроцесса, может быть сконфигурирован таким образом, что реализует квази-агрегированное пространство 152 процесса как унитарное пространство процесса, предоставляя, тем самым, возможность участникам задействовать серверы управления игрой для различных синтезированных сред при транзакциях в общем эмулированном пространстве процесса, обеспеченном квази-агрегированным пространством 152 процесса.
При работе клиенты 150a и 150b генерируют запросы на вызов представлений участников, например анимационных персонажей, воплощающих участников игры, (именуемых "аватарами") для изменения данных об игре в процессах 120 управления игрой. Используемый здесь термин "сервер управления игрой", по меньшей мере, в одном из вариантов осуществления изобретения, относится к вычислительному устройству и/или к процессу, управляющим взаимодействиями участников с синтезированной средой. Например, сервер управления игрой может принимать введенные данные от клиентов 150 и, в ответ на это, совместно взаимодействовать с игровыми подпроцессами 102 и с процессами 110, связанными с базами данных, для генерации измененных данных об игре, что представляет собой видоизмененную синтезированную среду, основанную на взаимодействии клиентов, для их передачи обратно клиентам 150a и 150b. Используемый здесь термин "сервер игрового подпроцесса", по меньшей мере, в одном из вариантов осуществления изобретения, относится к вычислительному устройству и/или к процессу, выполняющему подмножество игровых процессов, например к серверу физики и к серверу искусственного интеллекта, результаты которого используются сервером управления игрой.
Используемый здесь термин "узел", по меньшей мере, в одном из вариантов осуществления изобретения, относится к вычислительным устройствам и/или к процессам, влияющим на генерацию синтезированной среды, например к серверу, к клиенту, к базе данных и т.п. Используемый здесь термин "данные об игре", по меньшей мере, в одном из вариантов осуществления изобретения, относится, по меньшей мере, к одному подмножеству данных, связанному с генерацией синтезированной среды. Данные об игре могут включать в себя данные о карте, предназначенные, например, для генерации ландшафта синтезированной среды. Данные об игре также могут включать в себя данные о состоянии участника, в том числе, данные о персонаже, инвентаризационные данные (например, данные об оружии), данные о запасах, данные о синтезированном доме, данные о вознаграждениях и т.п. Используемый здесь термин "синтезированная среда", по меньшей мере, в одном из вариантов осуществления изобретения, может относиться к виртуальному миру (или к его участку), представляющему собой смоделированную посредством компьютера среду, предназначенную для того, чтобы ее участники обитали в ней и взаимодействовали посредством, например, анимационных персонажей, воплощающих участников игры (которые именуются "аватарами"). Термин "синтезированная среда" также может относиться к шарду или к персистентному виртуальному миру (или к его части), который представляет собой виртуальный мир, развивающийся без взаимодействия с участником или с наличием этого взаимодействия. Используемый здесь термин "участник", по меньшей мере, в одном из вариантов осуществления изобретения, относится либо к игроку, либо к двумерному или трехмерному графическому представлению (например, к аватару), представляющему игрока, или к обоим из них. Термин "участник" также может относиться к клиенту, с которым взаимодействует игрок. Используемый здесь термин "квази-агрегированное пространство процесса", по меньшей мере, в одном из вариантов осуществления изобретения, относится к пространству памяти, выделенному для прикладной программы и/или реализованному для выполнения команд процессором (например, одним или большим количеством центральных процессоров (ЦП)), в силу чего пространство памяти сконфигурировано таким образом, что действует как агрегированное общее пространство процесса для определенных типов данных, и, кроме того, сконфигурировано таким образом, что действует как отдельные пространства процесса для одного или большего количества других типов данных.
Следует отметить, что согласно другим вариантам осуществления изобретения, серверы 104 игровых подпроцессов и игровые подпроцессы 102 могут быть сконфигурированы таким образом, что реализуют любые другие процессы, связанные с игрой, для облегчения, например, проведения глобальных многопользовательских онлайн-игр ("MMO"). Кроме того, одна или большее количество баз 112a-112c данных могут быть сконфигурированы таким образом, что, помимо прочего, обеспечивают хранение данных, например, для генерации синтезированной среды. По существу, в одной или в большем количестве баз 112a-112c данных могут храниться данные об учетных записях, связанные с учетными записями участников, статистические данные, данные аудита, данные об игре и т.п. В конкретном варианте осуществления изобретения компьютерная платформа 100 для генерации синтезированных сред сконфигурирована таким образом, что производит обмен данными через линию 140 связи, которая может передавать сигналы обмена информацией, например, через любую из нескольких сетей (на чертеже не показаны), в том числе, через сеть Интернет. В одном из вариантов осуществления изобретения линия связи 140 сконфигурирована таким образом, что обеспечивает передачу и/или прием данных со скоростью передачи, по меньшей мере, от приблизительно 5 килобит в секунду до приблизительно 10 килобит в секунду или более. По существу, линия 140 связи поддерживать скоростью передачи 5 килобит в секунду по восходящему каналу и 5 килобит в секунду по нисходящему каналу, в особенности, по существу одновременно. В других вариантах осуществления изобретения линия 140 связи представляет собой линию связи с относительно высокой пропускной способностью, которая может быть реализована как широкополосное соединение, например, с использованием технологий цифровой абонентской линии (DSL), технологий кабельной связи, технологий спутниковой связи и т.п. Линией 140 связи также может являться линия беспроводной связи. В одном из вариантов осуществления изобретения широкополосная линия 140 связи может обеспечивать передачу и/или прием данных со скоростями передачи, превышающими 10 килобит в секунду, и, по существу, линия 140 связи может реализовать скорости передачи данных свыше 10 кбит в секунду. Кроме того, сеть 115 сконфигурирована таким образом, что обеспечивает транспортировку сообщений и/или пакетов со скоростью передачи, по меньшей мере, 1-16 гигабит в секунду, или с более высокой скоростью передачи. В одном из вариантов осуществления изобретения сетью 115 является сеть Ethernet с пропускной способностью 10 гигабит в секунду ("10GbE").
На Фиг.1B приведена иллюстрация серверов управления игрой, генерирующих, полностью или частично, синтезированную среду, применительно к пространству процесса, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Компьютерная платформа 160 для генерации синтезированных сред сконфигурирована таким образом, что осуществляет генерацию синтезированной среды 162 для клиентов 150a и 150b. В этом примере синтезированная среда 162 включает в себя четыре области: первую область ("R1") 163, вторую область ("R2") 165, третью область ("R3") 167 и четвертую область ("R4") 169. Затем полагают, что участник 170 и участник 172, соответственно, связаны с клиентами 150a и 150b. Компьютерная платформа 160 для генерации синтезированных сред включает в себя процессы 120 управления игрой, реализованные посредством серверов 122a-122d управления игрой. Компьютерная платформа 160 для генерации синтезированных сред также включает в себя квази-агрегированное пространство 161 процесса, с использованием которого может быть сгенерирована синтезированная среда 162.
Согласно различным вариантам осуществления настоящего изобретения, квази-агрегированное пространство 161 процесса сконфигурировано таким образом, что в некоторых случаях функционирует как общее пространство процесса, а в других случаях - как совокупность отдельных процессов. В частности, квази-агрегированное пространство 161 процесса сконфигурировано таким образом, что функционирует в качестве общего пространства процесса для первого подмножества данных об игре, и сконфигурировано таким образом, что функционирует в качестве отдельных пространств процесса для второго подмножества данных. Например, сервер 190 обработки транзакций сконфигурирован таким образом, что реализует квази-агрегированное пространство 161 процесса как общее пространство процесса, например, для данных, не связанных с геометрической конфигурацией, и данных, связанных с транзакциями, а серверы 122 управления игрой сконфигурированы таким образом, что реализуют квази-агрегированное пространство 161 процесса как отдельные пространства процесса, например, для данных, связанных с геометрической конфигурацией. По меньшей мере, в одном варианте осуществления изобретения компьютерная платформа 160 для генерации синтезированных сред включает в себя сервер 190 обработки транзакций для реализации, полностью или частично, квази-агрегированного пространства 161 процесса. В частности, сервер 190 обработки транзакций имеет общее пространство процесса, с использованием которого он выполняет обработку обоих подмножеств данных: первого подмножества данных 192 для участника 170c и первого подмножества данных 194 для участника 172. Примеры первых подмножеств данных 192 и 194 включают в себя данные, представляющие предметы, которые участники желают обменять. Вторые подмножества данных для участников 170c и 172 могут быть связаны, например, с данными о геометрической конфигурации, которые, например, обрабатывают серверы 122b и 122d управления игрой.
При работе, когда участник 170 входит в систему, компьютерная платформа 160 для генерации синтезированных сред распределяет этого участника серверам 122b управления игрой. В отличие от этого, когда участник 172 входит в систему, компьютерная платформа 160 для генерации синтезированных сред распределяет участника 172 серверам 122d управления игрой. Во время сеанса участники 170 и 172 остаются связанными, соответственно, с серверами 122b и 122d управления игрой. Затем полагают, что оба из них желают участвовать в действиях во второй области 165, как и многие другие участники, которые на чертеже не показаны. Участник 170a входит в синтезированную среду 162 в первой области 163, а затем перемещается во вторую область 165 как участник 170b. Поскольку обе области: первая область 163 и вторая область 165 относятся к квази-агрегированному пространству 161 процесса, то отсутствует необходимость в вычислительных ресурсах, которые, в противном случае, потребовались бы для управления взаимодействиями между разделами, когда, например, доступ к квази-агрегированному пространству 161 процесса осуществляют как к общему пространству процесса. Кроме того, участник 170c может перемещаться в третью область 167, а затем в четвертую область 169 как участник 170d. Следует отметить следующее: по мере того, как большее количество участников входит во вторую область 165, это возросшее количество, соответственно, не затрудняет работу сервера. Это происходит потому, что, согласно различным вариантам осуществления настоящего изобретения, связанные с игрой процессы, которые генерируют синтезированную среду 162, не привязаны к географическим местоположениям. В этом примере ни один сервер 122 управления игрой не несет полную нагрузку, демпфирование которой может быть осуществлено путем распределения по всем процессам 120 управления игрой в целом. Таким образом, в одной области может собираться большое количество участников без существенного снижения производительности одиночного сервера 122 управления игрой.
На Фиг.2 изображена схема, на которой показан пример системы обмена сообщениями согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. На Фиг.2 показана компьютерная платформа 200 для генерации синтезированных сред, в которой реализована, по меньшей мере, часть системы 250 обмена сообщениями, сконфигурированная таким образом, что она соединяет вместе, через сеть 230, процесс 201, связанный с базами данных, серверный процесс 206 и клиентский процесс 240, все из которых являются узлами. Сетью 230 может являться компьютерная сеть или сеть связи любого другого типа. Процесс 201, связанный с базами данных, включает в себя базу 202 данных ("БД") и систему 204 управления базами данных (СУБД), которая управляет организацией, хранением и извлечением данных в базе 202 данных. При работе система 250 обмена сообщениями сконфигурирована таким образом, что передает сообщения, например сообщения 220a и 220b, которые включают в себя универсальную структуру 260 данных для интегрирования данных в узел (или в процесс, выполняемый в узле), например, в серверный процесс 206. В частности, система 250 обмена сообщениями сконфигурирована таким образом, что производит обмен данными между процессом 201, связанным с базами данных, серверным процессом 206 и клиентским процессом 240 в такой компоновке данных, которая является пригодной для использования каждым из процессов. В одном или в большем количестве вариантов осуществления изобретения компоновка данных, связанная с сообщениями 220a и 220b, является пригодной для непосредственного использования каждым из процессов. Например, серверный процесс 206 может использовать данные, скомпонованные в соответствии с универсальной структурой 260a данных ("УСД"), используемой в сообщении 220a. По существу, процесс 201, связанный с базами данных, серверный процесс 206 и клиентский процесс 240 не требуют преобразования из структуры данных, связанной с сообщениями 220a и 220b, в иной (или специализированный) вид, который, в противном случае, мог бы потребоваться для конкретного узла. Таким образом, отсутствует исполняемый код, который, в противном случае, мог бы потребоваться для обеспечения такого преобразования.
Как показано на Фиг.2, система 250 обмена сообщениями может включать в себя несколько интерфейсов обмена универсальными сообщениями, например, интерфейс 210a обмена универсальными сообщениями, интерфейс 210b обмена универсальными сообщениями и интерфейс 210c обмена универсальными сообщениями, каждый из которых может быть сконфигурирован таким образом, что осуществляет генерацию сообщений 220a и 220b для передачи по всей компьютерной платформе для генерации синтезированных сред и вместе с клиентскими процессами 240. Каждый из интерфейсов 210a, 210b и 210c обмена универсальными сообщениями может быть сконфигурирован таким образом, что производит прием сообщений 220a и 220b для интегрирования содержащихся в них данных в процесс, выполняемый в узле. Кроме того, при разработке универсальных структур 260 данных отсутствует необходимость в повторной компиляции исполняемого кода, которая, в противном случае, должна производиться для преобразования структуры данных одного типа в структуру данных иного типа. Используемый здесь термин "универсальная структура данных", по меньшей мере, в одном из вариантов осуществления изобретения, относится к представлению данных, которое является пригодным для универсального использования узлами, а также к сообщениям 220a и 220b, которые не требуют преобразования в какую-либо иную (или специализированную) структуру данных.
В различных вариантах осуществления изобретения интерфейсы 210a, 210b и 210c обмена универсальными сообщениями из Фиг.2 могут являться одинаковыми, или, в альтернативном варианте, могут быть различными для того, чтобы они были приспособлены для узла, с которым они связаны. Интерфейсы 210a, 210b и 210c обмена универсальными сообщениями могут быть реализованы внутри узлов, или же они могут быть расположены в любом месте внутри компьютерной платформы для генерации синтезированных сред. По меньшей мере, в одном варианте осуществления изобретения каждый из интерфейсов 210a, 210b и 210c обмена универсальными сообщениями может быть сконфигурирован таким образом, что производит широковещательную передачу сообщений, например сообщения 220a, в какие-либо или во все другие узлы. По существу, каждый из интерфейсов 210a, 210b и 210c обмена универсальными сообщениями может быть сконфигурирован таким образом, что обнаруживает, действительно ли каждое из сообщений предназначено для узла, c которым связан интерфейс обмена универсальными сообщениями. В другом варианте осуществления изобретения каждый из интерфейсов 210a, 210b и 210c обмена универсальными сообщениями может быть сконфигурирован таким образом, что производит передачу сообщений, предназначенных для адресата. В одном из вариантов осуществления изобретения сообщения между клиентом и компьютерной платформой для генерации синтезированных сред, например сообщение 220b, могут быть реализованы в одном или в большем количестве пакетов протокола передачи дейтаграмм пользователя (UDP) или протокола сети Интернет (IP). В одном из вариантов осуществления изобретения сообщения, передаваемые между серверными процессами 206 и процессами 201, связанными с базами данных, могут быть реализованы в одном или в большем количестве пакетов протокола управления передачей (TCP). В одном из вариантов осуществления изобретения сеть 230 обеспечивает поддержку внутриплатформенного обмена информацией для компьютерной платформы 200 для генерации синтезированных сред. По меньшей мере, в одном варианте осуществления изобретения клиентский процесс 240 связан через сеть 232 с компьютерной платформой 200 для генерации синтезированных сред. По меньшей мере, в одном варианте осуществления изобретения сеть 232 включает в себя сеть Интернет или любую другую сеть связи. В некоторых случаях клиентский процесс 240 обменивается сообщениями с процессом 201, связанным с базами данных, и/или с серверным процессом 206 через промежуточный процесс (на чертеже не показанный). Пример такого промежуточного процесса показан на Фиг.12 как пользовательский сервер.
В одном из вариантов осуществления изобретения универсальная структура 260 данных относится к классу объектно-ориентированного языка программирования, такого как, например, язык C++ или любой иной язык программирования. В другом варианте осуществления изобретения все типы универсальных структур 260 данных могут относиться к одному классу. Интерфейсы 210a, 210b и 210c обмена универсальными сообщениями могут определять схему управления экземплярами реализации (instance management schema), сконфигурированную таким образом, что она разрешает узлу реализовывать (например, непосредственно реализовывать) данные в универсальной структуре 260 данных. В одном из вариантов осуществления изобретения узел может включать в себя ссылку на схему, которая указывает узлу то, как следует реализовать универсальную структуру 260 данных. В другом варианте осуществления изобретения ссылку содержит универсальное сообщение 220a. В некоторых вариантах осуществления изобретения каждый из интерфейсов 210a, 210b и 210c обмена универсальными сообщениями может быть сконфигурирован таким образом, что форматирует универсальную структуру данных в независимом от платформы формате, который может быть использован независимо от процессора и/или от операционной системы. Одним из примеров независимого от платформы формата является формат, определенный, например, расширяемым языком разметки, таким как, например, расширяемый язык разметки (XML). Расширяемый язык разметки (XML) поддерживается Консорциумом по разработке и распространению стандартов и протоколов для сети "всемирная паутина" ("W3C").
На Фиг.3 изображена система для генерации синтезированных сред, в которой реализованы интерфейсы обмена универсальными сообщениями, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. В этом примере компьютерная платформа 300 для генерации синтезированных сред включает в себя интерфейсы 302, 304, и 306 обмена универсальными сообщениями ("UMI", далее - "ИОУС"), которые сконфигурированы таким образом, что производят передачу и/или прием сообщений, основанных на универсальной структуре данных. Как показано на чертеже, интерфейсы 302a, 302b и 302c обмена универсальными сообщениями размещены в игровых процессах, соответственно, 102a, 102b и 102c, или вблизи них. Каждый из интерфейсов 302a, 302b и 302c обмена универсальными сообщениями связан с сервером 104 игрового подпроцесса. В некоторых случаях каждый из интерфейсов 302a, 302b и 302c обмена универсальными сообщениями может иметь эквивалентную структуру и/или эквивалентные функциональные возможности, а в других случаях интерфейсы 302a, 302b и 302c обмена универсальными сообщениями могут иметь различные структуры и/или функциональные возможности. Например, для сервера физики может потребоваться иной интерфейс обмена универсальными сообщениями, чем, например, для сервера искусственного интеллекта. На Фиг.3 также показано, что компьютерная платформа 300 для генерации синтезированных сред включает в себя интерфейсы 304a, 304b и 304c обмена универсальными сообщениями, расположенные, соответственно, в базах 112a, 112b и 112c данных или вблизи них, и интерфейсы 306a, 306b, 306c и 306n обмена универсальными сообщениями, расположенные, соответственно, в серверах 122a, 122b, 122c и 122n управления игрой или вблизи них. Интерфейсы 308a и 308b обмена универсальными сообщениями реализованы применительно к клиентам 150a и 150b. Следует отметить, что интерфейсы 304a, 304b, 304c, 306a, 306b, 306c, 306n, 308a и 308b могут иметь как эквивалентные, так и различные структуры и/или функциональные возможности относительно друг друга. Также следует отметить, что в некоторых случаях одинаково обозначенные элементы из Фиг.3 могут иметь структуру и/или функциональные возможности, эквивалентные таким же самым элементам, изображенным на Фиг.2.
На Фиг.4A показан способ введения динамического информационного содержимого в синтезированную среду согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. На схеме 401 изображена разработка, например, глобальной многопользовательской онлайн-игры ("MMO") с использованием компьютерной платформы для генерации синтезированных сред согласно одному из вариантов осуществления изобретения. Во время этапа 431 разработки и компиляции программного кода разработчики игр могут создавать и компилировать исходный код для формирования объектного кода 421 в качестве исполняемого кода. При разработке исходного кода может быть сгенерирован и скомпилирован код 423 сокета (socket code). Код 423 сокета включает в себя исполняемые команды и/или вводимые данные, сконфигурированные таким образом, что обеспечивают доступ к данным из вставляемых данных 425 (plug data). По существу, вставляемые данные 425 могут быть разработаны таким образом, что они являются согласованными как с кодом 423 сокета, так и с объектным кодом 421 как часть процесса проверки гарантии качества ("ГК"). После того, как удовлетворены показатели гарантии качества, объектный код 421 (включающий в себя код 423 сокета) и вставляемые данные 425 могут быть выпущены для проведения онлайн-игр. После этапа 431 разработки и компиляции кода разработчики информационного содержимого могут реализовать компьютерную платформу для генерации синтезированных сред для создания других вставляемых данных 427 во время этапа 433 после компиляции кода. Во время этапа 433 могут быть созданы вставляемые данные 427 для их использования с кодом 423 сокета без изменения объектного кода 421. Например, разработчики информационного содержимого могут заменить крейсер, оснащенный многофункциональной боевой системой "Иджис" (Aegis), в качестве вставляемых данных 427, на лодку, которая была сформирована посредством вставляемых данных 425, без изменения исполняемого кода. За счет вышеописанной повторной компиляции объектного кода разработчики могут быстрее доставлять новое динамическое информационное содержимое в синтезированную среду, реализуя код 423 сокета. Кроме того, могут быть созданы будущие вставляемые данные 470 без воздействия на объектный код, что, тем самым, способствует относительно быстрой разработке информационного содержимого. Используемый здесь термин "динамическое информационное содержимое", по меньшей мере, в одном из вариантов осуществления изобретения относится к данным информационного содержимого, которые могут быть введены в синтезированную среду в качестве создаваемого посредством компьютера визуального и/или звукового информационного содержимого, посредством чего данные информационного содержимого могут быть созданы независимо от изменения исполняемого кода, с которым взаимодействуют данные информационного содержимого. По существу, данные информационного содержимого могут быть разработаны без воздействия на объектный код.
На Фиг.4B изображена компьютерная платформа для генерации синтезированных сред, сконфигурированная для введения динамического информационного содержимого в синтезированную среду, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. В этом примере система 400 включает в себя компьютерную платформу 450 для генерации синтезированных сред, которая сконфигурирована таким образом, что способна осуществлять генерацию синтезированной среды 420, с которой взаимодействуют участники и в которую вводят динамическое информационное содержимое 422. Система 400 включает в себя хранилища 402, 430 и 460 данных. В частности, хранилище 402 данных сконфигурировано таким образом, что обеспечивает хранение вставляемых объектов 410a и 410b, которые включают в себя данные информационного содержимого для введения, соответственно, лодки и крейсера, оснащенного многофункциональной боевой системой "Иджис" (Aegis), в качестве динамического информационного содержимого 422. Вставляемые объекты 410a и 410b могут реализовывать компоновки данных, аналогичные или идентичные универсальным структурам данных из различных вариантов осуществления изобретения. Вставляемые объекты 410a и 410b могут также включать в себя данные, представляющие местоположение, позиционирование, скорость и траекторию 424, вдоль которой может плавать судно. Хранилище 430 данных сконфигурировано таким образом, что обеспечивает хранение объектного кода 434 для проведения, например, глобальной многопользовательской онлайн-игры. Хранилище 430 данных также сконфигурировано таким образом, что обеспечивает хранение кода 432 сокета, который может образовывать часть объектного кода 434. Код 423 сокета включает в себя исполняемые команды и/или введенные данные, сконфигурированные таким образом, что обеспечивают доступ к данным из вставляемых данных 425 (на Фиг.4A) для их использования объектным кодом 434 для выполнения генерации динамического информационного содержимого 422. Хранилище 460 данных сконфигурировано таким образом, что обеспечивает хранение данных 462 о виртуальном мире для формирования синтезированной среды 420. Данные 462 о виртуальном мире и код 432 сокета могут совместно использовать зависимость 464 для определения мест, в которых код 423 сокета введет динамическое информационное содержимое 422.
Компьютерная платформа 450 для генерации синтезированных сред включают в себя сервер 452 событий, который сконфигурирован таким образом, что вводит динамическое информационное содержимое 422, по меньшей мере, в один участок синтезированной среды 420. Динамическое информационное содержимое 422 может быть введено, по существу, одновременно с выполнением команд объектного кода для генерации синтезированной среды 420. По существу, компьютерная платформа 450 для генерации синтезированных сред может быть сконфигурирована таким образом, что инициализирует процесс 440 введения вставки, во время которого один из вставляемых объектов 410a и 410b вставляют в код 432 сокета для создания экземпляра реализации динамического информационного содержимого 422. В конкретном варианте осуществления изобретения сервер 452 событий сконфигурирован таким образом, что вводит динамическое информационное содержимое 422 без изменения объектного кода 434. В одном из вариантов осуществления изобретения вставляемые объекты 410a и 410b принадлежат к системе универсальных объектов, которая включает в себя, по меньшей мере, одну универсальную структуру данных. Кроме того, вставляемые объекты 410a и 410b и система универсальных объектов устраняют необходимость повторной компиляции команд 434 объектного кода для введения динамического информационного содержимого 422. Путем реализации вставляемых объектов 410 и кода 432 сокета, по меньшей мере, один сервер управления игрой может быть сконфигурирован таким образом, что осуществляет генерацию динамического информационного содержимого 422 без перезагрузки, например, после реализации измененного объектного кода.
На Фиг.5 приведена иллюстрация пространства процесса для использования при генерации синтезированных сред согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Здесь, компьютерная платформа 500 для генерации синтезированных сред сконфигурирована таким образом, что обеспечивает генерацию синтезированной среды для клиентов 550a и 550b. Компьютерная платформа 500 для генерации синтезированных сред включает в себя процессы 520 управления игрой, реализованные посредством серверов 522a-522n управления игрой. Компьютерная платформа 500 для генерации синтезированных сред также включает в себя квази-агрегированное пространство 502 процесса, в котором транзакции, например транзакция 504, могут быть реализованы как элементарная транзакция. По существу, либо выполняются все части транзакции, либо не выполняется ни одна из них. Для иллюстрации этого рассмотрен пример, в котором первый участник ("участник 1") 506 связан с клиентом 550a, а второй участник ("участник 2") 510 связан с клиентом 550b. Первый участник 506 и второй участник 510 владеют, соответственно, предметом 508 ("предметом А") и предметом 512 ("предметом B"). Затем полагают, что участники 506 и 510 договорились произвести обмен предметами 508 и 512, но еще должны подтвердить свои пожелания. После того, как оба участника 506 и 510 согласились на обмен, транзакцию завершают. Во время транзакций, подобных этой, квази-агрегированное пространство 502 процесса сконфигурировано таким образом, что работает как общее пространство процесса, что, тем самым, делает транзакцию 504 менее уязвимой к манипуляциям. В одном из вариантов осуществления изобретения сервер обработки транзакций (на чертеже не показан) функционирует таким образом, что либо взаимодействует с квази-агрегированным пространством 502 процесса, либо обеспечивает его. Согласно одному из вариантов осуществления изобретения, квази-агрегированное пространство 502 процесса эмулирует общее пространство процесса, и, по существу, позволяет участникам легко совершать переходы между различными синтезированными средами, созданными иными компьютерными платформами 500 для генерации синтезированных сред. Используемый здесь термин "транзакция", по меньшей мере, в одном из вариантов осуществления изобретения, относится к набору задач, составляющих действия, в которых задействованы один или большее количество участников, взаимодействующих с синтезированной средой.
На Фиг.6 изображена схема, на которой показан пример части системы обмена сообщениями, в которой реализовано сжатое универсальное сообщение, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Здесь часть 600 системы обмена сообщениями включает в себя серверный процесс 606 и клиентский процесс 650, оба из которых соединены через сеть 630, предназначенную, помимо прочего, для обмена сообщениями. В этом примере часть системы 600 обмена сообщениями может обеспечивать транспортировку подмножества данных, связанных с серверной (или клиентской) универсальной структурой 660 данных, например, в ответ на то, что клиентский процесс 650 указывает на необходимость видоизменения синтезированной среды. Серверный процесс 606 и клиентский процесс 650 включают в себя, соответственно, интерфейс 610a обмена универсальными сообщениями и интерфейс 610b обмена универсальными сообщениями. Серверный процесс 606 может использовать данные, скомпонованные в соответствии с универсальной структурой 660 данных ("УСД"), для генерации, полностью или частично, синтезированной среды в ответ на изменения данных об игре, переданные из клиентского процесса 650. Примером измененных данных об игре являются данные об игре, сгенерированные клиентским процессом 650, которые указывают движение анимационного персонажа, воплощающего участника игры (именуемого "аватаром"). По меньшей мере, в одном варианте осуществления изобретения серверный процесс 606 и/или клиентский процесс 650 могут производить обмен сообщениями в виде сжатого универсального сообщения 620. Поскольку оба процесса: серверный процесс 606 и клиентский процесс 650 могут реализовывать универсальную структуру 660 данных, посредством которой производят обмен данными, то может быть произведен обмен уменьшенным объемом данных в сжатом универсальном сообщении 620. В частности, в универсальном сообщении необходимо передавать только лишь измененные данные 624 об игре, связанные с универсальной структурой 622 данных. В одном из вариантов осуществления изобретения сжатое универсальное сообщение 620 также включает в себя ключ 628, указывающий, к какому атрибуту измененных данных 624 об игре оно относится. С использованием этой информации серверный процесс 606 может видоизменять синтезированную среду.
На Фиг.7 изображена система для генерации синтезированных сред, в которой реализован главный сервер масштабирования, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Компьютерная платформа 700 для генерации синтезированных сред включает в себя сеть 750 обмена сообщениями между процессами и главный сервер 752 масштабирования, оба из которых сконфигурированы таким образом, что масштабируют способности игрового подпроцесса так, чтобы они соответствовали изменениям в потребностях для игровых подпроцессов, например, процессов, связанных с физикой, и процессов искусственного интеллекта. Компьютерная платформа 700 для генерации синтезированных сред также включает в себя различные игровые подпроцессы 702, процессы 710, связанные с базами данных, и процессы 720 управления игрой. Главный сервер 752 масштабирования сконфигурирован таким образом, что при работе добавляет или удаляет серверы игровых подпроцессов по мере необходимости. Например, если необходим больший объем обработки, связанной с физикой, то главный сервер 752 масштабирования может добавлять дополнительные серверы физики. Но если необходима меньшая степень искусственного интеллекта, то главный сервер 752 масштабирования может отключить серверы искусственного интеллекта.
Главный сервер 752 масштабирования сконфигурирован таким образом, что осуществляет мониторинг перечня серверов, который также включает в себя информацию о типе сервера (например, является ли сервер сервером физики, сервером искусственного интеллекта и т.д.), о синтезированной среде, к которой принадлежит сервер 702 игрового подпроцесса, и т.п. Главный сервер 752 масштабирования также сконфигурирован таким образом, что осуществляет мониторинг сообщений с запросами на дополнительные игровые подпроцессы, передаваемых через сеть 750 обмена сообщениями между процессами, например, из одного или большего количества серверов управления игрой, требующих дополнительных услуг или дополнительной производительности. В ответ главный сервер 752 масштабирования может координировать установление соединений между вновь добавленным сервером игрового подпроцесса, которым является, например, любой из серверов 704a, 704b и 704c игровых подпроцессов, и сервером, выдавшим запрос, которым является, например, сервер управления игрой.
В одном из вариантов осуществления, масштабируемый сервер игрового подпроцесса сконфигурирован таким образом, что когда он подключен к сети, то передает свой идентификатор и другую связанную с этим информацию в главный сервер 752 масштабирования. Другая связанная с этим информация может включать в себя информацию о типе сервера, о соответствующей синтезированной среде, к которой он принадлежит, и т.д. В ответ главный сервер 752 масштабирования динамически выделяет масштабируемый сервер игрового подпроцесса, например, для сервера управления игрой, требующего сервер такого типа. В частности, главный сервер 752 масштабирования посылает команду и информацию о соединении (например, информацию о хост-компьютере и порте) в масштабируемый сервер игрового подпроцесса для подключения к серверу управления игрой, выдавшим запрос. В некоторых случаях главный сервер 752 масштабирования передает информацию о соединении (например, информацию о хост-компьютере и порте) в сервер управления игрой, выдавший запрос, для получения соединения из масштабируемого сервера игрового подпроцесса. По меньшей мере, в одном варианте осуществления изобретения главный сервер 752 масштабирования может быть сконфигурирован таким образом, что осуществляет мониторинг нагрузки на серверы управления игрой и автоматически добавляет или удаляет серверы игровых подпроцессов. В одном из вариантов осуществления изобретения сеть 750 обмена сообщениями между процессами является равнообъемной с системой обмена универсальными сообщениями, реализованной через сеть 715, или является той же самой, что и эта система.
На Фиг.8 изображена схема, на которой показан пример главного сервера масштабирования, добавляющего масштабируемые серверы игровых подпроцессов, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. В частности, на схеме 800 изображены серверы 804 игровых подпроцессов, обеспечивающие игровой подпроцесс 802, используемый сервером управления игрой (на чертеже не показан). Также на схеме показано, что главный сервер 852 масштабирования добавляет масштабируемые серверы 810 физики для увеличения способностей обработки физических процессов. В одном из вариантов осуществления изобретения каждый из масштабируемых серверов 810 физики и серверов 804 игровых подпроцессов являются однородными аппаратными компьютерными платформами. При наличии однородных аппаратных компьютерных платформ главный сервер 852 масштабирования может увеличивать гибкость наращивания и сокращения аппаратных средств.
На Фиг.9 приведена иллюстрация компьютерной платформы для генерации синтезированных сред, в которой реализованы конкретные типы серверов игровых подпроцессов, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Компьютерная платформа 900 для генерации синтезированных сред включает в себя игровые подпроцессы 901, базу 910 данных об игре, сконфигурированную таким образом, что она обеспечивает хранение данных об игре, и процессы 920 управления игрой, которые включают в себя серверы 922a-922n управления игрой. В этом примере игровые подпроцессы 901 включают в себя следующие конкретные типы серверов игровых подпроцессов: сервер 902a физики, сервер 902b искусственного интеллекта ("ИИ") и сервер 902c обработки транзакций. За счет реализации этих игровых подпроцессов в отдельных серверах компьютерная платформа 900 для генерации синтезированных сред является менее чувствительной к проблемам, связанным с игровым подпроцессом. Кроме того, определенные игровые подпроцессы могут быть масштабированы надлежащим образом, чтобы соответствовать потребностям, вне зависимости от других потребностей игрового подпроцесса.
Сервер 902a физики представляет собой один или большее количество серверов физики, сконфигурированных таким образом, что они выполняют обработку действий при обнаружении движения и столкновений для синтезированной среды. В различных вариантах осуществления изобретения сервер 902a физики также может выполнять любую из следующих функций: определение видимости, создание экземпляров реализации (instancing), проверка правильности движения и/или сегментирование пути для персонажей с искусственным интеллектом, не являющихся игроками ("NPC"). При создании определений видимости сервер 902a физики вычисляет, являются ли объекты и/или другие участники синтезированного мира видимыми для участника. Объект является видимым для участника тогда, когда этот объект находится в пределах дальности видимости для участника, при этом сервер 902a физики определяет, действительно ли объект находится в пределах дальности видимости. На Фиг.11 проиллюстрирован альтернативный способ определения видимости согласно одному из вариантов осуществления настоящего изобретения. И вновь со ссылкой на Фиг.9, сервер 902a физики также может быть сконфигурирован таким образом, что обеспечивает "создание экземпляров реализации", в силу чего совокупность участников (и связанная с ними обработка физики) выполняет действия в пределах части синтезированной среды, например, в виртуальном доме, или в области, в которой они объединятся для борьбы с персонажем, которым не является игрок, ("NPC"), например с главным чудовищем.
Проверка правильности движения представляет собой действие по проверке правильности движения участника применительно к синтезированной среде. Сервер 902a физики может быть сконфигурирован таким образом, что проверяет правильность движения по отношению к виртуальному ландшафту и к любым объектам (то есть к другим персонажам и/или объектам), которые находятся на пути желательного движения. На основании скорости, с которой движется анимационный персонаж (аватар), воплощающий участника, относительно виртуального ландшафта, местоположение участника может быть изменено таким образом, чтобы отразить его местоположение в синтезированной среде. Перед передачей измененных данных об игре клиентам сервер 902a физики может выполнять моделирование для проверки того, что местоположение является правильным. Сервер 902a физики также может быть сконфигурирован таким образом, что проверяет правильность движения участника для гарантии того, что участнику разрешено участвовать в определенных действиях или перемещаться в пределах определенных областей синтезированной среды. В одном из вариантов осуществления изобретения сервер 902a физики проверяет подмножество участников за единицу времени и циклически проверяет различные подмножества с течением времени. Любой участник, которому не разрешено перемещаться повсюду или в определенных областях синтезированной среды, может быть отмечен как подозреваемый в выполнении вредоносного кода (эксплойта). Кроме того, сервер 902a физики может предоставлять сегменты пути в сервер 902b искусственного интеллекта ("ИИ") для того, чтобы персонажи, не являющиеся игроками, ("NPCs"), могли избегать объектов, которые, в противном случае, преграждали бы движение персонажа, которым не является игрок, (NPC), вследствие особенностей ландшафта и/или статических объектов. В различных вариантах осуществления изобретения один или большее количество рассмотренных выше процессов, связанных с физикой, могут быть реализованы как отдельные процессы в отдельных серверах.
Сервер 902b искусственного интеллекта ("ИИ") представляет собой один или большее количество серверов искусственного интеллекта, сконфигурированных таким образом, что они обеспечивают компьютерных персонажей, не являющихся игроками, (NPCs), и т.п. с искусственным интеллектом для определения поведения персонажей, не являющихся игроками (NPCs). Могут быть добавлены дополнительные серверы 902b искусственного интеллекта для обеспечения поддержки синтезированной среды в то время, когда потребности в искусственном интеллекте возрастают. Например, если событие требует большого количества персонажей, не являющихся игроками, (NPCs), то могут быть добавлены дополнительные серверы 902b искусственного интеллекта. В одном из вариантов осуществления изобретения участник может взять на себя управление персонажем, которым не является игрок, (NPC), "играя монстра".
Сервер 902c обработки транзакций представляет собой один или большее количество серверов обработки транзакций, сконфигурированных таким образом, что они выполняют обработку, помимо прочего, данных об игре участника во время выполнения программы вне зависимости от местоположения участника. По существу, сервер 902c обработки транзакций включает в себя кэш-память 903 для облегчения перемещения персонажа (то есть участника) между, например, персистентным миром (то есть синтезированной средой) и экземпляром реализации (то есть частью синтезированной среды, например в виртуальном здании). Использование кэш-памяти 903 предотвращает необходимость перезагрузки данных об игре из базы данных при перемещении участника между синтезированными средами и их частями. В некоторых вариантах осуществления изобретения в иных процессах, чем процесс, выполняемый в сервере 902c обработки транзакций, представления данных об игре отмечены как доступные только для чтения, например, для предотвращения манипуляций с транзакциями. Кроме того, сервер 902c обработки транзакций облегчает элементарные транзакции в квази-агрегированном пространстве процесса. Наряду с тем, что сервер 902c обработки транзакций выполняет транзакции, серверы 922a-922n управления игрой могут быть сконфигурированы таким образом, что проверяют участников для подтверждения их подлинности до изменения данных сервером 902c обработки транзакций в ответ на транзакцию.
На Фиг.10 изображена схема, на которой показана реализация процессов, связанных с физикой, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. На схеме 1000 показаны процессы определения видимости и процессы создания экземпляров реализации, загружаемые из сервера 1002 физики, соответственно, в отдельный сервер 1004 видимости и сервер 1006 экземпляров реализации (instance server). Сервер 1004 видимости сконфигурирован таким образом, что определяет, являются ли объекты и/или другие участники синтезированного мира видимыми для участника. Сервер 1006 экземпляров реализации сконфигурирован таким образом, что обеспечивает "создание экземпляров реализации", посредством чего создают совокупность участников и соответствующей физической обработки для выполнения групповых или локализованных действий в части синтезированной среды. За счет того, что процессы определения видимости и процессы создания экземпляров реализации отделены от процессов, связанных с физикой, для синтезированной среды, сервер 1002 физики испытывает меньшую нагрузку. Кроме того, сервер 1004 видимости и сервер 1006 экземпляров реализации являются менее чувствительными к проблемам, связанным с сервером 1002 физики.
На Фиг.11 изображена схема, на которой показан способ определения видимости, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. На схеме 1100 проиллюстрирован пример способа определения видимости для участника 1104. В одном случае сервер видимости сначала определяет дальность 1102 видимости для определения участника 1104. По существу, участник может видеть объекты на расстоянии 1106. По меньшей мере, в одном варианте осуществления изобретения каждому из объектов, персонажей, не являющихся игроками, (NPC), и другим игрокам поставлена в соответствие дальность, "на которой его можно увидеть". Большие объекты, например, гора 1114, могут иметь большую дальность 1112, "на которой их можно увидеть", чем менее крупные объекты, например, мышь 1124, которая имеет дальность 1122, "на которой ее можно увидеть". В одном из вариантов осуществления изобретения, сервер видимости сконфигурирован таким образом, что реализует тест на пересечение со сферой, в котором объект становится видимым для участника тогда, когда дальность, "на которой его можно увидеть", например дальность 1112 для горы 1114, "на которой ее можно увидеть", пересекается с дальностью 1102 видимости. Дальность, "на которой можно увидеть объект", может быть представлена как круг (то есть в двумерном представлении) или как сфера (то есть в трехмерном представлении). Следует отметить, что в конкретном варианте осуществления изобретения участник 1104 имеет две дальности видимости: (1) дальность видимости для участника, определенная сферой 1102, и (2) дальность 1160, "на которой его можно увидеть", на которой другие объекты могут видеть участника 1104, если объект или его дальность видимости пересекают дальность 1160, "на которой его можно увидеть". Затем предположим, что гигант 1150 имеет дальность 1152 видимости на расстоянии 1154 от гиганта, и имеет дальность 1153, "на которой его можно увидеть", на расстоянии 1155 от гиганта. Кроме того, участник 1104 имеет дальность 1160, "на которой его можно увидеть", на расстоянии 1158 от участника 1104. Поэтому, когда гигант 1150 приближается к участнику 1104, и дальность 1152 его видимости пересекается с дальностью 1160, "на которой его можно увидеть", гигант 1150 может видеть участника 1104. Но, когда дальность 1152 видимости находится в пределах мертвой зоны 1160 видимости, участник не может видеть гиганта 1154. Следует отметить, что, как только дальность 1152 видимости пересекает дальность 1102 видимости, участник 1104 может видеть гиганта 1150. В учетом вышеизложенного, на схеме 1100 проиллюстрирован пример способа определения видимости, который уменьшает неестественные визуальные эффекты (например, объекты производят впечатление "появляющихся внезапно", когда они пересекают дальность 1102 видимости), которые могут происходить тогда, когда для определения видимости используют только дальность видимости. Хотя это и не показано на чертеже, мышь 1124 также может иметь дальность видимости. В различных вариантах осуществления изобретения каждый из персонажей, не являющихся игроками, (NPCs), и каждый из участников может иметь дальность видимости и дальность, "на которой его можно увидеть".
На Фиг.12 приведена иллюстрация компьютерной платформы для генерации синтезированных сред, в которой реализованы дополнительные типы серверов игровых подпроцессов, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Компьютерная платформа 1200 для генерации синтезированных сред включает в себя игровые подпроцессы 1202, базу 1212a данных об игре, сконфигурированную таким образом, что она обеспечивает хранение данных об игре, базу 1212b данных аудита, сконфигурированную таким образом, что она обеспечивает хранение данных аудита (то есть запись всех или большинства взаимодействий, осуществляемых каждым участником) и статистических данных, и процессы 1220 управления игрой, которые включают в себя серверы 1222a-1222n управления игрой. Кроме того, компьютерная платформа 1200 для генерации синтезированных сред включает в себя пользовательский сервер 1270, сервер 1272 исправляющих дополнений к программам (patch server) и сервер 1274 статистики/аудита.
Пользовательский сервер 1270 может быть сконфигурирован таким образом, что направляет сообщения между любым из серверов 1222a-1222n управления игрой и клиентом 1250. Однако, как только участник входит в систему для взаимодействия с синтезированной средой, пользовательский сервер 1270 назначает участника и его клиента 1250 одному из серверов 1222a-1222n управления игрой. После этого пользовательский сервер 1270 может передавать сообщения от участника в один из серверов 1222 управления игрой и из этого сервера участнику. Во время сеанса участник может сохранять связь с одним и тем же сервером управления игрой. Пользовательский сервер 1270 также может быть сконфигурирован таким образом, что соединяет клиентов 1250 таким образом, что равномерно распределяет клиентские соединения по серверам 1222a-1222n управления игрой, влияя, тем самым, на выравнивание нагрузки. В некоторых случаях пользовательский сервер 1270 также может быть сконфигурирован таким образом, что устанавливает подлинность участников после регистрации. По меньшей мере, в одном примере пользовательский сервер 1270 может избирательно зашифровывать данные, обмен которыми производят между серверами 1222a-1222n управления игрой и клиентом 1250. В одном из вариантов осуществления изобретения пользовательский сервер 1270 отказывается от шифрования сообщений, связанным с движением, которые являются преобладающими по количеству сообщений. По существу, сокращаются задержки, связанные с шифрованием. Сервер 1272 исправляющих дополнений к программам может быть сконфигурирован таким образом, что пошагово производит передачу клиенту 1250 исправляющих дополнений к программам, например, на основании последовательной передачи отдельных файлов. По меньшей мере, в одном варианте осуществления изобретения сервер 1272 исправляющих дополнений к программам сконфигурирован таким образом, что передает исправляющие дополнения к программам небольшими частями в подходящие моменты времени, например, при входе в систему, а также во время игры в игру (то есть во время взаимодействий участника с синтезированной средой). Сервер 1274 статистики/аудита сконфигурирован таким образом, что собирает и использует статистические данные для использования участником и/или для инициирования событий, поддерживая связь с сервером событий.
На Фиг.13 изображена схема, на которой показан способ предоставления возможности проведения игры во время внесения исправляющих дополнений в программу, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. На схеме 1300 проиллюстрированы области, которые добавляют как новые "миры", "континенты" или синтезированные среды. Ход расширения синтезированной среды показан стрелкой 1330. Полагают, что область (1) 1302 была реализована с использованием первоначально загруженной игры. Затем полагают, что область (2) 1312 представляет собой расширенную синтезированную среду, для которой участник загрузил исправляющее дополнение к программе. Наконец, полагают, что участник еще должен реализовать следующее исправляющее дополнение к программе для области (3) 1322, но желает войти в область 1322 из области 1302. По мере того как участник проходит из области 1302 в область 1312, участник будет наблюдать дерево 1304 и дерево 1314. Но, когда участник переходит через разграничительную линию 1316, участник будет находиться в месте, построение которого еще должно быть завершено. По существу, компьютерная платформа для генерации синтезированных сред отображает на дисплее цифровой объект-заместитель 1324 (proxy asset) (то есть замещающий объект), если данные исправляющих дополнений к программе для визуализации дерева пока еще не являются полными. По существу, нет необходимости запрещать участнику входить в новую область 1322, но фактически он может наблюдать только лишь объекты, являющиеся временной заменой, до тех пор, пока не будет завершен процесс внесения исправляющих дополнений в программу.
На Фиг.14 приведена иллюстрация компьютерной платформы для генерации синтезированных сред, в которой реализован сервер событий и редактор событий, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Компьютерная платформа 1400 для генерации синтезированных сред включает в себя игровые подпроцессы 1401, базу 1410 данных об игре, сконфигурированную таким образом, что она обеспечивает хранение данных об игре, и процессы 1420 управления игрой, которые включают в себя серверы 1422a-1422n управления игрой. Компьютерная платформа 1400 для генерации синтезированных сред также включает в себя сервер 1430 событий и редактор 1480 событий. Сервер 1430 событий сконфигурирован таким образом, что управляет введением динамического информационного содержимого в синтезированные среды в зависимости, например, от действий игрока, например, инициируя заранее заданное средство запуска или условие и/или согласно заданному графику. Например, если количество участников, собравшихся в конкретном месте, превышает критическую точку, то сервер 1430 событий может инициировать введение динамического информационного содержимого. В некоторых вариантах осуществления изобретения сервер 1430 событий может видоизменять типы кораблей или порождаемых существ. Сервер 1430 событий сконфигурирован таким образом, что осуществляет доступ к вставляемым объектам из базы 1412 данных, в которой хранится библиотека событий, для генерации динамического информационного содержимого. В одном из вариантов осуществления изобретения сервер 1430 событий сконфигурирован таким образом, что осуществляет генерацию данных для приведения в действие руководство 1490 по серверу событий (Event Server Guide), который представляет запрограммированные события для того, чтобы участники предварительно просмотрели эти события и приняли в них участие. Редактор 1480 событий сконфигурирован таким образом, что агрегирует вставляемые объекты совместно с несколькими сокетами для введения переменного объема динамического информационного содержимого, посредством чего совокупность вставляемых объектов может обеспечивать введение существ, деревьев, структур и т.п. в синтезированную среду.
На Фиг.15 изображена последовательность операций для создания событий для введения динамического информационного содержимого в различной степени, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Последовательность 1500 операций представляет собой пример способа создания события с использованием вставляемых объектов, которые включают в себя универсальные структуры данных, хранящиеся в библиотеке событий. При операции 1502 определяют событие и указывают необходимые требования. При операции 1504 разработчики игр создают новое событие, например, с использованием заранее созданных вставляемых объектов до тех пор, пока при операции 1506 не будет назначено новое событие. При операции 1508 событие проверяют для подтверждения того, что новое событие удовлетворяет требованиям, предъявляемым к гарантии качества ("ГК"). Если при операции 1510 событие приводит к отрицательному результату, то в последовательности 1500 операций возвращаются к выполнению операции 1502 для переопределения или исправления определения и/или реализации события. Если же событие является успешным, то выполняют операцию 1512, при которой его запоминают в библиотеке событий. При операции 1522 составляют график введения события в синтезированную среду. Сервер 1526 событий сконфигурирован таким образом, что при операции 1524 он инициирует событие в заранее заданный момент времени. В запланированный момент времени сервер 1526 событий извлекает данные, связанные с событием, из библиотеки 1512 событий и вызывает реализацию этого события компьютерной платформой 1528 для генерации синтезированных сред (например, путем генерации динамического информационного содержимого). Затем выполняют операцию 1530, при которой динамическое информационное содержимое передают клиенту для использования в созданном посредством компьютера мире.
В одном из вариантов осуществления изобретения последовательность 1500 операций обеспечивает введение динамического информационного содержимого в синтезированные среды посредством процесса, выполняемого в сервере исправляющих дополнений к программам, который реализован в сервере 1580 исправляющих дополнений к программам. В этом примере сервер 1580 исправляющих дополнений к программам сконфигурирован таким образом, что обнаруживает тот момент, когда данные, представляющие событие, сохраняют в библиотеке событий при операции 1512. Кроме того, сервер 1580 исправляющих дополнений к программам сконфигурирован таким образом, что "проталкивает" или "передает небольшими частями" необходимые для события данные вниз клиенту в виде небольших файлов или фрагментов данных 1582. Соответственно, сервер 1580 исправляющих дополнений к программам может "проталкивать" данные вниз в моменты времени невысокой нагрузки и может предотвращать превышение выделенной пропускной способности, которое в противном случае может происходить при наличии большого объема загружаемых данных, составляющего, например, 250 мегабайт, во время периодов максимальной нагрузки, что является дорогостоящим. В другом варианте осуществления изобретения сервер 1580 исправляющих дополнений к программам определяет объем данных, которые нужно "протолкнуть", и время, оставшееся до события, и, следовательно, вычисляет средний объем данных, который необходимо "протолкнуть" за единицу времени. По существу, сервер 1580 исправляющих дополнений к программам может изменять объемы данных в небольших файлах 1582 для оптимальной транспортировки. В конкретном варианте осуществления изобретения сервер 1580 исправляющих дополнений к программам может быть сконфигурирован таким образом, что осуществляет доступ к данным о контроле порогового значения максимальной нагрузки в базе 1584 данных для определения того, когда следует изменить размеры небольших файлов 1582 для того, чтобы избежать "проталкивания" больших объемов данных в моменты времени, соответствующие максимальной нагрузке.
На Фиг.16 изображена схема, на которой показана конкретная реализация универсальной структуры данных согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Универсальная структура 1602 данных показана как объект класса свойств, распознаваемый по идентификатору 1604 (то есть по "классу свойств xxxxxx" ("Property Class xxxxxx")). Объект класса свойств включает в себя структуру данных, содержащую атрибуты 1606, каждый из которых может соответствовать свойству из "класса свойств xxxxxx", например, описанному ниже применительно к файлу 1622 описания универсальной структуры данных из Фиг.16. Кроме того, атрибут 1606 может соответствовать значению свойства (например, строке, целому числу и т.д.), например, описанному применительно к универсальной структуре 1702 данных из Фиг.17. В различных вариантах осуществления изобретения универсальная структура 1602 данных может включать в себя вложенные универсальные структуры данных (или ссылки на них). Для иллюстрации этого полагают, что "класс свойств xxxxxx" может определять свойства корабля, как, например, описано на Фиг.20. В таком случае универсальная структура 1602 данных может включать в себя вложенную универсальную структуру данных, которая определяет свойства "позиционирования", которыми обладает корабль.
Фиг.16 также включает в себя схему, на которой показан пример файла описания универсальной структуры данных согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Файл 1622 описания универсальной структуры данных обеспечивает схему управления экземплярами реализации, которая использует узлы в компьютерной платформе, предназначенной для генерации синтезированных сред, для доступа к данным, реализованным в виде универсальной структуры данных. Файл 1622 описания универсальной структуры данных может включать в себя метаданные для каждого объекта класса свойств, который может быть сконфигурирован таким образом, что обеспечивает соответствующие значения свойства для присвоенных атрибутов. В некоторых вариантах осуществления изобретения объектом класса свойств или объектом PropertyClass (ниже именуемый "объектом класса свойств") может являться объект, имеющий данные или информацию, используемую для определения того, каким образом следует визуализировать, генерировать объекты различных типов или создавать экземпляры их реализации, информацию и другие параметры в синтезированной среде. Кроме того, объекты класса свойств могут быть сконфигурированы таким образом, что обеспечивают уменьшенный объем данных в сообщениях, которые при их использовании, например, с высокоскоростными сетевыми соединениями или с сетевыми соединениями с большой пропускной способность позволяют играть в игру быстро или с высокой скоростью, обеспечивают возможность быстрой или высокоскоростной генерации синтезированных сред и т.п. Например, объект класса свойств может включать в себя все данные, используемые для создания экземпляра реализации объекта, или их часть. Компьютерная платформа для генерации синтезированных сред (или ее узлы) может реализовывать метаданные для создания, представления и/или реализации значений данных об игре. Кроме того, на файл 1622 описания универсальной структуры данных может быть создана ссылка посредством идентификатора 1624 (то есть посредством "описания класса свойств yyyyy" ("Property Class Specification yyyyy")), и этот файл может включать в себя ссылку 1626 на схему управления экземплярами реализации, например, в месте "instance.mgmt.schema" ("схема.управления.экземплярами.реализации"). В некоторых вариантах осуществления изобретения схема управления экземплярами реализации представляет собой модель данных, описывающую использование узла для доступа к данным в объектах класса свойств. Кроме того, файл 1622 описания универсальной структуры данных может включать в себя значения свойства (или ссылки на них) для объектов 1630 класса свойств.
На Фиг.17 приведена схема, на которой изображены элементы систем классов свойств согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. В некоторых вариантах осуществления изобретения класс 1704 свойств может быть реализован как универсальная структура 1702 данных и может иметь одно или большее количество свойств ("Property") 1706. Здесь класс 1704 свойств сконфигурирован таким образом, что является контейнером для конкретных указателей свойств на соответствующие значения свойств. Кроме того, одно или большее количество свойств 1706 могут включать в себя такие значения свойства, как, например, строка ("PropertyString") 1708a, целое число ("PropertyInt") 1708b, большое целое число ("PropertyBigInt") 1708c и другие.
Показанный файл 1722 описания универсальной структуры данных содержит описание 1724 класса свойств. По существу, экземпляры реализации класса 1704 свойств общего типа могут относиться к описанию 1724 класса свойств. Например, класс 1704 свойств, имеющий наименование "Игрок" ("Player"), может быть связан, например, с описанием 1724 класса свойств, которое определяет свойства и значения свойств. Кроме того, описание 1724 класса свойств может включать в себя вектор указателей на одно или на большее количество описаний 1726 свойств ("PropertySpec"), каждое из которых может содержать метаданные, связанные со свойствами 1706. Менеджер 1742 класса свойств ("PropertyClassManager") может включать в себя карту (например, таблицу поиска) для определения наименования класса свойств и описания класса свойств в качестве пары "ключ и значение". Во время прогона или выполнения программы компьютерная платформа для генерации синтезированных сред (или ее узлы) может использовать менеджера 1742 класса свойств для управления реализацией структур данных и данных об игре из системы классов свойств.
На Фиг.18 изображена последовательность операций для создания универсального сообщения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. В последовательности 1800 операций показан редактор 1802 универсальной структуры данных, сконфигурированный таким образом, что он обеспечивает редактирование или создание одного или большего количества файлов объектов класса свойств, например файлов 1803 с данными об объектах на расширяемом языке разметки (XML). Редактор 1802 универсальной структуры данных, которым может являться, например, редактор, обеспечивающий удобные для контекста элементы интерфейса, такие как, например, ниспадающие меню, и проверку правильности области значений данных на основании соответствующих описаний класса свойств. Кроме того, редактор 1802 универсальной структуры данных использует средство 1806 считывания с языка XML и средство 1805 записи на языке XML для преобразования данных, направляемых в источник и взятых из источника, в последовательную форму, которым может являться один или большее количество файлов 1803 с данными об объектах на языке XML. В различных вариантах осуществления изобретения редактор 1802 универсальной структуры данных может быть сконфигурирован таким образом, что обеспечивает редактирование данных, отформатированных в соответствии с расширяемым языком разметки (а именно языком XML), языком гипертекстовой разметки (а именно языком HTML) и любыми другими языками разметки или форматирования. В некоторых случаях редактор 1802 универсальной структуры данных может быть заменен редактором 1807, основанным на языке XML, поскольку класс свойств представлен в формате, совместимом с языком XML. Редактором 1807, основанным на языке XML, может являться любое из нескольких имеющихся в продаже инструментальных средств, например, редактор "XMLSpy", выпускаемый фирмой "Altova, Inc.", г. Беверли, штат Массачусетс, США.
Файл с данными о классе свойств 1803 вводят в среду выполнения с использованием преобразования в последовательную форму или средства 1806 считывания с языка XML, входящего в состав системы свойств. Оно берет данные о классе свойств на расширяемом языке разметки (XML) из файла 1803 и создает представление 1809 объекта класса свойств на языке C++ "в памяти". Любые видоизменения могут быть отражены обратно в первоначальный источник с использованием средства 1805 записи на языке XML.
Для повышения скорости преобразования в последовательную форму и содействия умышленной запутанности данных по сравнению с представлением на языке XML объект 1809 класса свойств может быть преобразован в последовательную форму в дисковый двоичный формат 1810 с использованием средств, представляющих собой средство 1808 считывания двоичных данных и средство 1801 записи двоичных данных. Это позволяет разработчикам производить редактирование в удобочитаемом формате (то есть на языке XML) с использованием удобных инструментальных средств и осуществлять преобразование языка XML в двоичный формат, когда важна скорость выполнения и умышленная запутанность.
Если необходимо произвести передачу какого-либо экземпляра реализации объекта 1809 на языке C++ по сети, то объект класса свойств "упаковывают" или "формируют в виде пакета" для транспортировки в передатчик 1850. В процессе формирования пакетов при операции 1811 используют функции средства 1801 записи двоичных данных для создания пакета, и при операции 1812 производят передачу пакета по линии 1842 связи. При этом приемник 1852 производит прием пакета и использует функции средства 1801 считывания двоичных данных для распаковки данных в экземпляр реализации представления 1809 объекта класса свойств на языке C++ в памяти. Следует отметить, что согласно различным вариантам осуществления настоящего изобретения, либо передатчик 1850, либо приемник 1852, либо оба из них могут быть реализованы в виде интерфейсов обмена универсальными сообщениями.
На Фиг.19 проиллюстрированы элементы системы классов свойств для создания универсального сообщения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. На схеме 1900 изображен процесс создания универсального сообщения 1940, в котором используют следующие элементы системы классов свойств: объекты класса свойств, например, объекты 1902, 1904 и 1906 класса свойств, манифест 1910 класса свойств, менеджер 1920 класса свойств и файл 1930 описания класса свойств. Для иллюстрации полагают, что процесс 1940 создания универсального сообщения сконфигурирован таким образом, что обеспечивает генерацию универсального сообщения относительно данных о персонаже. По существу, процесс 1940 создания универсального сообщения использует объект ("игрок") 1906 класса свойств, который включает в себя вложенные объекты 1902 и 1904 класса свойств. Вложенный объект класса свойств ("колдовские чары") 1902 включает в себя компоновку данных, представляющую такие данные, как, например, типы и сила колдовских чар, которыми обладает игрок. Вложенный объект ("оружие") 1904 класса свойств включает в себя компоновку данных, представляющую такие данные, как, например, виды оружия, которыми владеет игрок.
По меньшей мере, в одном варианте осуществления изобретения манифест 1910 класса свойств сконфигурирован таким образом, что обеспечивает пространство для перечисления или сбора информации и данных, которые могут использоваться системой свойств для создания экземпляра реализации объектов класса свойств. Например, манифест 1910 класса свойств может включать в себя перечень идентификаторов ("ИД") класса свойств, имена файлов описания (например, файла 1722 описания (Фиг.17)), тэги категорий для каждого перечня для помощи в группировании объектов класса свойств и т.д. Кроме того, манифест 1910 класса свойств может описывать имена файлов, наименования объектов класса свойств и другие ресурсы (или источники информации) для создания универсального сообщения. Менеджер 1920 класса свойств может включать в себя карту логических и физических ресурсов и данных для управления реализацией структур данных объектов 1902, 1904 и 1906 класса свойств и данных об игре в них. Файл 1930 описания класса свойств может включать в себя значения свойств или ссылки на значения свойств.
Компьютерная платформа для генерации синтезированных сред и/или ее узлы могут реализовывать процесс 1940 создания универсального сообщения и описанные выше элементы системы классов свойств для формирования универсального сообщения (или универсальной структуры данных), которое (которая) может использоваться узлами компьютерной платформы для генерации синтезированных сред, показанной, в числе прочих, например, на Фиг.1 и Фиг.3. Когда узел (например, сервер, клиент, одноранговый узел или иной процессор) инициирует процесс 1940 создания универсального сообщения, то универсальная структура данных может быть реализована как часть универсального сообщения. Затем полагают, что процесс 1950 обеспечивает прием реализованного универсального сообщения. По существу, процесс 1950 может использовать данные 1952 непосредственно из сообщения без необходимости компиляции его исходного кода.
На Фиг.20 проиллюстрированы элементы системы классов свойств для создания "вставки" (plug) согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. На схеме 2000 изображен процесс 2040 создания "вставки", который использует следующие элементы системы классов свойств: объекты 2002-2006 класса свойств, манифест 2010 класса свойств, менеджер 2020 класса свойств и файл 2030 описания класса свойств. Для иллюстрации полагают, что процесс 2040 создания "вставки" сконфигурирован таким образом, что обеспечивает генерацию "вставки" для визуализации изображения корабля или элемента игры, которым является корабль (например, грузовой корабль, танкер, военный корабль (например, ракетный крейсер класса "Тикондерога" (Ticonderoga), оснащенный многофункциональной боевой системой "Иджис" (Aegis) с управляемыми ракетами), круизное судно, океанский лайнер и другие), в качестве динамического информационного содержимого, вводимого в синтезированную среду. По существу, процесс 2040 создания "вставки" использует вставляемый объект ("корабль") 2006 класса свойств, который включает в себя вложенные вставляемые объекты 2002, 2004 и 2005 класса свойств. Вложенный объект ("позиционирование") 2002 класса свойств включает в себя компоновку данных, представляющую такие данные, как, например, позиционирования и относительное движение, которыми будет обладать корабль. Вложенный объект ("скорость") 2004 класса свойств включает в себя компоновку данных, представляющую такие данные, как, например, скорость, с которой идет (то есть перемещается) корабль. Вложенный объект ("выглядит как корабль") 2005 класса свойств включает в себя компоновку данных из данных, описывающих, например, внешний вид корабля, который выглядит, как корабль желательной формы. По меньшей мере, в одном варианте осуществления изобретения манифест 2010 класса свойств, менеджер 2020 класса свойств и файл 2030 описания класса свойств могут иметь функции и/или структуры, аналогичные описанным на Фиг.19. В некоторых вариантах осуществления изобретения "вставка" может относиться к представлениям, определяющим, помимо прочего, например, данные, цифровые объекты (assets), перечень процедурных действий и условные триггеры. Примером представления данных является объект 2004 класса свойств, включающий в себя данные, указывающие скорость корабля. Примером представления цифрового объекта является вставляемый объект 2006 класса свойств, который включает в себя данные, описывающие корабль как цифровой объект. Пример представления перечня процедурных действий включает в себя данные, указывающие действия, которые должен выполнить вставляемый объект. Например, данные перечня процедурных действий могут определять, что корабль: (1) повернет в порт, (2) продолжит плавание и (3) остановится в доке. Пример представления условного триггера включает в себя данные, определяющие, что должно произойти событие X, когда срабатывает условный триггер при событии Y. Например, данные условного триггера могут указывать, что корабль должен взорваться после того, как он прибудет в док.
Компьютерная платформа для генерации синтезированных сред и/или ее узлы могут реализовывать процесс 2040 создания "вставки" и описанные выше элементы системы классов свойств для формирования вставляемых данных 2052. Затем полагают, что процесс 2050 является получателем вставляемых данных 2052. В частности, вставляемые данные 2052 включают в себя одну или большее количество универсальных структур данных, которые могут предоставлять данные об игре в код 2054 сокета процесса 2050. По существу, процесс 2050 может использовать вставляемые данные 2052 для введения динамического информационного содержимого в синтезированную среду без необходимости дальнейшей или дополнительной компиляции исходного кода как для процесса 2050, так и для кода 2054 сокета. В одном из вариантов осуществления изобретения вставляемые данные 2052 могут быть сохранены как вставляемые данные 2061 о корабле в базе 2060 данных ("БД"). Пользователь может использовать редактор 2064 событий для совместной работы с сервером 2062 событий для создания вставляемых данных 2061 о корабле. Кроме того, пользователь может использовать редактор 2064 событий для планирования даты и времени, когда вставляемые данные 2061 о корабле будут вставлены в код 2054 сокета для генерации динамического информационного содержимого, например, в запланированное время. В некоторых вариантах осуществления изобретения редактор 2064 событий может представлять собой прикладную программу, созданную поверх либо редактора языка XML, либо редактора класса свойств.
На Фиг.21 изображена схема, на которой показана часть системы обмена сообщениями, в которой реализовано сжатое универсальное сообщение, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Здесь часть 2100 системы обмена сообщениями включает в себя серверный процесс 2106 и клиентский процесс 2150, оба из которых связаны друг с другом через сеть 2130 для того, чтобы, помимо прочего, производить обмен сообщениями. В этом варианте осуществления изобретения часть 2100 системы обмена сообщениями может обеспечивать транспортировку сообщения как универсальной структуры данных, включающей в себя подмножество данных, связанных с объектом 2160 класса свойств ("<окс>")) на стороне сервера (или на стороне клиента). Примером такого сообщения является ответ из клиентского процесса 2150, указывающий видоизменение синтезированной среды. Серверный процесс 2106 и клиентский процесс 2150, соответственно, включают в себя интерфейс 2110a обмена универсальными сообщениями и интерфейс 2110b обмена универсальными сообщениями. Серверный процесс 2106 может использовать данные, скомпонованные в соответствии с объектом 2160 класса свойств для полной или частичной генерации синтезированной среды в ответ на изменения данных об игре, переданные из клиентского процесса 2150. Примером измененных данных об игре являются данные, сгенерированные клиентским процессом 2150 для того, чтобы вызвать перемещение анимационного персонажа (аватара), воплощающего участника игры, в синтезированной среде. По меньшей мере, в одном варианте осуществления изобретения серверный процесс 2106 и/или клиентский процесс 2150 могут производить обмен сообщениями в виде сжатого универсального сообщения 2120. Поскольку оба процесса: серверный процесс 2106 и клиентский процесс 2150 могут реализовать объект 2160 класса свойств, с использованием которого производят обмен данными, то может быть произведен обмен уменьшенным объемом данных в сжатом универсальном сообщении 2120. В некоторых вариантах осуществления изобретения в универсальном сообщении может быть произведена транспортировка измененных данных 2124 об игре, связанных с объектом 2122 класса свойств. В качестве примера полагают, что измененные данные 2124 об игре определяют измененное значение определенного свойства, которое может быть распознано по индексу. По существу, сжатое универсальное сообщение 2120 может включать в себя индекс 2128 для распознавания соответствующего атрибута измененных данных 2124 об игре. Серверный процесс 2106 может быть сконфигурирован или реализован таким образом, что видоизменяет синтезированную среду с использованием этой информации.
На Фиг.22 приведена иллюстрация множества устройств, в которых реализован интерфейс обмена универсальными сообщениями для взаимодействия с компьютерной платформой для генерации синтезированных сред, согласно, по меньшей мере, одному варианту осуществления настоящего изобретения. Компьютерная платформа 2280 для генерации синтезированных сред включает в себя игровые подпроцессы 2282, процессы 2284, связанные с базами данных, и процессы 2286 управления игрой, включающие в себя серверы 2288a-2288n управления игрой. Как показано на чертеже, множество клиентов 2290, реализующих интерфейс 2292 обмена универсальными сообщениями ("ИОУС"), могут взаимодействовать с компьютерной платформой 2280 для генерации синтезированных сред через сеть 2289, которой является, например, сеть Интернет. В этом примере компьютерная приставка 2290a к телевизору, мобильное устройство 2290b, вычислительное устройство 2290c, игровая приставка 2290d, спутниковый приемник ("ПРМ") 2290e, сотовый телефон 2290g, персональное цифровое информационное устройство ("PDA") 2290h и телевизор 2290i, помимо прочего, могут быть сконфигурированы таким образом, что реализуют описанный здесь интерфейс 2292 обмена универсальными сообщениями ("ИОУС"). По меньшей мере, в одном варианте осуществления изобретения любое устройство 2290f, содержащее логические схемы (например, процессор и запоминающее устройство), может обеспечивать реализацию универсальных структур данных и/или классов свойства согласно различным вариантам осуществления настоящего изобретения для участника синтезированной среды.
В различных вариантах осуществления изобретения системы классов свойств и экземпляры из реализации могут быть реализованы как объекты класса свойств на языке C++ или как любой другой класс свойств на иных языках программирования. Кроме того, несмотря на то, что в приведенном выше обсуждении различные признаки описаны применительно к проведению онлайн-игр, варианты осуществления настоящего изобретения не следует ограничивать проведением онлайн-игр. Наоборот, описанные здесь признаки и способы могут быть применены к синтезированной среде для целей обучения, образовательных целей, социальных целей и т.п. Также следует отметить следующее: несмотря на то, что приведенное выше описание изложено применительно к распределенным серверам в архитектуре клиент-сервер, различные варианты осуществления изобретения не ограничены этой архитектурой. Например, один или большее количество процессов, выполняемые в узлах, могут быть объединены в одиночный процесс. Кроме того, в вариантах осуществления настоящего изобретения может быть реализована любая сетевая архитектура и топология. Например, компьютерная платформа для генерации синтезированных сред может обеспечивать реализацию одноранговой сети и т.п.
По меньшей мере, в некоторых вариантах осуществления настоящего изобретения структуры и/или функции любого из описанных выше признаков могут быть реализованы в программном обеспечении, аппаратными средствами, посредством аппаратно-реализованного программного обеспечения, электронных схем или комбинации этих средств. Следует отметить, что описанные выше структуры и компоненты, а также их функциональные возможности, могут быть объединены с одним или с большим количеством других структур или элементов. В альтернативном варианте элементы и их функциональные возможности могут быть подразделены на составные подэлементы, если это имеет место. В случае программного обеспечения описанные выше способы могут быть реализованы с использованием языков программирования или форматирования, оболочек, синтаксиса, прикладных программ, протоколов, объектов или технологий различных типов, в том числе, языка Cи (C), объектно-ориентированного языка Cи (Objective C), языка C++, языка C#, технологии Flex™, технологии Fireworks®, языка Java™, языка сценариев Javascript™, технологии AJAX, языка КОБОЛ (COBOL), языка Фортран (Fortran), языка ADA, расширяемого языка разметки (XML), языка гипертекстовой разметки (HTML), динамического языка гипертекстовой разметки (DHTML), расширяемого языка гипертекстовой разметки (XHTML), протокола передачи гипертекста (HTTP), расширяемого протокола обмена сообщениями и информацией о присутствии (XMPP) и других. Они могут быть различными и не ограничены приведенными примерами или описаниями.
В приведенном выше описании в пояснительных целях была использована конкретная терминология для обеспечения полного понимания настоящего изобретения. Однако для специалиста в данной области техники очевидно, что конкретные подробности не являются необходимыми для практической реализации настоящего изобретения. По существу, это описание не следует толковать как ограничивающее любой признак или объект настоящего изобретения каким-либо вариантом осуществления изобретения; наоборот, отличительные признаки и объекты из одного варианта осуществления изобретения могут быть легко заменены на признаки и объекты из других вариантов осуществления изобретения.
Таким образом, вышеизложенные описания конкретных вариантов осуществления настоящего изобретения приведены в иллюстративных и пояснительных целях. Подразумевают, что они не являются исчерпывающими или ограничивающими изобретение в точности раскрытыми его вариантами; с учетом вышеизложенной идеи изобретения возможно множество альтернативных вариантов, модификаций, эквивалентов и изменений. Для ясности подробное описание технических сведений, которые являются известными в областях техники, связанных с вариантами осуществления изобретения, не было приведено во избежание излишнего затруднения понимания описания. Таким образом, различные варианты осуществления изобретения могут быть видоизменены, не выходя за пределы объема и эквивалентов прилагаемой формулы изобретения. Кроме того, варианты осуществления изобретения были выбраны и описаны для наилучшего объяснения принципов настоящего изобретения и областей его практического применения; тем самым они позволяют другим специалистам в данной области техники наилучшим образом использовать изобретение и различные варианты его осуществления с различными видоизменениями как пригодные для конкретного предполагаемого использования. То есть не обязательно, чтобы каждое описанное здесь преимущество было реализовано в каждом варианте осуществления настоящего изобретения; наоборот, любой конкретный вариант осуществления настоящего изобретения может обеспечивать одно или большее количество описанных выше преимуществ. В формуле изобретения элементы и/или операции не предполагают наличия конкретного порядка выполнения операций, если это не изложено в формуле изобретения в явном виде. Подразумевают, что объем патентных притязаний настоящего изобретения определяется приведенной ниже формулой изобретения и ее эквивалентами.
название | год | авторы | номер документа |
---|---|---|---|
РАСПРЕДЕЛЕННАЯ СЕТЕВАЯ АРХИТЕКТУРА ДЛЯ ВВЕДЕНИЯ ДИНАМИЧЕСКОГО ИНФОРМАЦИОННОГО СОДЕРЖИМОГО В СИНТЕЗИРОВАННУЮ СРЕДУ | 2008 |
|
RU2468431C2 |
ИГРЫ С ВНЕДРЕННОЙ ФУНКЦИЕЙ МГНОВЕННОЙ ПЕРЕДАЧИ СООБЩЕНИЙ | 2004 |
|
RU2364938C2 |
АРХИТЕКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ USB В ИГРОВОЙ МАШИНЕ | 2004 |
|
RU2331927C9 |
ПРОТОКОЛЫ И СТАНДАРТЫ ДЛЯ КОММУНИКАЦИЙ С USB-ПЕРИФЕРИЕЙ | 2004 |
|
RU2331926C9 |
ПРОЦЕДУРЫ ЗАГРУЗКИ ДЛЯ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ | 2004 |
|
RU2331928C9 |
УСТРОЙСТВО, СИСТЕМА И СПОСОБ ПРОВЕДЕНИЯ ИГРЫ ПО БЕСПРОВОДНОЙ СВЯЗИ | 2002 |
|
RU2321067C9 |
Динамически размещаемая база данных с топологической привязкой информации | 2021 |
|
RU2780979C1 |
СИСТЕМА БАЛЛОВ ВОЗНАГРАЖДЕНИЯ В МЕТАИГРЕ | 2014 |
|
RU2664399C2 |
СЕРВЕР И СПОСОБ ДЛЯ ОСУЩЕСТВЛЕНИЯ КОМПЬЮТЕРНЫХ КОММУНИКАЦИЙ ДЛЯ АВТОМАТИЧЕСКОГО ВЫПОЛНЕНИЯ И УПРАВЛЕНИЯ СРАВНЕНИЕМ | 2006 |
|
RU2439836C2 |
ПОСЫЛКА СООБЩЕНИЙ В КАЧЕСТВЕ РЕАКЦИИ НА СОБЫТИЯ, ПРОИСХОДЯЩИЕ В ИГРОВОЙ УСЛУГЕ | 2004 |
|
RU2340380C2 |
Изобретение относится к компьютерному моделированию и к генерации синтезированных сред. Техническим результатом является расширение функциональных возможностей генерирования синтезированных сред за счет введения динамического информационного содержимого. Варианты осуществления настоящего изобретения относятся, в общем случае, к компьютерному моделированию и к генерации синтезированных сред, и, в частности, к системе, к считываемому посредством компьютера носителю информации, к способу и к устройству для генерации синтезированных сред в распределенной архитектуре, предназначенным, помимо прочего, для введения динамического информационного содержимого. В одном из вариантов осуществления изобретения в компьютерной платформе для генерации синтезированных сред может быть реализована универсальная структура данных и система обмена сообщениями для облегчения генерации синтезированных сред. 7 н. и 56 з.п. ф-лы, 24 ил.
1. Система для генерации синтезированных сред, содержащая:
сервер управления игрой, сконфигурированный генерировать синтезированную среду, с которой взаимодействуют несколько участников; и
множество масштабируемых серверов игровых подпроцессов, причем это множество масштабируемых серверов игровых подпроцессов включает в себя масштабируемый сервер игрового подпроцесса, сконфигурированный реализовывать игровой подпроцесс, который представляет собой одно из процесса, связанного с физикой, процесса искусственного интеллекта и процесса обработки транзакций, и формировать результат игрового подпроцесса для сервера управления игрой в зависимости от наличия потребности в игровом подпроцессе,
при этом сервер управления игрой и масштабируемый сервер игрового подпроцесса расположены в распределенной сетевой архитектуре.
2. Система по п.1, дополнительно содержащая главный сервер масштабирования, сконфигурированный управлять реализацией масштабируемого сервера игрового подпроцесса в ответ на потребность в игровом подпроцессе.
3. Система по п.1, в которой синтезированной средой является персистентный мир.
4. Система по п.1, в которой сервер управления игрой дополнительно сконфигурирован видоизменять взаимодействие участника с синтезированной средой в сервере управления игрой, а не в клиенте.
5. Система по п.1, дополнительно содержащая систему обмена сообщениями, сконфигурированную передавать сообщения, включающие в себя универсальную структуру данных, которая сконфигурирована для встраивания данных в узел.
6. Система по п.5, в которой узел дополнительно содержит один или большее количество из сервера управления игрой, масштабируемого сервера игрового подпроцесса, базы данных и клиента.
7. Система по п.5, в которой система обмена сообщениями сконфигурирована передавать подмножество данных, связанных с универсальной структурой данных на стороне сервера, в ответ на то, что клиентом указан факт видоизменения синтезированной среды.
8. Система по п.5, дополнительно содержащая схему управления экземплярами реализации, сконфигурированную обеспечивать узлу возможность реализовать данные в универсальной структуре данных.
9. Система по п.5, дополнительно содержащая множество интерфейсов универсальных сообщений, каждый из которых сконфигурирован предоставлять данные в универсальной структуре данных в форме, пригодной для использования узлом.
10. Система по п.5, в которой универсальная структура данных относится к классу объектно-ориентированного языка программирования.
11. Система по п.5, дополнительно содержащая множество интерфейсов универсальных сообщений, каждый из которых сконфигурирован предоставлять данные в универсальной структуре данных без преобразования универсальной структуры данных в компоновку данных, пригодную для использования узлом.
12. Система по п.11, в которой каждый из упомянутого множества интерфейсов универсальных сообщений сконфигурирован обнаруживать, действительно ли каждое из сообщений предназначено для узла.
13. Система по п.5, дополнительно содержащая множество интерфейсов универсальных сообщений, по меньшей мере один из которых сконфигурирован форматировать универсальную структуру данных в независимом от компьютерной платформы формате.
14. Система по п.13, в которой независимый от компьютерной платформы формат включает в себя формат, определяемый расширяемым языком разметки.
15. Система по п.1, дополнительно содержащая множество серверов управления игрой, включающее в себя упомянутый сервер управления игрой.
16. Система по п.15, в которой по меньшей мере два из упомянутого множества серверов управления игрой сконфигурированы осуществлять доступ к квази-агрегированному пространству процесса как к отдельным пространствам процесса.
17. Система по п.15, в которой по меньшей мере один из упомянутого множества масштабируемых серверов игровых подпроцессов содержит сервер обработки транзакций, сконфигурированный выполнять элементарную транзакцию совместно с квази-агрегированным пространством процесса, которое действует как общее пространство процесса.
18. Система для генерации синтезированных сред, содержащая:
платформу генерации синтезированных сред, сконфигурированную генерировать синтезированную среду, с которой взаимодействуют участники, в распределенной серверной архитектуре, причем платформа генерации синтезированных сред содержит
по меньшей мере один сервер управления игрой, сконфигурированный исполнять команды для генерации синтезированной среды;
сервер событий, сконфигурированный вводить динамическое информационное содержимое в по меньшей мере часть синтезированной среды, по существу, одновременно с исполнением упомянутых команд; и
систему универсальных объектов, каждый из которых включает в себя универсальную структуру данных, причем по меньшей мере один из этих универсальных объектов сконфигурирован обеспечивать динамическое информационное содержимое.
19. Система по п.18, в которой сервер событий сконфигурирован вводить динамическое информационное содержимое без изменения объектного кода, образующего упомянутые команды.
20. Система по п.18, в которой система универсальных объектов устраняет необходимость повторной компиляции упомянутых команд во время введения динамического информационного содержимого.
21. Система по п.18, в которой упомянутый по меньшей мере один сервер управления игрой сконфигурирован генерировать динамическое информационное содержимое без перезагрузки компьютера.
22. Система по п.18, дополнительно содержащая базу данных, содержащую:
вставляемый объект, содержащий вставляемые данные для реализации динамического информационного содержимого, и
код сокета, связанный с подмножеством команд для генерации упомянутой части синтезированной среды,
при этом код сокета сконфигурирован для реализации динамических данных для визуализации динамического информационного содержимого применительно к этой части синтезированной среды.
23. Система по п.18, в которой сервер событий дополнительно сконфигурирован вводить динамическое информационное содержимое в ответ на заранее заданное инициирующее событие.
24. Система по п.18, в которой платформа генерации синтезированных сред содержит:
множество серверов управления игрой, серверов игровых подпроцессов и баз данных, сконфигурированных генерировать синтезированную среду;
распределенную сетевую архитектуру, сконфигурированную распространять сообщения среди упомянутого множества серверов управления игрой, серверов игровых подпроцессов и баз данных; и
множество интерфейсов универсальной структуры данных, каждый из которых сконфигурирован реализовывать данные в универсальных структурах данных, согласно форматированию в этих сообщениях.
25. Система для генерации создаваемых посредством компьютера синтезированных сред, содержащая:
множество серверов игровых подпроцессов, включающих в себя: сервер физики, сервер искусственного интеллекта и сервер обработки транзакций;
главный сервер масштабирования, сконфигурированный для добавления дополнительного сервера игрового подпроцесса, причем этот дополнительный сервер игрового подпроцесса является одним из сервера физики, сервера искусственного интеллекта и сервера обработки транзакций;
множество серверов управления игрой, каждый из которых сконфигурирован генерировать синтезированную среду, с которой взаимодействуют участники; и
базу данных, сконфигурированную хранить данные для генерации синтезированной среды, причем каждый из упомянутого множества серверов управления игрой, каждый из упомянутого множества серверов игровых подпроцессов и база данных организованы в виде распределенной сети,
при этом упомянутое множество серверов управления игрой, упомянутое множество серверов игровых подпроцессов и база данных реализуют универсальную структуру данных, согласно форматированию в сообщениях, которые распространяются в пределах по меньшей мере части распределенной сети.
26. Система по п.25, дополнительно содержащая:
сервер видимости, сконфигурированный обнаруживать пересечение дальности видимости, которой обладает участник, с дальностью, на которой можно увидеть объект, для определения того, что объект виден участнику; и
сервер экземпляров реализации, сконфигурированный уменьшать нагрузку при обработке физических процессов для группы участников, которую, в противном случае, выполнял бы сервер физики.
27. Система по п.25, дополнительно содержащая пользовательский сервер, сконфигурированный связывать множество клиентов, запрашивающих взаимодействие с синтезированной средой, с множеством серверов управления игрой.
28. Система по п.25, дополнительно содержащая:
сервер исправляющих дополнений к программам, сконфигурированный передать части обновленных данных клиентам во время взаимодействий с системой,
при этом непринятые части обновленных данных замещаются данными, заданными по умолчанию, для генерации цифровых объектов-заместителей.
29. Способ обеспечения проведения глобальных многопользовательских онлайн-игр, содержащий этапы, на которых:
инициализируют игровые подпроцессы независимо от процессов управления игрой;
генерируют синтезированную среду посредством коллективного взаимодействия игровых подпроцессов и процессов управления игрой; и
реализуют процессы управления игрой для генерации по меньшей мере части синтезированной среды в течение периодов простоя одного или боле из упомянутых игровых подпроцессов.
30. Способ по п.29, дополнительно содержащий этап, на котором осуществляют обмен сообщениями между игровыми подпроцессами и процессами управления игрой для генерации синтезированной среды.
31. Способ по п.29, дополнительно содержащий этап, на котором реализуют один или большее количество серверов физики в качестве подмножества игровых подпроцессов, причем процессы управления игрой сконфигурированы функционировать независимо от этих одного или большего количества серверов физики.
32. Способ по п.31, дополнительно содержащий этап, на котором реализуют серверный процесс искусственного интеллекта отдельно от упомянутых одного или от большего количества серверов физики.
33. Способ по п.29, в котором при генерации синтезированной среды:
реализуют по меньшей мере два различных процесса управления игрой для по меньшей мере двух различных клиентов; и
предоставляют этим по меньшей мере двум различным клиентам возможность доступа к синтезированной среде, при этом любой из этих по меньшей мере двух различных клиентов может осуществлять доступ к синтезированной среде через любой из упомянутых по меньшей мере двух различных процессов управления игрой.
34. Способ по п.29, дополнительно содержащий этап, на котором генерируют квази-агрегированное пространство процесса.
35. Способ по п.34, в котором при генерации квази-агрегированного пространства процесса:
генерируют общее пространство процесса, в котором могут взаимодействовать участники, для первого подмножества данных, при этом участники являются связанными с по меньшей мере двумя различными серверами управления игрой; и
генерируют отдельные пространства процесса для участников для второго подмножества данных.
36. Способ по п.35, в котором первое подмножество данных включает в себя данные, связанные с транзакциями, а второе подмножество данных включает в себя данные, связанные с геометрией.
37. Способ по п.34, дополнительно содержащий этап, на котором осуществляют управление транзакциями между участниками таким образом, чтобы обеспечить гарантию того, что транзакции являются элементарными.
38. Способ по п.29, дополнительно содержащий этап, на котором масштабируют количество серверов подпроцесса независимо от количества серверов процесса управления игрой.
39. Способ по п.38, дополнительно содержащий этап, на котором масштабируют количество серверов подпроцесса в зависимости от потребности в игровых подпроцессах.
40. Способ по п.38, дополнительно содержащий этапы, на которых:
осуществляют мониторинг нагрузки на серверы процесса управления игрой; и
масштабируют количество серверов подпроцесса в зависимости от нагрузки.
41. Считываемый посредством компьютера носитель информации, предназначенный для обеспечения проведения глобальных многопользовательских онлайн-игр, при этом считываемый посредством компьютера носитель информации содержит исполняемые команды для:
инициализации процесса управления игрой независимо от одного или большего количества игровых подпроцессов;
обмена сообщениями через сеть между сервером, реализующим процесс управления игрой, и серверами, реализующими эти один или большее количество игровых подпроцессов, для генерации синтезированной среды; и
выполнения процесса управления игрой для генерирования по меньшей мере части синтезированной среды независимо от того, что один или более из серверов, реализующих упомянутые один или большее количество игровых подпроцессов, находятся в состоянии простоя.
42. Считываемый посредством компьютера носитель информации по п.41, в котором исполняемые команды для обмена сообщениями содержат исполняемые команды для:
установления связи между сервером, реализующим процесс управления игрой, и подмножеством клиентов; и
обеспечения взаимодействий между синтезированной средой и этим подмножеством клиентов, причем данное подмножество клиентов и другие подмножества клиентов, связанные с другими серверами, реализующими другие процессы управления игрой, взаимодействуют с синтезированной средой, по существу, одновременно.
43. Считываемый посредством компьютера носитель информации по п.41, в котором исполняемые команды для выполнения процесса управления игрой содержат исполняемые команды для:
определения части данных, связанных с измененной синтезированной средой; и
генерации сжатого универсального сообщения для передачи клиенту, причем это сжатое универсальное сообщение содержит указание того, что упомянутая часть данных изменена.
44. Считываемый посредством компьютера носитель информации по п.43, в котором исполняемые команды для генерации сжатого универсального сообщения дополнительно содержат исполняемые команды для:
генерации объекта, содержащего множество значений свойств, сформированных в виде вектора;
определения того, что значение свойства из этого множества значений свойств было изменено, для идентификации измененного значения свойства; и
формирования сжатого универсального сообщения для включения измененного значения свойства и индекса в состав этого вектора.
45. Способ обмена информацией между узлами в распределенной сетевой архитектуре для обеспечения проведения глобальных многопользовательских онлайн-игр, содержащий этапы, на которых:
генерируют универсальные сообщения, соответствующие универсальной структуре данных, сконфигурированной для обмена данными об игре между узлами в платформе генерации синтезированных сред, причем эти узлы включают в себя подмножества узлов, сконфигурированных обеспечивать распределенные процессы для платформы генерации синтезированных сред, при этом распределенные процессы содержат процесс управления игрой, игровой подпроцесс и процесс, связанный с базами данных;
осуществляют широковещательную передачу по меньшей мере подмножества универсальных сообщений в подмножество узлов для видоизменения синтезированной среды; и
видоизменяют по меньшей мере часть синтезированной среды в ответ на распределенный процесс, выполняемый в узле.
46. Способ по п.45, в котором при видоизменении части синтезированной среды вводят динамическое информационное содержимое в синтезированную среду.
47. Способ по п.45, в котором при генерации универсальных сообщений извлекают данные об игре из компоновки данных, соответствующей независимому от платформы формату.
48. Способ по п.45, в котором при генерации универсальных сообщений извлекают данные об игре из компоновки данных, соответствующей формату, который определен расширяемым языком разметки.
49. Способ по п.48, дополнительно содержащий этап, на котором реализуют данные об игре согласно объектно-ориентированной структуре класса.
50. Способ по п.45, дополнительно содержащий этапы, на которых:
осуществляют доступ к схеме для определения факта использования узла; и
конфигурируют узел таким образом, чтобы он был сопряжен с универсальной структурой данных, без изменения исполняемого кода для обмена данными об игре между универсальной структурой данных и другой компоновкой данных, связанной с узлом.
51. Способ по п.50, дополнительно содержащий этап, на котором объединяют данные об игре, содержащиеся в универсальном сообщении из подмножества универсальных сообщений, с узлом на основании схемы.
52. Способ по п.45, дополнительно содержащий этап, на котором обнаруживают, что узел является совместимым с универсальным сообщением из подмножества универсальных сообщений, на основании атрибута узла, связанного с универсальным сообщением, причем этот атрибут узла указывает упомянутый узел.
53. Способ по п.45, в котором при видоизменении части синтезированной среды вводят динамическое информационное содержимое в синтезированную среду.
54. Способ по п.45, дополнительно содержащий этап, на котором передают подмножество универсальных сообщений из процесса управления игрой либо в игровой подпроцесс, либо в процесс, связанный с базами данных, либо в оба из них.
55. Считываемый посредством компьютера носитель информации для генерации универсального сообщения применительно к синтезированным средам, при этом считываемый посредством компьютера носитель информации содержит исполняемые команды для:
приема данных для транспортировки в платформу генерации синтезированных сред, причем платформа генерации синтезированных сред включает в себя множество узлов, связанных между собой сетью для образования синтезированной среды, при этом данное множество узлов включает в себя серверы игровых подпроцессов, серверы баз данных и серверы управления игрой;
форматирования упомянутых данных в соответствии с универсальной структурой данных, причем эта универсальная структура данных является пригодной для использования упомянутым множеством узлов для осуществления связи с платформой генерации синтезированных сред;
генерации универсального сообщения таким образом, чтобы оно включало в себя универсальную структуру данных; и
передачи универсального сообщения.
56. Считываемый посредством компьютера носитель информации по п.55, в котором исполняемые команды для генерации универсального сообщения содержат исполняемые команды для форматирования данных в соответствии с универсальной структурой данных, имеющей независимый от платформы формат.
57. Считываемый посредством компьютера носитель информации по п.55, в котором исполняемые команды для генерации универсального сообщения содержат исполняемые команды для генерации объекта класса свойств, включающего в себя упомянутые данные.
58. Считываемый посредством компьютера носитель информации по п.55, в котором исполняемые команды для приема данных для транспортировки содержат исполняемые команды для извлечения этих данных из компоновки данных, которая определена расширяемым языком разметки.
59. Считываемый посредством компьютера носитель информации по п.58, в котором исполняемые команды для генерации универсального сообщения дополнительно содержат исполняемые команды для:
преобразования упомянутых данных из упомянутой компоновки данных в последовательную форму; и
генерации объекта класса свойств, включающего в себя эти данные.
60. Считываемый посредством компьютера носитель информации по п.59, дополнительно содержащий исполняемые команды для пакетирования объекта класса свойств.
61. Считываемый посредством компьютера носитель информации по п.55, в котором исполняемые команды для генерации универсального сообщения, включающего в себя универсальную структуру данных, дополнительно содержат исполняемые команды для генерации сжатого универсального сообщения.
62. Считываемый посредством компьютера носитель информации по п.61, в котором исполняемые команды для генерации сжатого универсального сообщения содержат исполняемые команды для:
определения того, что часть данных из упомянутых данных была изменена, для идентификации измененной части данных;
определения атрибута для измененной части данных; и
формирования сжатого универсального сообщения, включающего в себя ключ, указывающий атрибут для измененной части данных и значение атрибута.
63. Считываемый посредством компьютера носитель информации по п.61, в котором исполняемые команды для генерации сжатого универсального сообщения содержат исполняемые команды для:
генерации объекта, включающего в себя множество значений свойства, сформированных в виде вектора;
определения того, что значение свойства из этого множества значений свойства было изменено, для идентификации измененного значения свойства; и
формирования сжатого универсального сообщения для включения в состав вектора измененного значения свойства и индекса.
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
Способ приготовления мыла | 1923 |
|
SU2004A1 |
РАСПРЕДЕЛЕННАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА И КОМПЬЮТЕР-КЛИЕНТ ЭТОЙ СИСТЕМЫ | 1995 |
|
RU2142158C1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
US 6892230 B1, 10.05.2005. |
Авторы
Даты
2012-12-10—Публикация
2008-03-06—Подача