Код документа: RU2557522C2
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ (ЗАЯВКИ)
Эта заявка притязает на приоритет предварительной заявки США №61/482162, поданной 3 мая 2011 года, которая включена сюда посредством ссылки в полном объеме.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Область техники
Настоящее изобретение в целом относится к распределенным интерактивным имитационным моделям, например таким, как применяемые в военных тренажерах и многопользовательских компьютерных играх, отражающие согласованный виртуальный мир через совокупность станций оператора/игрока.
Описание предшествующего уровня техники
Распределенное интерактивное имитационное моделирование является популярной формой для современных видеоигр, но берет истоки в военных имитационных моделях, таких как SIMNET в 1980-х и 1990-х годах. В распределенных интерактивных имитационных моделях виртуальный мир создается и распределяется среди множества компьютеров, каждый из которых управляется по меньшей мере одним пользователем с помощью органов управления и по меньшей мере одного дисплея.
В некоторых имитационных моделях станции совместно используют распределенные часы, обеспечивающие единое отсчетное время для каждой, например, применяется известный протокол сетевого времени («NTP»). Однако это не обязательно. Распределенная имитационная модель прогрессирует, как правило (но не обязательно), периодически (например, делает 30 обновлений в секунду), и, как правило (хотя и не обязательно) с той же скоростью на каждой станции (например, другие станции могут работать с 60 обновлениями в секунду).
Станции также совместно используют модель окружающей среды, включая воздушное пространство и местность. Местность может быть статической, включая ландшафты, здания (которые могут включать интерьеры) и водоемы. Иначе, местность может быть не статической: например, некоторые или все здания могут быть повреждаемыми, ландшафты могут быть “рубцеватыми” (например, с отпечатками шин, кратерами или следами обгорания), и тому подобное. В этой окружающей среде размещаются моделируемые динамические объекты, включая, например, транспортные средства, людей, животных. Оживление этих динамических объектов приводит к появлению живого мира имитационной модели.
В таких имитационных моделях каждая станция изначально отвечает за управление одним или более моделируемыми объектами. Для каждого объекта, управляемого станцией, детализированная модель вычисляется для каждого локального приращения времени для определения его. поведения. Например, детализированная модель для вездехода может принять управление рулем и педалями от оператора (как правило, один локальный объект на управляющую станцию). Детализированная модель вездехода может выполнять вычисления для моделирования автоматической трансмиссии, взаимодействия системы подвески вездехода с местностью, силы сцепления между шинами и поверхностью местности, и, возможно, расхода топлива, перегрева двигателя или других деталей и моделируемых неисправностей. Вообще, пока это критично для достаточного реализма в обмен на производительность, моделирование на этом уровне детализации должно вычисляться только управляющей станцией с распространением итоговых данных детализированной модели на другие станции в распределенной интерактивной имитационной модели.
Следует отметить, что оператор вездехода может быть человеком-игроком или может быть программой искусственного интеллекта (“ИИ”), моделируя союзника или врага, если другой человек-игрок отсутствует или не предусмотрен. При использовании ИИ, он по сути является только дополнительным компонентом детализированной модели; управляющая станция поддерживает состояние и выполняет пошаговое моделирование, требуемое для вездехода - вождение ИИ, но удаленные станции только получают итоговые данные.
В некоторых случаях моделируемые объекты могут быть сложными и суставчатыми (например, человеком, животным или чужеродным существом), требующими сложной анимации кинематической моделью, но другие объекты могут быть относительно простыми (например, ящик или снаряд), в этом случае может быть использована более простая баллистическая модель.
Тем не менее существуют проблемы совместного использования итоговых данных детализированного моделирования, которые также называются обновлениями, от управляющей станции. Например, требуется время для распространения обновлений на удаленные станции, которые не управляют объектом; и из-за этой задержки обновление модели всегда в некоторой степени является “устаревшей” информацией. В имитационной модели, где распределенные часы модельного времени правильно установлены на всех станциях, любое обновление будет привязано по времени к некоторому модельному времени в прошлом, хотя в целом будет недавним. Однако система жесткого хронометража может внести резонансы в модели, что приведет к визуальным артефактам. Кроме того, поддержание точной синхронизации иногда является источником излишней сложности и иногда возникновения ошибки. Кроме того, в сети с низкой надежностью обновления могут быть потеряны или могут запаздывать и поступать со случайной задержкой. Кроме того, ограничения полосы пропускания и количества объектов в имитационной модели могут ограничить количество обновлений, которые могут быть отправлены для каждого объекта, так что обновления не доступны для удаленных станций так часто, как управляющая станция вычисляет детализированную имитационную модель.
На каждой станции на дисплее для игрока отображается виртуальный мир. Дисплей, как правило, обновляется чаще, чем поступают обновления удаленно управляемых объектов, при этом изменение отображения удаленно управляемых объектов производится только тогда, когда поступающие обновления удаленно управляемых объектов кажутся прерывистыми и нереалистичными. Для снижения этого эффекта обновления объектов привязываются ко времени, которому они соответствуют, а получатель обновлений может периодически экстраполировать объект для отображения после обновления.
Для достижения этого, обновление должно отражать состояние объекта в конкретный момент времени. Состояние может включать, например, положение и ориентацию объекта (как правило, хотя и не обязательно, включая шесть осей координат: X, Y, Z, крен, тангаж и рыскание), а также другие свойства, которые имеют различные значения (например, включены ли фары, задымлен ли двигатель автомобиля, время, через которое взорвется граната). Конкретный момент времени соответствует тому, когда состояние было текущим.
То, что включает состояние объекта, зависит от природы объекта. Для сложных суставчатых объектов, например животного, состояние может включать суставы скелета объекта или индекс в цикле анимации, обобщающий такие суставы.
В некоторых случаях объект может иметь несколько режимов функционирования, например, когда объект “животное” живой, он может приводиться в движение в цикле анимации, но когда животное умирает, например, в охотничьей имитационной модели, режим функционирования суставчатого тела переходит в расслабленную кинематическую модель. Например, тело обмякает, хотя ограничения, накладываемые скелетом, остаются под контролем. Для тех объектов, которые имеют различные режимы управления, состояние может дополнительно включать определение того, какой режим управления используется.
Здесь «состояние» может включать многие свойства, отличные от простого физического состояния, ориентацию (вращение). Некоторые из них, такие как индекс анимационных циклов, циклов ходьбы и т.д., могут быть эффективно экстраполированы для предсказания. Однако некоторые свойства, например, включены ли фары автомобиля или подается ли звуковой сигнал, только заведомо экстраполируются. Например, когда горят фары, они продолжают гореть, пока обновление не сообщит, что они выключаются.
Состояние может также включать информацию, полезную для экстраполирования последующих состояний с повышенной точностью, например, скоростей на идущих в прямом направлении или поворачивающихся осях и ускорений на идущих в прямом направлении или поворачивающихся осях. Тогда как экстраполяция может быть сделана без таких указаний, например, выведением скорости как разницы в положении за последние два обновления, деленной на разницу во времени двух последних обновлений, чтобы предоставление точных скоростей или ускорений могло улучшить результаты.
Здесь “состояние” может включать информацию о состоянии, и/или один или более результатов вычисления, полученных в отношении состояния.
Для каждого цикла моделирования для объекта, управляемого станцией, возникает новое состояние вследствие ввода данных оператором и выполнения детализированной модели, включающей значения скорости и/или ускорения, если это предусмотрено для любой из различных степеней свободы объекта.
Однако состояние объекта отсылается управляющей станцией на каждую из остальных станций реже, чем один раз за цикл. Например, если управляющая станция обновляет модель объекта тридцать раз в секунду, обновления могут быть отосланы другим станциям только пять раз в секунду или даже еще реже (например, два раза в секунду), если объект малозначителен, отдален, исключительно устойчив или только медленно изменяется, или если имеется много объектов для обновления и/или пропускная способность каналов связи сильно ограничена.
На основе обновлений, полученных от управляющей станции, способы экстраполяции обеспечивают наилучшую доступную информацию о состоянии удаленно управляемого объекта и наилучшую доступную информацию для предсказания его движения (по меньшей мере в ближайшем будущем). Тем не менее резкие прерывания в видимом движении могут возникать, если экстраполированные состояния в основном превосходят или не достигают состояния, описываемого в следующем обновлении. Часто это происходит потому, что оператор сделал неожиданный поворот, зажал тормоз, уклонился или свернул, чтобы избежать столкновения и т.д., чего экстраполяция предшествующего обновления не предусматривает.
В терминах моделирования обеспечение наилучшей оценки текущего состояния объекта является работой “предсказывающего устройства”, и это работа “корректирующего устройства” - скрывать заметные прерывания экстраполированных состояний максимально эстетичным способом.
К сожалению, предсказывающие корректирующие системы, применяемые на сегодняшний день, не отвечают требованиям эстетичности, внешне реалистичного поведения для большого множества типов объектов или для того же типа объекта, но при самых разнообразных условиях. В результате возникают непредсказуемо отрывистые движения или поведение удаленно управляемого объекта. Это может затруднить прицеливание и сделать его невозможным для имитационных моделей, где прицеливание и стрельба по объектам являются ключевыми задачами. Также, это может сделать сопровождение удаленно управляемых объектов затрудненным или невозможным для ездящих или летающих имитационных моделей. Соответственно, существует потребность в лучшем способе воспроизведения движений удаленно управляемого объекта в распределенной интерактивной имитационной модели. Настоящее изобретение реализует эти и другие преимущества, которые станут очевидными из последующего подробного описания и прилагаемых чертежей.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Варианты воплощения включают способ, в основном, одновременного воспроизведения распределенной имитационной модели на нескольких вычислительных устройствах. Совокупность вычислительных устройств включает первое вычислительное устройство, выполняющее первую часть распределенного моделирования. Первая часть управляет объектом. Совокупность вычислительных устройств включает второе вычислительное устройство, которое выполняет вторую часть распределенного моделирования. Вторая часть генерирует первое визуальное представление объекта, отображаемого на первом устройстве отображения. Второе вычислительное устройство включает визуальное состояние, связанное с объектом и первым визуальным представлением. Визуальное состояние включает по меньшей мере одно значение параметра. Второе вычислительное устройство получает предыдущее обновление от первого вычислительного устройства, включая предыдущее состояние, связанное со вторым визуальным представлением объекта. Второе вычислительное устройство генерирует предсказанное состояние объекта, основанное по меньшей мере частично на предыдущем состоянии. Предсказанное состояние включает по меньшей мере одну скорость и по меньшей мере одно значение параметра. Второе вычислительное устройство получает обновление, включая новое состояние, связанное с третьим визуальным представлением объекта от первого вычислительного устройства. Новое состояние включает по меньшей мере одно значение параметра. Второе вычислительное устройство устанавливает по меньшей мере одно значение параметра предсказанного состояния равным по меньшей мере одному значению параметра нового состояния и определяет отклонение между по меньшей мере одним значением параметра предсказанного состояния и по меньшей мере одним значением параметра визуального состояния. Если отклонение больше, чем первое пороговое значение, второе вычислительное устройство изменяет по меньшей мере одну скорость из предсказанного состояния. Если отклонение больше, чем второе пороговое значение, второе вычислительное устройство изменяет по меньшей мере одно значение параметра визуального состояния, основанное по меньшей мере частично на по меньшей мере одном значении параметра предсказанного состояния. Второе вычислительное устройство предоставляет четвертое визуальное представление объекта, основанное по меньшей мере частично на визуальном состоянии и отображает четвертое визуальное представление объекта на первом устройстве отображения.
Третье визуальное представление объекта может быть отображено первым вычислительным устройством на втором устройстве отображения, а четвертое визуальное представление объекта, отображаемое вторым вычислительным устройством на первом устройстве отображения в основном одновременно с третьим визуальным представлением объекта, отображаемым первым вычислительным устройством на втором устройстве отображения.
В некоторых вариантах воплощения предсказанное состояние является первым предсказанным состоянием, а отклонение является первым отклонением. В таких вариантах воплощения второе вычислительное устройство может генерировать второе предсказанное состояние (включая по меньшей мере одно значение параметра), основанное по меньшей мере частично по меньшей мере на одной скорости предсказанного состояния. Когда второе отклонение больше, чем второе пороговое значение, второе вычислительное устройство может изменить по меньшей мере одно значение параметра визуального состояния, основанное по меньшей мере частично по меньшей мере на одном значении параметра второго предсказанного состояния. В таких вариантах воплощения второе вычислительное устройство предоставляет пятое визуальное представление объекта, основанное по меньшей мере частично, на визуальном состоянии, и отображает пятое визуальное представление объекта на первом устройстве отображения.
Второе вычислительное устройство может получить первое пороговое значение от запоминающего устройства, доступного для второго вычислительного устройства. Объект может иметь тип, а первое пороговое значение может храниться в таблице, хранимой в запоминающем устройстве. В таких вариантах воплощения, первое пороговое значение связано с типом объекта в таблице. В некоторых вариантах воплощения по меньшей мере одно значение параметра нового состояния включает по меньшей мере одну скорость и изменение по меньшей мере одной скорости предсказанного состояния включает получение значения удара, связанное с типом объекта, и вычисление по меньшей мере одной скорости предсказанного состояния как функции от значения удара, отклонения и по меньшей мере одной скорости нового состояния.
В некоторых вариантах воплощения по меньшей мере одно значение параметра визуального состояния включает по меньшей мере одну скорость и по меньшей мере одно значение параметра предсказанного состояния включает по меньшей мере одну скорость. В таких вариантах воплощения определение отклонения между по меньшей мере одним значением параметра предсказанного состояния и по меньшей мере одним значением параметра визуального состояния может включать определение отклонения между по меньшей мере одной скоростью предсказанного состояния и по меньшей мере одной скоростью визуального состояния. Если по меньшей мере одно значение параметра нового состояния включает по меньшей мере одну скорость, по меньшей мере одна скорость предсказанного состояния может быть установлена равной по меньшей мере одной скорости нового состояния.
В некоторых вариантах воплощения изменение по меньшей мере одного значения параметра визуального состояния, основанного по меньшей мере частично по меньшей мере на одном значении параметра предсказанного состояния, если отклонение больше, чем второе пороговое значение, включает в себя определение, является ли отклонение большим, чем третье пороговое значение, которое больше, чем второе пороговое значение. Если определено, что отклонение больше, чем третье пороговое значение, второе вычислительное устройство может установить по меньшей мере одно значение параметра визуального состояния равным по меньшей мере одному значению параметра предсказанного состояния.
Второе вычислительное устройство может определить усредненное состояние, если отклонение меньше, чем третье пороговое значение. Усредненное состояние может быть основано по меньшей мере частично по меньшей мере на одном значении параметра визуального состояния и по меньшей мере одном значении параметра предсказанного состояния. Усредненное состояние может включать по меньшей мере одно значение параметра, и по меньшей мере одно значение параметра визуального состояния может быть установлено равным по меньшей мере одному значению параметра усредненного состояния.
В некоторых вариантах воплощения по меньшей мере одно значение параметра визуального состояния включает по меньшей мере одно из: информации о положении и информации об ориентации, и по меньшей мере одно значение параметра предсказанного состояния включает по меньшей мере одно из: информации о положении и информации об ориентации. В таких вариантах воплощения определение отклонения между по меньшей мере одним значением параметра предсказанного состояния и по меньшей мере одним значением параметра визуального состояния может включать определение отклонения между по меньшей мере одним из: информации о положении и информации об ориентации предсказанного состояния и по меньшей мере одним из: информации о положении и информации об ориентации визуального состояния. Если по меньшей мере одно значение параметра нового состояния включает по меньшей мере одно из: информации о положении и информации об ориентации по меньшей мере одно из: информации о положении и информации об ориентации предсказанного состояния может быть установлено равным по меньшей мере одному из: информации о положении и информации об ориентации нового состояния.
Изменение по меньшей мере одного значения параметра визуального состояния, основанного по меньшей мере частично на по меньшей мере одном значении параметра предсказанного состояния, если отклонение больше, чем второе пороговое значение, может включать определение того, является ли отклонение большим, чем третье пороговое значение, где третье пороговое значение больше, чем второе пороговое значение. Если определено, что отклонение больше, чем третье пороговое значение по меньшей мере одно из: информации о положении и информации об ориентации визуального состояния может быть установлено равным по меньшей мере одному из: информации о положении и информации об ориентации предсказанного состояния.
Объект может иметь тип, а третье пороговое значение может быть сохранено в таблице и привязано к типу объекта в таблице. Второе вычислительное устройство может получить третье пороговое значение из таблицы.
Изменение по меньшей мере одного значения параметра визуального состояния, основанного по меньшей мере частично на по меньшей мере одном значении параметра предсказанного состояния, если отклонение больше, чем второе пороговое значение, может включать определение усредненного состояния, если отклонение меньше, чем третье пороговое значение. Усредненное состояние может быть основано по меньшей мере частично на по меньшей мере одном из: информации о положении и информации об ориентации визуального состояния и по меньшей мере одном из: информации о положении и информации об ориентации предсказанного состояния. В таких вариантах воплощения усредненное состояние включает по меньшей мере одно из: информации о положении и информации об ориентации. После того как усредненное состояние определено по меньшей мере одно из: информации о положении и информации об ориентации визуального состояния может быть установлено равным по меньшей мере одному из: информации о положении и информации об ориентации усредненного состояния.
Усредненное состояние может быть определено по меньшей мере частично на основе одного или более значений параметров, связанных с типом объекта, в вариантах воплощения, в которых объект имеет тип. Второе и третье пороговые значения могут быть сохранены в таблице и привязаны к типу объекта в таблице. В таких вариантах воплощения второе вычислительное устройство может получить второе и третье пороговое значение из таблицы.
По меньшей мере одно значение параметра нового состояния может включать режим управления объектом, и второе вычислительное устройство может выбирать по меньшей мере одно из: второго и третьего пороговых значений из совокупности первого и второго пороговых значений, основанных по меньшей мере частично на режиме управления объектом. Раздел(ы) может быть также основан по меньшей мере частично на типе объекта.
Изменение по меньшей мере одного значения параметра визуального состояния, основанного по меньшей мере частично по меньшей мере на одном значении параметра предсказанного состояния, если отклонение больше, чем второе пороговое значение, может включать определение локального состояния столкновения, и изменение визуального состояния на основе локального состояния столкновения. Если распределенная имитационная модель включает ландшафт, второе вычислительное устройство может повторить определение локального состояния столкновения и изменение визуального состояния на основе локального состояния столкновения, пока объект не проникнет глубоко в ландшафт.
Часть распределенной имитационной модели, воспроизводящаяся на первом вычислительном устройстве, может управлять частью из совокупности объектов и отправлять обновления, связанные с по меньшей мере одним объектом части совокупности объектов, на второе вычислительное устройство. В таких вариантах воплощения второе вычислительное устройство получает от первого вычислительного устройства предыдущее обновление, включая информацию о состоянии, связанную с первым объектом части совокупности объектов, управляемых первым вычислительным устройством. Второе вычислительное устройство генерирует и отображает первое визуальное представление первого объекта, основанное по меньшей мере частично на информации о состоянии, связанной с первым объектом. Второе вычислительное устройство включает информацию о визуальном состоянии, связанную с первым объектом и первое визуальное представление. Второе вычислительное устройство получает новое обновление, включающее информацию о состоянии от первого вычислительного устройства, причем новое обновление получено после предыдущего обновления. Второе вычислительное устройство определяет информацию о предсказанном состоянии для первого объекта на основе по меньшей мере частично информации о состоянии из предыдущего обновления. Информация о предсказанном состоянии включает по меньшей мере одно значение скорости. Второе вычислительное устройство определяет, связана ли информация о состоянии из нового обновления с первым объектом. Если информация о состоянии из нового обновления связана с первым объектом, второе вычислительное устройство устанавливает по меньшей мере часть информации о предсказанном состоянии равной по меньшей мере части информации о состоянии из нового обновления. Второе вычислительное устройство определяет отклонение между информацией о визуальном состоянии и информацией о предсказанном состоянии. Если отклонение больше, чем первое пороговое значение, второе вычислительное устройство изменяет по меньшей мере одно значение скорости из информации о предсказанном состоянии, а если отклонение больше, чем второе пороговое значение, второе вычислительное устройство изменяет информацию о визуальном состоянии на основе по меньшей мере частично информации о предсказанном состоянии. Второе вычислительное устройство предоставляет второе визуальное представление объекта, основанное по меньшей мере частично на информации о визуальном состоянии, и отображает второе визуальное представление объекта на устройстве отображения.
В некоторых вариантах воплощения информация о предсказанном состоянии является первой информацией о предсказанном состоянии, а отклонение является первым отклонением. В таких вариантах воплощения второе вычислительное устройство генерирует вторую информацию о предсказанном состоянии, основанную по меньшей мере частично на по меньшей мере одной скорости из первой информации о предсказанном состоянии, и определяет второе отклонение между информацией о визуальном состоянии и второй информацией о предсказанном состоянии. Если второе отклонение больше, чем второе пороговое значение, второе вычислительное устройство изменяет информацию о визуальном состоянии на основе по меньшей мере частично второй информации о предсказанном состоянии. Второе вычислительное устройство предоставляет третье визуальное представление объекта, основанное по меньшей мере частично на информации о визуальном состоянии, и отображает третье визуальное представление объекта на устройстве отображения.
В некоторых вариантах воплощения часть распределенной имитационной модели, воспроизводящаяся на втором вычислительном устройстве, управляет второй частью из совокупности объектов. В таких вариантах воплощения второе вычислительное устройство отправляет обновления, связанные по меньшей мере с одним объектом из второй части совокупности объектов, на первое вычислительное устройство. Второе вычислительное устройство может получать вводимую пользователем информацию через устройство пользовательского интерфейса, которое изменяет состояние выбранного объекта из второй части совокупности объектов. Второе вычислительное устройство может создать обновление, включая информацию о состоянии, связанную с выбранным объектом, и отправлять обновление, связанное с выбранным объектом, первому вычислительному устройству. В некоторых вариантах воплощения сервер подключен ко множеству вычислительных устройств в сети. В таких вариантах воплощения второе вычислительное устройство может отправлять обновления, связанные по меньшей мере с одним объектом из второй части совокупности объектов на сервер для рассылки на другие устройства из совокупности вычислительных устройств.
Некоторые варианты воплощения включают способ, в котором второе вычислительное устройство получает предыдущее обновление от первого вычислительного устройства. Предыдущее обновление включает информацию о состоянии, связанную с первым объектом из части совокупности объектов, управляемых первым вычислительным устройством. Второе вычислительное устройство генерирует и отображает первое визуальное представление первого объекта, основанное по меньшей мере частично на информации о состоянии, связанной с первым объектом. Информация о визуальном состоянии связана с первым объектом и первым визуальным представлением. Второе вычислительное устройство получает новое обновление от первого вычислительного устройства после предыдущего обновления. Новое обновление включает информацию о состоянии. Второе вычислительное устройство определяет информацию о предсказанном состоянии для первого объекта, основываясь по меньшей мере частично на информации о состоянии из предыдущего обновления. Второе вычислительное устройство определяет, связана ли информация о состоянии из нового обновления с первым объектом, и, если информация о состоянии из нового обновления связана с первым объектом, второе вычислительное устройство устанавливает по меньшей мере часть информации о предсказанном состоянии равной по меньшей мере части информации о состоянии из нового обновления. Второе вычислительное устройство определяет отклонение между информацией о визуальном состоянии и информацией о предсказанном состоянии. Если отклонение больше, чем первое пороговое значение, второе вычислительное устройство устанавливает по меньшей мере часть информации о визуальном состоянии равной по меньшей мере части информации о предсказанном состоянии. Если отклонение меньше, чем первое пороговое значение, и больше, чем второе пороговое значение, второе вычислительное устройство определяет информацию об усредненном состоянии на основании по меньшей мере частично информации о визуальном состоянии и информации о предсказанном состоянии и устанавливает по меньшей мере часть информации о визуальном состоянии равной по меньшей мере части информации о усредненном состоянии. Первое пороговое значение является большим, чем второе пороговое значение. Второе вычислительное устройство предоставляет второе визуальное представление первого объекта, основанное по меньшей мере частично на информации о визуальном состоянии; и отображает второе визуальное представление первого объекта на устройстве отображения.
Некоторые варианты воплощения включают способ для использования с совокупностью вычислительных устройств, соединенных друг с другом по сети, и каждое из которых воспроизводит часть распределенной имитационной модели, включающей совокупность объектов. Часть, воспроизводящаяся на первом из совокупности вычислительных устройств, управляющая первой частью совокупности объектов и отправляющая обновления, связанные по меньшей мере с одним объектом из первой части совокупности объектов, на второе из совокупности вычислительных устройств. Часть, воспроизводимая на втором вычислительном устройстве, управляющем второй частью совокупности объектов и отправляющем обновления, связанные по меньшей мере с одним объектом из второй части совокупности объектов первому вычислительному устройству. Второе вычислительное устройство предоставляет первое визуальное представление первого объекта первой части совокупности объектов и первое визуальное представление второго объекта второй части совокупности объектов. Первое визуальное представление первого объекта связано с информацией о визуальном состоянии. Второе вычислительное устройство получает данные ввода посредством пользовательского устройства ввода, изменяя первое визуальное представление второго объекта, а иногда получает обновления от первого вычислительного устройства, применимые на втором вычислительном устройстве для изменения первого визуального представления первого объекта. Каждое из обновлений, получаемых от первого вычислительного устройства, включает информацию о состоянии, связанную с первым объектом. Так как первое визуальное представление второго объекта изменяется, второе вычислительное устройство время от времени отправляет обновления первому вычислительному устройству по сети. Обновления включают информацию о состоянии, относящуюся ко второму объекту, применимую на первом вычислительном устройстве для изменения второго визуального представления второго объекта. Второе вычислительное устройство время от времени генерирует информацию о предсказанном состоянии для первого объекта, включающую по меньшей мере одну скорость. После каждого обновления, полученного вторым вычислительным устройством, второе вычислительное устройство устанавливает информацию о предсказанном состоянии равной информации о состоянии из обновления. Второе вычислительное устройство определяет отклонение между информацией о предсказанном состоянии и информацией о визуальном состоянии, связанной с первым визуальным представлением первого объекта. Если отклонение больше, чем первое пороговое значение, второе вычислительное устройство обновляет информацию о предсказанном состоянии путем изменения по меньшей мере одной скорости. Если отклонение больше, чем второе пороговое значение, второе вычислительное устройство изменяет информацию о визуальном состоянии, связанную с первым визуальным представлением первого объекта по меньшей мере частично на основе информации о предсказанном состоянии. Второе вычислительное устройство повторно предоставляет первое визуальное представление второго объекта, основанное по меньшей мере частично на информации о визуальном состоянии.
Первый объект может иметь тип, а первое и второе пороговые значения могут быть сохранены в таблице и связаны с типом объекта в таблице. В таких вариантах воплощения второе вычислительное устройство может осуществлять поиск первого и второго пороговых значений в таблице.
Изменение информации о визуальном состоянии, связанном с первым визуальным представлением первого объекта, основанном по меньшей мере частично на информации о предсказанном состоянии, если отклонение больше, чем второе пороговое значение, может включать установление информации о визуальном состоянии равной информации о предсказанном состоянии, если отклонение больше, чем третье пороговое значение. С другой стороны, если отклонение меньше, чем третье пороговое значение, и больше, чем второе пороговое значение, второе вычислительное устройство может определить информацию о усредненном состоянии, основанную по меньшей мере частично на информации о визуальном состоянии и информации о предсказанном состоянии, и установить информацию о визуальном состоянии равной информации об усредненном состоянии. В таких вариантах воплощения третье пороговое значение является большим, чем второе пороговое значение.
Варианты воплощения включают один или более машиночитаемых носителей, хранящих исполняемые компьютером команды, которые при их исполнении одним или более процессоров выполняют один или более из описанных выше способов. Например, один или более машиночитаемых носителей, хранящих исполняемые компьютером команды, которые при их исполнении одним или более процессоров осуществляют способ для использования с первым вычислительным устройством, воспроизводящим первую часть распределенной имитационной модели, причем первая часть управляет объектом. Способ, включающий воспроизведение второй части распределенной имитационной модели, причем вторая часть генерирует первое визуальное представление объекта, отображаемого на первом устройстве отображения. Визуальное состояние связано с объектом и первым визуальным представлением. Визуальное состояние может включать по меньшей мере одно значение параметра. Способ может дополнительно включать генерацию предсказанного состояния объекта, основанного по меньшей мере частично на предшествующем состоянии, включенном в предыдущее обновление, полученное от первого вычислительного устройства. Предшествующее состояние может быть связано со вторым визуальным представлением объекта. Предсказанное состояние включает по меньшей мере одну скорость и по меньшей мере одно значение параметра. Способ может дополнительно включать получение обновления от первого вычислительного устройства. Обновление может включать новое состояние, связанное с третьим визуальным представлением объекта. Новое состояние может включать по меньшей мере одно значение параметра. Способ может дополнительно включать установление по меньшей мере одного значения параметра предсказанного состояния равным по меньшей мере одному значению параметра нового состояния и определение отклонения между по меньшей мере одним значением параметра предсказанного состояния и по меньшей мере одним значением параметра визуального состояния. Если отклонение больше, чем первое пороговое значение, изменяется по меньшей мере одна скорость предсказанного состояния. Если отклонение больше, чем второе пороговое значение, изменяется по меньшей мере одно значение параметра визуального состояния, на основе по меньшей мере частично по меньшей мере одного значения параметра предсказанного состояния. Способ может дополнительно включать предоставление четвертого визуального представления объекта, основанного по меньшей мере частично на визуальном состоянии, и отображение четвертого визуального представления объекта на первом устройстве отображения.
Предсказанное состояние может быть первым предсказанным состоянием, а отклонение может быть первым отклонением. В таком варианте воплощения способ может дополнительно включать генерирование второго предсказанного состояния, основанного по меньшей мере частично по меньшей мере на одной скорости предсказанного состояния. Второе предсказанное состояние включает по меньшей мере одно значение параметра. Если второе отклонение больше, чем второе пороговое значение, изменяется по меньшей мере одно значение параметра визуального состояния на основании по меньшей мере частично по меньшей мере одного значения параметра второго предсказанного состояния. Способ может дополнительно включать предоставление пятого визуального представления объекта, основанного по меньшей мере частично на визуальном состоянии, и отображение пятого визуального представления объекта на первом устройстве отображения.
Изменение по меньшей мере одного значения параметра визуального состояния, основанного по меньшей мере частично на по меньшей мере одном значении параметра предсказанного состояния, если отклонение больше, чем второе пороговое значение, может включать определение, является ли отклонение большим, чем третье пороговое значение. Третье пороговое значение является большим, чем второе пороговое значение. Если определено, что отклонение больше, чем третье пороговое значение по меньшей мере одно из значений параметров визуального состояния устанавливается равным по меньшей мере одному значению параметра предсказанного состояния. С другой стороны, если определено, что отклонение меньше третьего порогового значения, усредненное состояние определяется на основании по меньшей мере частично по меньшей мере одного значения параметра визуального состояния и по меньшей мере одного значения параметра предсказанного состояния. Усредненное состояние включает по меньшей мере одно значение параметра. По меньшей мере одно значение параметра визуального состояния устанавливается равным по меньшей мере одному значению параметра усредненного состояния.
Варианты воплощения включают систему для воплощения распределенной имитационной модели, включающей совокупность объектов. Система включает совокупность вычислительных устройств, соединенных друг с другом по сети, причем каждое вычислительное устройство выполнено с возможностью воспроизводить часть распределенной имитационной модели. Первое вычислительное устройство из совокупности вычислительных устройств воспроизводит первую часть распределенной имитационной модели, управляющей частью совокупности объектов, и отправляет обновления, связанные по меньшей мере с одним из объектов из части совокупности объектов, второму из совокупности вычислительных устройств. Второе вычислительное устройство может быть выполнено с возможностью получать от первого вычислительного устройства предшествующее обновление, включая информацию о состоянии, связанную с первым объектом из части совокупности объектов, управляемых первым вычислительным устройством. Второе вычислительное устройство может быть дополнительно сконфигурировано для генерации первого визуального представления первого объекта, основанного по меньшей мере частично на информации о состоянии, связанной с первым объектом, и отображения первого визуального представления на устройстве отображения. Второе вычислительное устройство имеет информацию о визуальном состоянии, связанную с первым объектом и первым визуальным представлением. Второе вычислительное устройство может быть дополнительно сконфигурировано для получения нового обновления, включая информацию о состоянии от первого вычислительного устройства, причем новое обновление принимается после предшествующего обновления. Второе вычислительное устройство может быть дополнительно сконфигурировано для определения информации о предсказанном состоянии для первого объекта, основанной по меньшей мере частично на информации о состоянии из предшествующего обновления, причем информация о предсказанном состоянии включает по меньшей мере одно значение скорости. Второе вычислительное устройство может быть дополнительно сконфигурировано для определения, связана ли информация о состоянии из нового обновления с первым объектом, и если информация о состоянии из нового обновления связана с первым объектом, установления по меньшей мере части информации о предсказанном состоянии равной по меньшей мере части информации о состоянии из нового обновления. Второе вычислительное устройство может быть дополнительно сконфигурировано для определения отклонения между информацией о визуальном состоянии и информацией о предсказанном состоянии. Если отклонение больше, чем первое пороговое значение, второе вычислительное устройство может изменить по меньшей мере одно значение скорости из информации о предсказанном состоянии. Если отклонение больше, чем второе пороговое значение, второе вычислительное устройство может изменить информацию о визуальном состоянии, основанную по меньшей мере частично на информации о предсказанном состоянии. Второе вычислительное устройство предоставляет второе визуальное представление объекта, основанное по меньшей мере частично на информации о визуальном состоянии, и отображает второе визуальное представление объекта на устройстве отображения.
В вариантах воплощения, в которых информация о предсказанном состоянии является первой информацией о предсказанном состоянии, отклонение является первым отклонением, второе вычислительное устройство может быть дополнительно сконфигурировано для генерации второй информации о предсказанном состоянии, основанной по меньшей мере частично на по меньшей мере одной скорости из первой информации о предсказанном состоянии, и определить второе отклонение между информацией о визуальном состоянии и второй информацией о предсказанном состоянии. Если второе отклонение больше, чем второе пороговое значение, второе вычислительное устройство может изменять информацию о визуальном состоянии, основанную по меньшей мере частично на второй информации о предсказанном состоянии, второе вычислительное устройство предоставляет третье визуальное представление объекта, основанное по меньшей мере частично на информации о визуальном состоянии, и отображает третье визуальное представление объекта на устройстве отображения.
Часть распределенной имитационной модели, воспроизводимая на втором вычислительном устройстве, может управлять второй частью из совокупности объектов. В таких вариантах воплощения второе вычислительное устройство может быть дополнительно сконфигурировано для отправки обновлений, связанных по меньшей мере с одним объектом из второй части совокупности объектов, первому вычислительному устройству. Второе вычислительное устройство может быть сконфигурировано для получения вводимой пользователем информации через устройство пользовательского интерфейса, причем вводимая пользователем информация изменяет состояние выбранного объекта из второй части совокупности объектов, создания обновления, включая информацию о состоянии, связанную с выбранным объектом, и отправки обновления, связанного с выбранным объектом, первому вычислительному устройству. Эта система может включать сервер, соединенный со множеством вычислительных устройств посредством сети. Второе вычислительное устройство может быть сконфигурировано для отправки обновлений, связанных по меньшей мере с одним объектом из второй части совокупности объектов, на сервер для рассылки на другие устройства из совокупности вычислительных устройств.
КРАТКОЕ ОПИСАНИЕ НЕСКОЛЬКИХ ВИДОВ НА ЧЕРТЕЖЕ(-АХ)
Аспекты настоящего изобретения станут очевидными после рассмотрения последующего подробного описания в сочетании с прилагаемыми чертежами, на которых одинаковые выносные символьные указатели везде относятся к одинаковым частям, и на которых:
Фиг.1 представляет собой блок-схему системы распределенной интерактивной имитационной модели;
Фиг.2 представляет собой схему, отображающую локальные представления распределенной интерактивной имитационной модели, совместно используемой двумя станциями системы на фиг.1;
Фиг.3 представляет собой блок-схему части приставки из системы на фиг.1, отображающую модули предсказывающего устройства (предиктора) и интерполятора и их взаимосвязи;
Фиг.4 представляет собой блок-схему удаленно управляемого процесса интерполяции состояния объекта, который может быть выполнен по меньшей мере частью системы на фиг.1;
Фиг.5А представляет собой таблицу критериев и параметров, подходящих для управления примерными динамическими объектами такого типа, как в первом примере, а именно типа вездехода, работающими в различных режимах и условиях;
Фиг.5В представляет собой таблицу критериев и параметров, подходящих для управления примерными динамическими объектами такого типа, как во втором примере, а именно типа летательного аппарата, работающими в различных режимах и условиях; и
Фиг.6 представляет собой схему аппаратных средств и операционной среды, в которой могут быть воплощены одна или более игровых приставок системы на фиг.1.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Среда компьютерной игры используется здесь в качестве примера и для простоты пояснения при описании распределенной имитационной модели. Однако применимость систем и способов, описанных здесь, не ограничивается использованием в компьютерных играх, и они могут быть использованы для других типов распределенных имитационных моделей. Кроме того, для рассматриваемых вариантов воплощения не предполагается использование распределенных часов. Вместо этого высококачественные предсказания на основе постоянного потока обновлений, имеющего типичную задержку, могут быть использованы для получения связного представления распределенной интерактивной имитационной модели. Результаты таких предположений могут ухудшиться, если задержка варьирует в широких пределах в течение короткого промежутка времени, но все же могут быть в целом устойчивыми, удовлетворяя совместно используемой имитационной модели. Хотя системы и способы, описанные здесь, могут действовать в отношении распределенных имитационных моделей, имеющих одинаковую скорость передачи кадров и период обновления на всех станциях, это не является ни предположением, ни требованием. Таким образом, в рассматриваемых вариантах воплощения каждое последующее прибавление к распределенной имитационной модели на каждой станции не соответствует какому-то конкретному времени или временной отметке, кроме “сейчас”, и обновления, появляющиеся единовременно в реальном мире, появляются после короткой задержки на всех участвующих станциях, даже притом, что из-за задержек и ограничений, описанных выше в разделе «Уровень техники», влияние обновлений, производимое на объекты, управляемые одной станцией, может не рассматриваться на некоторых других станциях ранее, чем пройдет несколько циклов.
В качестве неограниченного представления, принимаются обновления, относящиеся к удаленно управляемой, основанной на физике модели объекта распределенной интерактивной имитационной модели. При заданных условиях по отношению к объекту, толчок или «удар на скорости» является определяемым, масштабируемым и добавляемым в обновление для формирования текущего предсказания правильного положения моделируемого объекта. За каждый последующий цикл основанной на физике имитационной модели формируется новое предсказанное состояние, пока не будет получено новое обновление. Отдельная визуальная модель поддерживается для сглаживания видимых прерываний в предсказанном или обновленном состоянии. Однако визуальная модель постоянно приближается к текущему предсказанию, с новым состоянием визуальной модели, определяемым из предшествующего состояния, его отклонения от текущего предсказания и определенных заданных критериев и параметров, соответствующих представленному объекту. Кроме того, с визуальной моделью связана система столкновения для обнаружения взаимодействия с другими объектами, особенно снарядами. В совокупности эти функции обеспечивают более эстетичное визуальное представление, которое выглядит более реалистично и более корректно (например, во время преследования или позиционирование моделируемых транспортных средств), чем предварительно распределенные интерактивные имитационные моделирования.
Согласно фиг.1 распределенная система интерактивного имитационного моделирования 100 включает локальную станцию 110, обозначенную как станция, локальная для пользователя (не показано), и совокупность удаленных станций 140, все из которых могут взаимодействовать с сервером 130 через сеть 120 (например, Интернет). В показанном варианте воплощения удаленные станции 140 включают удаленные станции 140A, 140B и 140C. Однако это не является обязательным требованием и удаленные станции 140 могут включать любое количество удаленных станций. Как пояснено ниже, станции 110, 140A, 140B и 140C могут избирательно взаимодействовать друг с другом.
В примере распределенной игровой системы сервер 130 является сервером сетевой игры, позволяя пользователям на каждой подключенной станции найти друг друга, договориться и присоединиться к игре.
Каждая из станций 110, 140A, 140B, 140C включает вычислительное устройство, которое может быть реализовано в виде игровой приставки 111, 142, 144, 146 соответственно. В качестве неограничивающего примера, каждая из игровых приставок 111, 142, 144, 146 может быть реализована как Xbox360, изготовленная Microsoft Corporation, Редмонд, штат Вашингтон. Кроме того, каждая из станций 110, 140A, 140B, 140C включает контроллер 113, 143, 145, 147 соответственно. Хотя каждая из станций 110, 140А, 140B, 140C также включает дисплей, на фиг.1 показан только дисплей 112 локальной станции 110. Приставка 111 локальной станции 110 взаимодействует с сервером 130 через соединение 121. Приставки 142, 144, 146 удаленных станций 140 взаимодействуют с сервером 130 через соединения 122, 123, 124 соответственно.
В некоторых вариантах воплощения приставка 111 может взаимодействовать непосредственно с каждой из приставок 142, 144, 146 по каналам связи 152, 153, 154 соответственно, в то время как приставки 111, 142, 144, 146 соединены вместе в распределенной интерактивной имитационной модели, такой как компьютерная игра. В других вариантах воплощения сервер 130 управляет соединением между станциями 110, 140A, 140B, 140C. Такие варианты воплощения могут хорошо подходить для очень больших имитационных моделей со многими станциями, так как пропускная способность канала закачивания обычно более ограничена, чем пропускная способность канала скачивания, тем не менее объем данных от локальной станции 110 к каждой из удаленных станций 140 приблизительно такой же, как объем от удаленных станций 140 к локальной станции 110. Благодаря тому, что сервер 130 по сути “передает” обновления от локальной приставки 111 на каждую из удаленных приставок 142, 144, 146, нагрузка по передаче данных для приставки 111 значительно снижается. Тем не менее с целью упрощения дальнейшего обсуждения, мы сосредоточим внимание на двух приставках 111 и 142 и будем рассматривать связь только между ними, с участием или без участия сервера 130. Однако, как понятно специалистам в данной области техники, соединение между любой парой приставок 111, 142, 144, 146 может работать таким же образом.
Таким образом, на фиг.2 показаны некоторые из внутренних механизмов распределенного интерактивного имитационного моделирования. Каждая из приставок 111 и 142 поддерживает соответствующее локальное представление распределенной имитационной модели в форме данных. Локальное представление, поддерживаемое на приставке 111, показано как локальная имитационная модель 200. Локальное представление, поддерживаемое на приставке 142, показано как локальная имитационная модель 250. Распределенная имитационная модель включает статические объекты и динамические объекты. Каждая из локальных имитационных моделей 200, 250 включает отдельный объект для каждого из статических и динамических объектов распределенного имитационного моделирования. Например, локальная имитационная модель 200 включает статические объекты 201, которые соответствуют статическим объектам 251 в локальной имитационной модели 250. Аналогичным образом локальная имитационная модель 200 включает динамические объекты 202, 203, 204, которые соответствуют статическим объектам 252, 253, 254 соответственно в локальной имитационной модели 250.
Каждая из приставок 111, 142, 144, 146 отвечает за управление определенными объектами. Например, игрок за приставкой 111 может использовать джойстик 113 для ввода команд в управляющий модуль 220 локальной модели и управления динамическим объектом 202 (например, моделируемой машиной). В этом примере управляющий модуль 220 локальной модели также управляет динамическим объектом 204, который может быть, например, миной, снарядом, взрывом, коробкой или другим динамическим объектом. Статические объекты 201, как правило, включают местность и часто здания, являются статическими и не управляются джойстиком 113. Время от времени (например, периодически) управляющий модуль 220 локальной модели отправляет обновление 152А (например, по каналу 152) управляющему модулю 280 удаленной модели удаленной приставки 142. Управляющий модуль 280 удаленной модели отвечает за управление динамическими объектами 252 и 254 в локальной имитационной модели 250, которые аналогичны динамическим объектам 202 и 204 в локальной имитационной модели 200.
Для каждого из по меньшей мере части динамических объектов (например, динамических объектов 202 и 204), за которые отвечает устройство 111, каждое обновление 152А может включать в себя идентификацию динамического объекта, тип информации для динамического объекта и информацию о состоянии для идентифицируемого динамического объекта, которая может включать указание режима работы (например, «управляемый» или «неуправляемый») динамического объекта. В некоторых вариантах воплощения такая информация может быть включена в одно или более обновлений.
С другой стороны, управляющий модуль 270 локальной модели получает данные ввода от игрового джойстика 143 для управления динамическим объектом 253 (например, другим транспортным средством). Обновления 152B, отправленные управляющим модулем 270 локальной модели на управляющий модуль 230 удаленной модели, используются для управления по меньшей мере частью динамических объектов в локальной имитационной модели 200. В этом примере обновления 152B управляют объектом 203, благодаря чему объект 253 (например, транспортное средство, “управляемое” пользователем) приставки 142 появляется на станции 110 с приставкой 111 как объект 203.
Для каждого из по меньшей мере части динамических объектов (например, динамического объекта 253), за который отвечает устройство 142, каждое обновление 152B может включать идентификацию динамического объекта, тип информации для динамического объекта и информацию о состоянии для идентифицируемого динамического объекта, которая может включать указание режима работы (например, «управляемый» или «неуправляемый») динамического объекта. В некоторых вариантах воплощения такая информация может быть включена в одно или более обновлений.
Статические объекты 251 в локальной имитационной модели 250 соответствуют объектам 201 в локальной имитационной модели 200.
На фиг.3 показано внутреннее устройство 300 управляющего модуля удаленной модели 230 приставки 111 и получение обновлений 152B от приставки 142 на модуль предсказывающего устройства 310.
Модуль предсказывающего устройства 310 принимает последнее полученное обновление 152B и сравнивает его с заданными значениями в таблице правил 321, соответствующими объекту (например, динамическому объекту 203), представленными в обновлении 152В. Для простоты иллюстрации, последнее полученное обновление описывает динамический объект 203. При наличии достаточного отклонения между локальным визуальным состоянием 323 и последним обновлением удаленной имитационной модели, толчок, или «удар», определяется из отклонения и дополнительной информации в таблице правил 321, соответствующей динамическому объекту 203, и применимой к физической модели динамического объекта 203. Это по сути усиливает определенные векторы скорости, используемые для экстраполирования будущего состояния динамического объекта 203 в последующих циклах. Это обсуждается более подробно ниже, со ссылкой на фиг.4, 5A и 5B. Модуль предсказывающего устройства 310 формирует подробную физическую модель для динамического объекта 203, что позволяет улучшить предсказания в последующих циклах локального имитационного моделирования 200. Удар, который применяется к локальному физическому представлению, в чем-то аналогичен “повышению резкости” в обработке фотографий, где разрыв непрерывности повышается на некоторую величину. В этом случае удар вводится в физическую модель как толчок, и его влияние будет наблюдаться только в последующих циклах локального имитационного моделирования 200. При поступлении нового обновления 152B, в следующем цикле локального имитационного моделирования 200 используется состояние удаленно управляемого динамического объекта 253, что отражено в новом обновлении, и может быть добавлен удар на скорости для формирования нового предсказанного состояния 311. В последующих циклах локального имитационного моделирования 200 подробная физическая имитационная модель экстраполируется из текущего предсказанного состояния 311 для получения нового предсказанного состояния 311.
Однако в случае, если локальное предсказанное состояние 311 будет использовано непосредственно для управления устройством отображения 112, вероятно, возникнет разрыв непрерывности в плавных движениях локального предсказанного состояния 311 каждый раз при поступлении нового обновления 152B удаленной имитационной модели, так как оно, вероятно, содержит информацию, которая не была предсказана в предшествующем обновлении 152B.
Чтобы исправить это, модуль интерполятора 320 пытается перевести локальное визуальное состояние 323 в эстетически привлекательную форму к текущему локальному предсказанному состоянию 311 с помощью таблицы правил 321. Предыдущее значение локального визуального состояния 323 используется в качестве основы, так что в целом, так как новые обновления 152B прерывисто воздействуют на локальное предсказанное состояние 311, представления объекта, которые формируются модулем визуализации 350 для устройства отображения 112, показывают движение эстетически привлекательным, как правило, с замаскированными разрывами. В результате визуальное состояние 323 с течением времени постоянно приближается к текущему предсказанному состоянию 311.
Модуль интерполятора 320 также поддерживает локальное состояние столкновения 322. Однако вместо того, чтобы быть воспроизведенной игроку для просмотра, зона столкновения объекта логически перемещается с визуальной моделью. Это повышает реалистичность моделируемого прицеливания, как в случае с артиллерийскими боеприпасами, так и при автомобильных столкновениях. “Прочность” объектов в мире устанавливается требуемой и соответствует местонахождению объектов. Например, по объекту можно выстрелить там, где его видят (когда он обнаружен модулем обнаружения столкновения со снарядом 340), или в комбинированном модуле интерполятора 310, транспортное средство, которое появляется, чтобы ударить препятствие, повреждает это препятствие (или повреждается препятствием) и может отскочить от него, влияя на локальное визуальное состояние 323.
Видимость движения объекта может быть улучшена с помощью удара, введенного в физическую модель модулем предсказывающего устройства 310 в соответствии с критериями и параметрами для объектов в таблице правил 321, и критериями и параметрами, которые также содержатся там для использования модулем интерполяции 320, дополнительно подробно описанным ниже со ссылкой на фиг.4, 5А и 5В.
На фиг.4 показан способ 400, который может быть выполнен управляющим модулем 230 удаленной модели (см. фиг.2 и 3). В блоке 401 начинается цикл локальной имитационной модели 200, в котором динамический объект 203 удаленно управляется управляющим модулем 270 локальной модели.
Затем в блоке принятия решения 402 производится определение того, получено ли новое обновление 152B для динамического объекта 203 от управляющего модуля локальной модели 270. Если в блоке принятия решения 402 выбран вариант “ДА”, новое обновление 152B для динамического объекта 203 было получено, и в блоке 403 предсказанное состояние 311 устанавливается равным состоянию, предусмотренному в обновлении. Затем управляющий модуль 230 удаленной модели переходит к блоку 405. Иначе, если в блоке 402 принятия решения выбрано “НЕТ”, новые обновления 152B не были получены, а в блоке 404 для формирования нового значения для предсказанного состояния 311 запускается подробная физическая модель для динамического объекта 203. Затем управляющий модуль 230 удаленной модели переходит к блоку 405.
В блоке 405 вычисляется отклонение между новым предсказанным состоянием 311 и текущим визуальным состоянием 323.
В предыдущих циклах способа 400 могло быть установлено локальное визуальное состояние 323, но если оно не инициализировано, может быть установлено с текущим значением предсказанного состояния 311. Даже если это не было сделано, способ 400 быстро приближается, намеренно, к соответствующему значению для визуального состояния 323.
Затем управляющий модуль удаленной модели 230 переходит к блоку принятия решения 406. В блоке принятия решения 406 будет выбран вариант «ДА», если в блоке 402 было получено новое обновление 152B и отклонение, вычисленное в блоке 405, превышает одно или более значений, указанных для текущего режима работы динамического объекта 203. Если в блоке принятия решения 406 выбран вариант «ДА», то в блоке 407 к предсказанному состоянию применяется толчок или «удар на скорости» (или «удар»). Это не изменяет предсказанное «физическое» представление динамического объекта 203, но изменяет скорости в представлении так, чтобы получить различные результаты в будущих циклах физической модели в блоке 404. Затем управляющий модуль удаленной модели 230 переходит к блоку принятия решения 408.
Если в блоке принятия решения 406 выбран вариант «НЕТ», управляющий модуль удаленной модели 230 переходит к блоку принятия решения 408.
Независимо от того, применялся в блоке 407 удар или нет, выполнение способа продолжается в блоке принятия решения 408, где выполняется проверка, является ли отклонение большим, чем заданное “большое” значение из части таблицы правил 321, соответствующей динамическому объекту 203 и связанному с ним локально предсказанному состоянию 311. Более подробное описание проверки, выполняемой в блоке принятия решения 408, приводится на фиг.5A и 5B, а также в соответствующем пояснении ниже. Если отклонение, определенное в блоке принятия решения 408, признано “большим”, в блоке принятия решения 408 выбирается вариант «ДА» и выполнение способа продолжается в блоке 409. С другой стороны, если в блоке принятия решения 408 выбран вариант «НЕТ», выполнение способа продолжается в блоке принятия решения 410.
В блоке 409 новое значение визуального состояния 323 определено равным текущему значению предсказанного состояния 311, и представление объекта будет “отклоняться” (например, мгновенно прыгать) в новое положение. Затем в блоке 412, это вновь определенное значение применяется к визуальному состоянию 323.
В некоторых вариантах воплощения, в блоке 412, обновленное визуальное состояние дополнительно изменяется, когда объектная модель применяет новое состояние, например, колеса транспортного средства могут быть отрегулированы для огибания рельефа местности, чтобы удерживать их в непосредственном контакте с землей, или могут казаться установленными соответствующим образом на подвеске, когда транспортное средство «загребает воздух» при быстром перемещении (то есть, когда положение и ориентация, определяемые новым визуальным состоянием, помещает колесо достаточно высоко над местностью).
По существу совпадающим со вновь определенным визуальным состоянием 323 является локальное состояние столкновения 322 по меньшей мере в их иерархическом источнике. То есть зона столкновения, определяемая художником для обнаружения удара в препятствия или снаряды, по существу предназначена для взаимодействия с визуальной моделью, которую художник предусматривает при отрисовке объекта. Как правило, зона столкновения существенно упрощена по сравнению с визуальной моделью, создаваемой для модуля визуализации 350, чтобы выполнить вычисления столкновений объект-местность, объект-объект и объект-снаряд существенно проще, например, в модуле обнаружения столкновения со снарядом 340.
В некоторых вариантах воплощения локальное состояние столкновения 322 может быть использовано модулем интерполятора 320, даже итерационно, для настройки визуального состояния в блоке 412, например, чтобы гарантировать, что объект не появится, чтобы проникнуть глубоко в ландшафт.
Наконец, порядок выполнения этих дополнительных корректировок для визуального состояния 323 и состояния столкновения 322 может меняться в зависимости от каждого вида или типа объекта и является, по существу, эстетическим решением имитационного моделирования.
После завершения корректировок визуального состояния 323, способ 400 завершается по отношению к динамическому объекту 203 в блоке 413.
Однако, если в блоке принятия решения 408 при проверке будет обнаружено, что отклонение не является “большим” (то есть в блоке принятия решения 408 выбран вариант “НЕТ”), в блоке принятия решения 410 выполняется проверка, чтобы определить, является ли отклонение больше, чем заданное «малое» значение, где соответствующее “малое” значение выбирается из таблицы правил 321 согласно предсказанному состоянию 311 динамического объекта 203. Опять же, более подробное описание проверки, выполняемой в блоке принятия решения 408, представлено на фиг.5A и 5B, а также в соответствующем пояснении ниже. Если отклонение больше, чем “малое”, в блоке принятия решения 410 выбирается вариант “ДА”, а в блоке 411 новое значение визуального состояния 323 определяется как “усредненное” (или средневзвешенное) от текущего визуального состояния 323 и текущего предсказанного состояния, при этом весовые и другие ограничения, соответствующие предсказанному состоянию динамического объекта 203, берутся из таблицы правил 321, с определенными значениями для сравнения и манипулирования положением и вращением частей визуального состояния 323. Затем новое значение визуального состояния 323 применяется в блоке 412.
Но если отклонение не превышает проверенного в блоке принятия решения 410 как “малого”, в блоке 410 принятия решения выбирается вариант “НЕТ”, никакие изменения не производятся и визуальное состояние 323 в этом цикле остается неизменным. Тест или проверка малого отклонения, выполняемая в блоке принятия решения 410, приводит к визуальной “остановке” объектов. В этом случае способ 400 заканчивается в блоке 413 для этого цикла по отношению к динамическому объекту 203.
В различных вариантах воплощения, или даже просто для различных типов (или видов) объектов, или для того же объекта, но в различных режимах, с помощью тестов или проверок, осуществляемых в блоках принятия решения 406, 408 и 410 относительно величины отклонения, определяемой в блоке 405, могут использоваться групповые действия, или могут анализироваться только определенные части отклонения, как это отражено в таблице правил 321. Например, линейные измерения положения затруднительны для сравнения с измерениями вращения (ориентации). Таким образом, части положения и вращения состояния часто сравнивают отдельно, а в некоторых вариантах воплощения, если любая часть превышает соответствующее заданное значение для каждой части, то все отклонение определяется как превышенное. В некоторых вариантах воплощения или для некоторых объектов, дополнительные части положения могут быть признаны важными и учитывающими конкретные значения в таблице правил 321. Например, для прыгающих двуногих (например, людей, инопланетян и тому подобных) может потребоваться более жесткий контроль отклонения траектории движения, то есть их положения в плоскости X-Y, чем их высоты по отношению к нему. Для объектов, таких как двуногие, которые могут прыгать, специальное заданное значение может более точно возникнуть из той части отклонения, которая проецируется на плоскость X-Y, при общем менее строгом (т.е. большем) заданном значении для общей части положения отклонения, то есть в XYZ).
На каждой из фиг.5A и 5B представлена типичная часть таблицы правил 321. Фиг.5A включает в себя иллюстративные критерии и параметры для использования с первым типом динамического объекта, а именно моделируемого объекта типа вездехода (“ATV”) 500. Фиг.5B включает иллюстративные критерии и параметры для использования со вторым типом динамического объекта, а именно объекта типа летательного аппарата 530. Критерии и параметры, указанные на фиг.5A и 5B, являются, например, вариантами воплощениями и не предназначены для ограничения. Кроме того, таблица правил 321 может включать части для различных и/или дополнительных типов динамических объектов. Таблица правил 321 может представлять собой одну таблицу или нескольких таблиц.
Согласно фиг.5A в некоторых вариантах воплощения часть 510 таблицы правил 321 предназначена для объекта типа моделируемого вездехода («ATV») 500 и содержит ряд заданных значений, соответствующих тестам или проверкам, осуществляемым в блоках принятия решения 406, 408 и 410, и все параметры, используемые для изменения визуального состояния 323 (например, усреднение) в блоке 411 и предсказанного состояния 311 в блоке 407, подходят для использования управляющим модулем удаленной модели 230 в способе 400 при обработке объекта типа ATV, например динамического объекта 203.
Критерии 511 для объекта типа ATV 500 используются в блоке принятия решения 408 (например, для динамического объекта 203). Определение в блоке принятия решения 408, является ли отклонение из блока 402 большим, чем “большое”, разбивается на три сравнения. Первое сравнение, является ли часть XYZ отклонения большей по величине, чем значение трех мировых единиц («WU») (в данном примере варианта воплощения линейные измерения выполняются в “мировых единицах”, аналогичных метрам или футам, но выбранных для удобного представления в имитационной модели; в этих примерах имитационной модели одна WU соответствует примерно 2,5 м в реальном мире). Второе сравнение - является ли часть ХY отклонения большей по величине, чем значение 100 WU. Отметим, что если часть ХY больше 100 WU, то, конечно, часть XYZ из первого сравнения была больше трех. Это сравнение может использоваться как сокращение программиста для отмены XY сравнения для объекта типа ATV 500. Если бы XY отклонение было действующим для данного типа объектов, то значение, используемое для отклонения XY, должно бы было быть меньше, чем то, которое используется для отклонения XYZ. В третьем сравнении проверяется, больше ли угловая часть отклонения, чем 180 градусов. Если при любом из этих трех сравнений определяется, что соответствующая часть отклонения превышает значение, прописанное в критериях 511, определением в блоке принятия решения 408 является то, что отклонение превышает «большое» значение (или в блоке принятия решения 408 выбирается вариант “ДА”) и в блоке 409 возникнет отклонение.
Столбцы 521 и 522 части 510 таблицы правил 321 предоставляют различные заданные значения и параметры для использования в тех случаях, когда объект типа ATV (например, объект типа ATV 500) является управляемым по сравнению с неуправляемым. Столбцы 521 предоставляют заданные значения и параметры, используемые, когда объект типа ATV управляемый, а столбцы 522 предоставляют заданные значения и параметры, используемые, когда объект типа ATV неуправляемый. В этом варианте воплощения объект “управляемый”, когда данные ввода игрока (например, от игрового джойстика 143) влияют на управляющий модуль локальной модели (например, управляющий модуль 270 локальной модели) или, как уже упоминалось ранее, если искусственный интеллект или другой операторский процесс оказывают влияние на модель. В случаях, когда важно, ”управляемы” ли объекты или “неуправляемы”, обновления удаленной имитационной модели (например, обновления 152В) будут указывать режим работы.
Критерии 512 для объекта типа ATV 500 используются при тесте или проверке, выполняемой в блоке принятия решения 410 (например, для динамического объекта 203). Определение в блоке принятия решения 410, является ли отклонение из блока 402 больше, чем “малое”, разбито на два сравнения, со значениями для сравнения, которые берутся из столбцов 521 или 522, в зависимости от режима работы, указанного в последнем обновлении 152B удаленной имитационной модели. В первом сравнении определяется, является ли или часть XYZ или часть вращения (ориентации) отклонения большей по величине, чем значение 0,5 WU или 45 градусов соответственно. В этом примере, является ли динамический объект 203 “управляемым” или “неуправляемым”, не имеет значения потому, что значения одинаковы в обоих столбцах 521 и 522. Следует заметить, что для повышения эффективности, каждое из значений (0,5 WU, 45 градусов) должно быть меньше, чем соответствующие величины (3 WU, 180 градусов) в критериях 511.
Второе сравнение представляет собой комплексное сравнение, которое использует более жесткие допуски по отклонению (например, 0,03 WU, 4 градуса в “управляемом” режиме, или 0,03 WU или 6 градусов в “неуправляемом” режиме), если предсказанное состояние 311 объекта изменяется достаточно медленно (например, менее 0,1 WU/c и 8 градусов/с). Таким образом, блок принятия решения 410 инициирует усреднение в блоке 411, если отклонение является слишком большим, но это сравнение может зависеть от скорости. Объекты, движущиеся медленнее, могут требовать меньших отклонений.
Если в блоке 411 требуется усреднение, оно выполняется с помощью параметров и ограничений, применимых к динамическому объекту 203 из части 513. Усреднение вносит долю отклонения из блока 405 к визуальному состоянию 323 для получения нового визуального состояния в блоке 412, но то, чем должна быть доля, может оказывать значительное эстетическое влияние и, возможно, должно быть скорректировано для различных условий. В этом варианте воплощения для объекта типа ATV 500, верхний и нижний пороги скорости определены (которые могут варьироваться в зависимости от режима работы, но в этом примере не варьируются). Для скоростей на уровне или ниже нижнего порога скорости, доли, соответствующие частям положения и вращения отклонения, добавляемые к визуальному состоянию 323, представляются в виде записей с надписью “доля отклонения на уровне нижнего порога”. Аналогично, для скоростей на уровне или выше верхнего порога скорости, доли берутся из записей с надписью “доля отклонения на уровне верхнего порога”. Для скоростей между верхним и нижним порогами скорости доля может быть интерполирована из верхней и нижней долей порога. Например, для динамического объекта 203 в “управляемом” режиме, для которого предсказанная скорость составляет 5 WU/c и вращение 0 градусов/с, доля отклонения для усреднения положения может быть вычислена по следующей формуле:
(расчетная скорость - нижний порог скорости)/(верхний порог скорости - нижний порог скорости) · (доля на уровне верхнего порога - доля на уровне нижнего порога)+(доля на уровне нижнего порога).
С использованием приведенной выше формулы, доля отклонения для усреднения положения в приведенном выше примере составит 0,4:
(5-0)/(10-0)·(0,03-0,05)+(0,05)=5/10·(-0,02)+(0,05)=0,04.
Аналогичное вычисление для доли, применяемой при усреднении вращения, будет использовать значения, указанные для вращения, но в этом случае, поскольку скорость вращения была на уровне или ниже нижнего порога скорости (0), доля отклонения на уровне нижнего порога, принятая равной 0,04, используется непосредственно.
Последнее ограничение на усреднение определяется как минимальная скорость сближения по предсказанному состоянию 311, где если скорость предсказанного состояния 311 находится на уровне или ниже нижнего порога, то требуется точный минимум скорости сходимости текущего визуального состояния 323 к предсказанному состоянию 311. Соответствующие значения предоставляются для случаев, когда скорость предсказанного состояния находится на уровне или выше верхнего порога, и опять же, таким же образом, как описано выше, для скоростей между верхним и нижним пороговыми значениями, требуемые минимальные параметры скорости сходимости, приведенные в части 513, могут быть интерполированы.
Как только соответствующие доли будут определены, их применение к положению и вращению визуального состояния 323 осуществляется посредством декартовой интерполяции для части положения и сферической линейной интерполяции (также известной как «Slerp») для части вращения. Вариант воплощения Slerp может использовать кватернионное представление для вращения, но это не является строго обязательным.
Критерии 514 для объекта типа ATV 500 используются в блоке принятия решения 406 (например, для динамического объекта 203). Определение в блоке принятия решения 406, использовалось ли новое обновление в блоке 402 и является ли “достаточным” отклонение из блока 405 для возможности удара, представляет собой комплексное сравнение со значениями для сравнения, получаемыми из столбцов 521 или 522 в зависимости от режима работы, указанными в последнем обновлении 152B удаленной имитационной модели. В этом варианте воплощения, как и в комплексном сравнении, упомянутом выше, выполняется проверка, чтобы убедиться, что предсказанное состояние 311 объекта либо изменяется быстрее, чем пороговое значение (в части 514, обозначенной «если скорость >»), либо что отклонение (обозначенное «или отклонение положения XYZ или вращения») достаточно большое. Если любое из сравнений в блоке принятия решения 406 определяет, что соответствующий параметр был превышен, тогда блок принятия решения 406 устанавливает, что отклонение действительно «достаточное» и удар производится в блоке 407.
Параметры для удара приведены в части 515. В этом варианте воплощения удар представляет собой отклонение, умноженное на коэффициент масштабирования (обозначенный «УДАР при отклонениих»), фактически выраженный в единицах, обратных секундам, так как значение удара соответствует скорости, которая добавляется к предсказанному состоянию 311 в блоке 407. После того как значение удара определено таким образом, оно дополнительно подвергается ограничениям, обозначенным “но не меньше, чем” и “не более, чем”, в пределах параметров части 515, что позволяет разработчику ограничить влияние удара. Вообще говоря, влияние удара может быть визуально некорректным, если установлено, что удар может быть сильным. Однако, если удар естественным образом не силен, или иным образом ограничен, это приводит к существенному улучшению эстетического поведения объектов, управляемых управляющим модулем удаленной модели 230.
В качестве другого примера, на фиг.5B показана часть 540 таблицы правил 321, соответствующая объекту типа летательного аппарата 530, это тип объекта, который не показан на локальных имитационных моделях 200 и 250 на фиг.2. Возвращаясь к фиг.5B, в части 540 каждый из столбцов 551 и 552 включает столбцы, соответствующие тем же режимам управления, что и столбцы, включенные в столбцы 521 и 522 соответственно на фиг.5A. Критерии 541, 542 и 544 используются таким же образом, как критерии 511, 512 и 514 соответственно. Параметры в частях 543 и 545 используются таким же образом, как параметры в частях 513 и 515 соответственно. Различия в критериях и параметрах, представленные в таблице правил 321, могут быть установлены эмпирически, например, разработчиком. Каждый из критериев определяет, какие условия будут вызывать применение определенных элементов способа 400, а каждый параметр может влиять на визуальный результат.
ВЫЧИСЛИТЕЛЬНЫЕ УСТРОЙСТВА
На фиг.6 показана схема аппаратных средств и операционной среды, с которыми могут быть осуществлены реализации одной или более игровых приставок 111, 142, 144, 146. Описание фиг.6 содержит краткое общее описание подходящей компьютерной техники и подходящей вычислительной среды, в которой могут быть осуществлены реализации. Хотя это не требуется, варианты реализации описаны в общем контексте исполняемых компьютером команд, таких как программные модули, выполняемые процессором. В общем случае программные модули включают подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют специфические абстрактные типы данных.
Кроме того, специалистам в данной области техники будет понятно, что варианты реализации могут быть осуществлены с другими конфигурациями компьютерных систем, включая портативные устройства, многопроцессорные системы, основанную на микропроцессорах или программируемую бытовую электронику, сетевые ПК, миникомпьютеры, суперкомпьютеры и тому подобное. Варианты реализации могут также осуществляться в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны через сети передачи данных. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и в удаленных запоминающих устройствах.
Приведенное в качестве примера аппаратное обеспечение и операционная среда на фиг.6 включают универсальное вычислительное устройство в виде вычислительного устройства 12. Вычислительное устройство 12 может быть обычной игровой приставкой, сотовым телефоном, планшетным компьютером, обычным компьютером, распределенной вычислительной системой или компьютером любого другого типа. Каждая из игровых приставок 111, 142, 144, 146 может быть по существу идентичной вычислительному устройству 12. Однако это не является обязательным требованием.
Вычислительное устройство 12 включает системную память 22, процессорный блок 21 и системную шину 23, которая функционально соединяет различные компоненты системы, включая системную память 22 и процессорный блок 21. Может использоваться только один или может использоваться более одного процессорного блока 21, таким образом, что процессор вычислительного устройства 12 включает один центральный процессорный блок (“ЦПУ”) или совокупность процессорных блоков, обычно называемых параллельной средой обработки. Если используются несколько процессорных блоков, процессорные блоки могут быть неоднородными. В качестве неограничивающего примера, такая неоднородная среда обработки может включать обычный процессор, обычный графический процессор (“ГП”), математический сопроцессор («МС»), их комбинации и тому подобное.
Системная шина 23 может быть любой из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из разнообразных шинных архитектур. Системная память 22 может также упоминаться как просто память и включает постоянное запоминающее устройство (ПЗУ) 24 и оперативное запоминающее устройство (ОЗУ) 25. Базовая система ввода/вывода (BIOS) 26, содержащая основные процедуры, которые помогают передавать информацию между элементами в вычислительном устройстве 12, например, во время запуска, хранится в ПЗУ 24. Вычислительное устройство 12 дополнительно включает накопитель на жестком диске 27 для считывания и записи на жесткий диск, который не показан, накопитель на магнитных дисках 28 для считывания или записи на съемный магнитный диск 29 и накопитель на оптических дисках 30 для считывания или записи на съемный оптический диск 31, такой как CD-ROM, DVD или другие оптические носители.
Накопитель на жестком диске 27, накопитель на магнитных дисках 28 и накопитель на оптических дисках 30 подключены к системной шине 23 посредством интерфейса накопителя на жестком диске 32, интерфейса накопителя на магнитных дисках 33 и интерфейса накопителя на оптических дисках 34 соответственно. Накопители и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение считываемых компьютером команд, структур данных, программных модулей и других данных для вычислительного устройства 12. Специалистам в данной области техники должно быть понятно, что любые типы машиночитаемых носителей, которые могут хранить данные, доступные для компьютера, такие как магнитные кассеты, карты флэш-памяти, твердотельные устройства памяти (“SSD”), USB-накопители (флеш-носители), цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и т.п., могут быть использованы в иллюстративной операционной среде. Как очевидно для специалиста в данной области техники, накопитель на жестком диске 27 и другие виды машиночитаемых носителей (например, съемный магнитный диск 29, съемный оптический диск 31, карты флэш-памяти, SSD, USB-накопители и тому подобное), доступные для процессорного блока 21, могут рассматриваться в качестве компонентов системы памяти 22.
Некоторое количество программных модулей может храниться на накопителе на жестком диске 27, магнитном диске 29, оптическом диске 31, в ПЗУ 24 или ОЗУ 25, включая операционную систему 35, одну или более прикладных программ 36, другие программные модули 37 и программные данные 38. Пользователь может вводить команды и информацию в вычислительное устройство 12 через устройства ввода, такие как клавиатура 40 и указательное устройство 42. Согласно фиг.1, устройства ввода включают контроллеры 113, 143, 145, 147. Неограничивающие примеры устройств ввода включают микрофон, джойстик, игровой манипулятор, спутниковую антенну, сканер, сенсорные устройства (например, сенсорное перо, сенсорная панель, сенсорный экран и тому подобное), видеокамеру, глубинную камеру и т.п. Эти и другие устройства ввода часто подключаются к процессорному блоку 21 через интерфейс с последовательным портом 46, который подключен к системной шине 23, но могут быть подключены посредством и других интерфейсов, таких как параллельный порт, игровой порт, универсальная последовательная шина (USB) или беспроводной интерфейс (например, интерфейс Bluetooth).
Монитор 47 или другой тип устройства отображения (например, дисплей 112, показанный на фиг.1) может также быть подключен к системной шине 23 через интерфейс, такой как видеоадаптер 48. Дисплей 112 может быть реализован как телевизионная система, экран дисплея, сенсорный экран и тому подобное. В дополнение к монитору 47 компьютеры обычно включают другие периферийные устройства вывода (не показаны), такие как громкоговорители, принтеры и тактильные устройства, которые обеспечивают тактильную и/или другие типы физической обратной связи (например, возвратное усилие игрового контроллера).
Устройства ввода, описанные выше, предназначены для восприятия вводимой пользователем информации и осуществления выбора. Вместе устройства ввода и отображения могут быть описаны как такие, которые обеспечивают интерфейс пользователя.
Вычислительное устройство 12 может работать в сетевой среде с использованием логических соединений с одним или более удаленных компьютеров, таких как удаленный компьютер 49. Как описано выше, две или более игровые приставки 111, 142, 144, 146 могут быть избирательно соединены между собой по сети 120. Эти логические соединения осуществляются коммуникационным устройством, соединенным с вычислительным устройством 12 (как локальный компьютер) или его частью. Варианты реализации не ограничиваются конкретным типом коммуникационного устройства. Удаленный компьютер 49 может быть другим компьютером, сервером, маршрутизатором, сетевым ПК, клиентом, запоминающим устройством, одноранговым устройством или другим общим узлом сети и обычно содержит многие или все из элементов, описанных выше по отношению к вычислительному устройству 12. Удаленный компьютер 49 может быть подключен к запоминающему устройству 50. Логические соединения, изображенные на фиг.6, включают в себя локальную сеть (LAN) 51 и глобальную сеть (WAN) 52. Такие сетевые среды являются обычным явлением в офисах, корпоративных вычислительных сетях, сетях Интранет и Интернет.
Специалистам в этой области техники будет очевидно, что локальная сеть может быть подключена к глобальной сети через модем с использованием несущего сигнала в телефонной сети, кабельной сети, сотовой сети или линии электропередач. Такой модем может быть подключен к вычислительному устройству 12 посредством сетевого интерфейса (например, последовательный или другой тип порта). Кроме того, многие портативные компьютеры могут подключаться к сети с помощью сотового модема для передачи данных.
При использовании в локальной сетевой среде вычислительное устройство 12 подключается к локальной сети 51 через сетевой интерфейс или адаптер 53, который является типом коммуникационного устройства. При использовании в глобальной сетевой среде, вычислительное устройство 12 обычно содержит модем 54, который является типом коммуникационного устройства, или любой другой тип коммуникационного устройства для установления связи через глобальную сеть 52, такую как Интернет. Модем 54, который может быть внутренним или внешним, подключен к системной шине 23 через интерфейс последовательного порта 46. В сетевой среде программные модули, изображенные связанными с персональным вычислительным устройством 12 или его частями, могут храниться в удаленном компьютере 49 и/или удаленном запоминающем устройстве 50. Следует понимать, что показанные сетевые соединения являются примерными, и для установления канала связи между компьютерами могут быть использованы другие средства и коммуникационные устройства.
Вычислительное устройство 12 и соответствующие компоненты были представлены здесь в качестве конкретного примера, а также как абстракция в целях облегчения понимания раскрытых здесь концепций высокого уровня. Фактические технические разработки и воплощения могут изменяться в зависимости от конкретного варианта реализации при сохранении общего характера раскрытых концепций.
В некоторых вариантах воплощения системная память 22 хранит выполняемые компьютером команды, которые при их выполнении одним или более процессоров вызывают выполнение одним или более процессоров всего или частей способа 400. Такие команды могут храниться на одном или более машиночитаемых носителях постоянного хранения.
Как и во всех подобных системах, конкретные функции системы, специфические особенности пользовательских интерфейсов и осуществление способов может зависеть, например, от архитектуры, используемой для реализации системы, выбранной операционной системы серверов, пропускной способности и других свойств выбранной сети, а также созданного программного кода. Различные дополнительные модификации описанных вариантов воплощения, в частности, проиллюстрированные и описанные здесь, будут очевидны специалистам в данной области техники в свете настоящего описания.
Описанные выше варианты воплощения изображают различные компоненты, имеющиеся внутри различных других компонентов или связанные с различными другими компонентами. Следует понимать, что такие представленные архитектуры являются только примерными, и что в действительности могут быть реализованы многие другие архитектуры, которые позволяют достичь той же функциональности. В концептуальном смысле для достижения тех же функциональных возможностей любая система компонентов эффективно “связывается” так, что достигается желаемая функциональность. Следовательно, любые два компонента, рассматриваемые здесь, объединенные для получения конкретной функциональности, можно рассматривать как “связанные” между собой таким образом, что требуемая функциональность достигается независимо от архитектур или промежуточных компонентов. Аналогично, любые два компонента, связанные таким образом, также можно рассматривать как “функционально связанные” или “функционально соединенные” друг с другом для получения требуемых функциональных возможностей.
В то время как здесь были представлены и описаны конкретные варианты воплощения настоящего изобретения, специалистам в данной области техники будет очевидно, что на основе представленного здесь описания могут быть осуществлены изменения и модификации без отступления от настоящего изобретения и его более широких аспектов, и поэтому прилагаемая формула изобретения включает в своем объеме все такие изменения и модификации, которые находятся в пределах сущности и объема данного изобретения. Кроме того, следует понимать, что изобретение определяется исключительно прилагаемой формулой изобретения. Специалистам в данной области техники понятно, что, в общем случае, термины, используемые здесь, и особенно в прилагаемой формуле изобретения (например, содержании прилагаемой формулы изобретения), как правило, используются как «открытые» термины (например, термин “включающий” следует интерпретировать как “включающий, но не ограничиваемый”, термин «имеющий» следует интерпретировать как «имеющий, по меньшей мере», термин «включает» следует интерпретировать как “включает, но не ограничивается” и т.д.). Далее специалистам в данной области техники будет понятно, что, если в формуле изобретения определено некоторое количество вносимых перечислений, такое определение будет явно изложено в формуле изобретения, а при отсутствии такого перечисления, такого определения не существует. Например, для облегчения понимания последующая прилагаемая формула изобретения может содержать использование вводных фраз “по меньшей мере один” и “один или более” для введения перечисления в формуле изобретения. Однако использование таких фраз не должно подразумевать того, что введение в изложение формулы изобретения единственного числа ограничивает любой конкретный пункт формулы изобретения, содержащий только одно такое перечисление, т.е., если этот пункт формулы изобретения включает вводные фразы “один или более” или “по меньшей мере один”, единственное число, как правило, должно быть интерпретировано в значении “по меньшей мере один” или “один или более”. Кроме того, даже если определенное количество введенных перечислений в формуле изобретения явно изложено, специалистам в данной области техники будет понятно, что такое изложение, как правило, должно быть интерпретировано как по меньшей мере перечисленное количество (например, простое изложение “двух перечислений” без других модификаторов обычно означает по меньшей мере два перечисления или два или более перечислений).
Соответственно, изобретение не ограничено ничем, кроме как прилагаемой формулой изобретения.
Изобретение в целом относится к распределенным интерактивным имитационным моделям, например таким, как применяемые в военных тренажерах и многопользовательских компьютерных играх, отражающие согласованный виртуальный мир через совокупность станций оператора/игрока. Системы и способы для по существу одновременного воспроизведения распределенной имитационной модели на совокупности вычислительных устройств содержат первое вычислительное устройство, которое управляет объектом в распределенной имитационной модели. Второе вычислительное устройство генерирует визуальное представление объекта, связанное с визуальным состоянием, и это второе вычислительное устройство генерирует предсказанное состояние и получает обновление, включающее новое состояние, от первого вычислительного устройства. Часть предсказанного состояния устанавливается равной части нового состояния, и определяется отклонение между предсказанным и визуальным состояниями. Если отклонение больше, чем первое пороговое значение, по меньшей мере одна скорость из предсказанного состояния может быть изменена. Если отклонение больше, чем второе пороговое значение, визуальное состояние изменяется на основе по меньшей мере частично предсказанного состояния. Новое визуальное представление объекта предоставляется на основе по меньшей мере частично визуального состояния и отображается. 6 н. и 33 з.п. ф-лы, 7 ил.