CN102238985A - 用于模拟真实环境中的事件的系统和方法 - Google Patents

用于模拟真实环境中的事件的系统和方法 Download PDF

Info

Publication number
CN102238985A
CN102238985A CN2009801476775A CN200980147677A CN102238985A CN 102238985 A CN102238985 A CN 102238985A CN 2009801476775 A CN2009801476775 A CN 2009801476775A CN 200980147677 A CN200980147677 A CN 200980147677A CN 102238985 A CN102238985 A CN 102238985A
Authority
CN
China
Prior art keywords
location
virtual
true
data object
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2009801476775A
Other languages
English (en)
Inventor
J·M·雷尹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
iOpener Media GmbH
Original Assignee
iOpener Media GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by iOpener Media GmbH filed Critical iOpener Media GmbH
Publication of CN102238985A publication Critical patent/CN102238985A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/69Involving elements of the real world in the game world, e.g. measurement in live races, real video

Abstract

本发明所描述的是用于模拟真实环境中的事件的基于计算机的方法和设备,包括计算机程序产品。在一些示例中,模拟真实环境中的事件包括方法。该方法包括确定用户控制对象在虚拟环境中的用户定位。该方法还包括基于真实数据对象在真实环境中的真实定位确定该真实数据对象在虚拟环境中相对于所述用户定位的虚拟定位。该方法还包括基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在虚拟环境中的当前虚拟定位。

Description

用于模拟真实环境中的事件的系统和方法
相关申请
本申请主张享有2008年9月24日提交的美国临时申请61/099,697的权益和优先权,将上述申请的所有教导通过引用并入本文。
技术领域
本发明一般地涉及用于模拟真实环境中的事件的基于计算机的方法和设备,包括计算机程序产品。
背景技术
如今的计算机游戏越来越关注真实性并且努力拓展现实与游戏世界之间的联系。实现这个目的的一种方式包括将真实世界的对象无缝地集成到游戏的虚拟环境中。例如,玩家正坐在家里玩汽车竞赛游戏;然而,那场比赛中的对手(而不是非玩家人物)是真实汽车的化身(avatar),由此时此刻正在真实世界中的某处沿真实线路竞赛的真实驾驶员驾驶。由于真实世界的参赛者的动作的不可预知性,实时参与真实世界的竞赛是有挑战性的。
因此,在本领域中对于能将现实与游戏世界集成以为用户实现最佳游戏体验的技术有需要。
发明内容
模拟真实环境中的事件的一种途径是一方法。该方法包括确定用户控制对象在虚拟环境中的用户定位(location);基于真实数据对象在所述真实环境中的真实定位确定该真实数据对象在所述虚拟环境中相对于所述用户定位的虚拟定位;以及基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位。
模拟真实环境中的事件的另一种途径是一方法。该方法包括确定一个或多个真实世界对象与一个或多个虚拟对象之间在虚拟环境中的投影相交(projected intersect);以及基于所述一个或多个真实世界对象与所述一个或多个虚拟对象之间的投影相交确定使每个真实世界对象被投影为与至少一个虚拟对象相交的替代定位。
模拟真实环境中的事件的另一种途径是一方法。该方法包括标识真实世界对象的虚拟定位和真实世界定位;标识虚拟对象的虚拟定位;基于所述真实世界对象的虚拟定位、所述真实世界对象的真实世界定位、所述虚拟对象的虚拟定位或其任何组合确定所述真实世界对象与所述虚拟对象的投影相交;以及基于所述投影相交和与所述真实世界对象相关联的一个或多个所存储的虚拟定位修改所述真实世界对象的虚拟定位。
模拟真实环境中的事件的另一种途径是一计算机程序产品。该计算机程序产品实质体现在信息载体中并且包括可操作以使得数据处理设备进行如下操作的指令:确定用户控制对象在虚拟环境中的用户定位;基于真实数据对象在所述真实环境中的真实定位确定所述真实数据对象在所述虚拟环境中相对于所述用户定位的虚拟定位;以及基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位。
模拟真实环境中的事件的另一种途径是一系统。该系统包括配置为确定用户控制对象在虚拟环境中的用户定位的虚拟数据定位模块;配置为基于真实数据对象在所述真实环境中的真实定位确定所述真实数据对象在所述虚拟环境中相对于所述用户定位的虚拟定位的真实数据定位模块;以及配置为基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
模拟真实环境中的事件的另一种途径是一系统。该系统包括配置为标识真实世界对象的虚拟定位和真实世界定位的真实数据定位模块;配置为标识虚拟对象的虚拟定位的虚拟数据定位模块;配置为基于所述真实世界对象的虚拟定位、所述真实世界定位、所述虚拟对象的虚拟定位或其任何组合确定所述真实世界对象与所述虚拟对象的投影相交的定位投影模块;以及配置为基于所述投影相交和与所述真实世界对象相关联的一个或多个所存储的虚拟定位修改所述真实世界对象的虚拟定位的定位控制模块。
模拟真实环境中的事件的另一种途径是一系统。该系统包括用于确定用户控制对象在虚拟环境中的用户定位的装置;用于基于真实数据对象在所述真实环境中的真实定位确定所述真实数据对象在所述虚拟环境中相对于所述用户定位的虚拟定位的装置;以及用于基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位的装置。
在其他示例中,上述途径中的任何一种可以包括以下特征中的一个或多个。
在一些示例中,所述方法还包括确定所述真实数据对象的下一真实定位是否可用;以及基于与所述真实环境相关联的预定义路径和对所述真实数据对象的下一真实定位是否可用的确定控制所述真实数据对象在所述虚拟环境中的当前虚拟定位。
在其他示例中,所述方法还包括确定所述真实数据对象的附加真实定位是否可用;标识所述用户控制对象在所述虚拟环境中的下一用户定位;基于对所述真实数据对象的附加真实定位是否可用的确定和所述下一用户定位确定所述真实数据对象在所述虚拟环境中的一个或多个未来虚拟定位,所述一个或多个未来虚拟定位与将所述当前虚拟定位移动至与所述附加真实定位相关联的虚拟定位的路径相关联;以及基于所述一个或多个未来虚拟定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位。
在一些示例中,所述方法还包括标识所述用户控制对象在所述虚拟环境中的下一用户定位;基于所述真实数据对象在所述真实环境中的下一真实定位确定所述真实数据对象在所述虚拟环境中的下一虚拟定位;以及基于所述下一虚拟定位和所述下一虚拟定位与所述下一用户定位之间的实际距离控制所述真实数据对象的当前虚拟定位。
在其他示例中,所述方法还包括基于所述一个或多个被保存的真实定位确定所述真实数据对象在所述虚拟环境中的附加虚拟定位。
在一些示例中,所述方法还包括标识所述用户控制对象在所述虚拟环境中的附加用户定位;基于下一真实数据对象在所述真实环境中的真实定位确定所述下一真实数据对象在所述虚拟环境中的虚拟定位;以及基于所述虚拟定位、所述虚拟定位与所述用户控制对象的附加用户定位之间的实际距离以及与所述真实数据对象的下一虚拟定位相关联的时间顺序标识控制所述下一真实数据对象在所述虚拟环境中的当前虚拟定位。
在其他示例中,所述方法还包括基于所述一个或多个被保存的定位确定所述真实数据对象在所述虚拟环境中的附加虚拟定位,所述附加虚拟定位与下一时间顺序标识相关联;以及基于一个或多个下次被保存的定位和所述下一时间顺序标识确定所述下一真实数据对象在所述虚拟环境中的下一虚拟定位。
在一些示例中,所述方法还包括基于所述真实数据对象在所述真实环境中的下一真实定位确定所述真实数据对象在所述虚拟环境中的下一虚拟定位,所述下一虚拟定位不同于所述下一真实定位并且在所述用户控制对象前面;以及基于所述真实数据对象的下一虚拟定位控制所述真实数据对象的当前虚拟定位。
在其他示例中,所述真实数据对象在所述虚拟环境中的虚拟定位不同于所述真实数据对象在所述真实环境中的真实定位。
在一些示例中,所述方法还包括基于下一真实数据对象在所述真实环境中的真实定位确定相对于所述用户控制对象在所述虚拟环境中的用户定位,所述下一真实对象在所述虚拟环境中的虚拟定位;以及基于所述虚拟定位和与所述下一真实数据对象相关联的一个或多个被保存的真实定位控制所述下一真实数据对象在所述虚拟环境中的当前虚拟定位。
在其他示例中,其中所述确定所述虚拟定位与所述真实数据对象在所述真实环境中的移动实时或接近实时地发生。
在一些示例中,所述方法还包括将每个真实世界对象安置(position)成被投影为在相应的替代定位上相交。
在其他示例中,所述方法还包括确定对于所述一个或多个真实世界对象定位是否丢失;以及基于与相应的真实世界对象相关联的一个或多个被保存的定位为丢失数据的每个真实世界对象确定丢失的定位。
在一些示例中,所述系统还包括还被配置为确定所述真实数据对象的下一真实定位是否可用的真实数据定位模块;以及还被配置为基于与所述真实环境相关联的预定义路径和对所述真实数据对象的下一真实定位是否可用的确定控制所述真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
在其他示例中,所述系统还包括还被配置为确定所述真实数据对象的附加真实定位是否可用的真实数据定位模块;还被配置为标识所述用户控制对象在所述虚拟环境中的下一用户定位的虚拟数据定位模块;配置为基于对所述真实数据对象的附加真实定位是否可用的确定和所述下一用户定位确定所述真实数据对象在所述虚拟环境中的一个或多个未来虚拟定位的定位投影模块,所述一个或多个未来虚拟定位与将所述当前虚拟定位移动至与所述附加真实定位相关联的虚拟定位的路径相关联;以及还被配置为基于所述一个或多个未来虚拟定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
在一些示例中,所述系统还包括还被配置为标识所述用户控制对象在所述虚拟环境中的下一用户定位的虚拟数据定位模块;还被配置为基于所述真实数据对象在所述真实环境中的下一真实定位确定所述真实数据对象在所述虚拟环境中的下一虚拟定位的真实数据定位模块;以及还被配置为基于所述下一虚拟定位和所述下一虚拟定位与所述下一用户定位之间的实际距离控制所述真实数据对象的当前虚拟定位的定位控制模块。
在其他示例中,所述系统还包括还被配置为基于所述一个或多个被保存的真实定位确定所述真实数据对象在所述虚拟环境中的附加虚拟定位的真实数据定位模块。
在一些示例中,所述系统还包括还被配置为标识所述用户控制对象在所述虚拟环境中的附加用户定位的虚拟数据定位模块;还被配置为基于下一真实数据对象在所述真实环境中的真实定位确定所述下一真实数据对象在所述虚拟环境中的虚拟定位的真实数据定位模块;以及还被配置为基于所述虚拟定位、所述虚拟定位与所述用户控制对象的附加用户定位之间的实际距离以及与所述真实数据对象的下一虚拟定位相关联的时间顺序标识控制所述下一真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
在其他示例中,所述系统还包括还被配置为进行如下操作的真实数据定位模块:基于所述一个或多个被保存的定位确定所述真实数据对象在所述虚拟环境中的附加虚拟定位,所述附加虚拟定位与下一时间顺序标识相关联;以及基于一个或多个下次被保存的定位和所述下一时间顺序标识确定所述下一真实数据对象在所述虚拟环境中的下一虚拟定位。
在一些示例中,所述系统还包括还被配置为基于所述真实数据对象在所述真实环境中的下一真实定位确定所述真实数据对象在所述虚拟环境中的下一虚拟定位的真实数据定位模块,所述下一虚拟定位不同于所述下一真实定位并且在所述用户控制对象前面;以及还被配置为基于所述真实数据对象的下一虚拟定位控制所述真实数据对象的当前虚拟定位的定位控制模块。
在其他示例中,所述系统还包括还被配置为基于下一真实数据对象在所述真实环境中的下一真实定位确定相对于所述用户控制对象在所述虚拟环境中的用户定位,所述下一真实数据对象在所述虚拟环境中的虚拟定位的真实数据定位模块;以及还被配置为基于所述虚拟定位和与所述下一真实数据对象相关联的一个或多个被保存的真实定位控制所述下一真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
在一些示例中,所述系统还包括配置为确定一个或多个真实世界对象与一个或多个虚拟对象之间在虚拟环境中的投影相交的定位相交模块;以及配置为基于所述一个或多个真实世界对象与所述一个或多个虚拟对象之间的投影相交确定使每个真实世界对象被投影为与至少一个虚拟对象相交的替代定位的定位投影模块。
在其他示例中,所述系统还包括配置为将每个真实世界对象安置成被投影为在相应的替代定位上相交的定位控制模块。
在一些示例中,所述系统还包括配置为确定对于所述一个或多个真实世界对象定位是否丢失的真实数据定位模块;以及还被配置为基于与相应的真实世界对象相关联的一个或多个被保存的定位为丢失数据的每个真实世界对象确定丢失的定位的定位投影模块。
本文所描述的、模拟真实环境中的事件的技术提供下述优点中的一个或多个。所述事件模拟的一优点是可通过实现本文所描述的技术保持真实性(即可信性)的假象,从而提高用户的游戏体验的质量。所述事件模拟的另一优点是本文所描述的技术的实现可实时地发生以确保向用户呈现的数据对应于真实世界数据,从而提高用户的游戏体验的质量。
从下面结合附图所得到的详细描述中,本发明的其他方面和优点将变得显而易见,所述详细描述仅通过举例示意了本发明的原理。
附图说明
当结合附图阅读下面对各个实施例的描述时,从下面对各个实施例的描述中将更全面地理解本发明的上述及其他目标、特征和优点以及发明本身。
图1是示例性游戏系统的图示;
图2是另一个示例性游戏系统的图示;
图3是示例性游戏服务器的框图;
图4是示例性游戏处理的流程图;
图5是示例性游戏处理的另一个流程图;
图6是用于冲突避免的示例性游戏处理的另一个流程图;
图7是示例性游戏系统中的示例性对象的图示;
图8是示例性游戏系统中的示例性对象的另一个图示;
图9是示例性游戏处理的另一个流程图;
图10是示例性游戏系统中的示例性对象的另一个图示;
图11是示例性游戏系统中的示例性对象的另一个图示;
图12是示例性游戏处理的另一个流程图;
图13是另一个示例性游戏系统中的示例性对象的截屏;
图14是另一个示例性游戏系统中的示例性对象的另一个截屏;
图15是另一个示例性游戏系统中的示例性对象的另一个截屏;
图16是另一个示例性游戏系统中的示例性对象的另一个截屏;
图17是另一个示例性游戏系统中的示例性对象的另一个截屏;
图18是另一个示例性游戏系统中的示例性对象的另一个截屏;
图19是另一个示例性游戏系统中的示例性对象的另一个截屏;
图20是另一个示例性游戏系统中的示例性对象的另一个截屏;
图21是另一个示例性游戏系统中的示例性对象的另一个截屏;
图22是另一个示例性游戏系统中的示例性对象的另一个截屏;
图23是另一个示例性游戏系统中的示例性对象的另一个截屏;
图24是另一个示例性游戏系统中的示例性对象的另一个截屏;
图25是另一个示例性游戏系统中的示例性对象的另一个截屏;
图26是另一个示例性游戏系统的图示;
图27是示例性游戏处理的另一个流程图;以及
图28是示例性游戏处理的另一个流程图。
具体实施方式
大体来看,如今的计算机游戏越来越关注真实性并且努力拓展现实与游戏世界之间的联系。拓展真实性的示例是将真实世界的对象无缝地集成到游戏的虚拟环境中。例如,用户正坐在家里玩汽车竞赛游戏;然而,那场比赛中的对手(而不是非玩家人物)是真实汽车的化身,由此时此刻正在真实世界中的某处沿真实线路竞赛的真实驾驶员驾驶。该系统使得能够实时参与真实世界的竞赛,即在世界上别的地方实际正在进行的竞赛。尽管实时竞赛游戏在本文中作为示例,然而其他事件、运动和/或游戏也能够利用该系统将真实世界对象集成到虚拟环境中。
作为对用于模拟真实环境中的事件的系统的进一步概览,该系统捕获来自物理事件(例如汽车竞赛、运动会等)的信息,在该物理事件中真实世界对象(例如汽车、人、推土机等)与周围环境并且与彼此互动。该系统生成物理事件的虚拟表现,包括真实世界对象的虚拟表现,并且通过插入虚拟对象(例如计算机模拟、计算机游戏等)允许最终用户参与所述虚拟表现。该系统可以有利地捕获来自所述事件的状态信息以使该事件的虚拟表现尽可能符合实际。最终用户利用控制装置(例如键盘、鼠标、操纵杆、方向盘等)操纵所述虚拟表现内的虚拟对象。
图1是用于汽车竞赛示例的示例性游戏系统100的图示。系统100包括被安置在真实世界的汽车(即动态对象)上的汽车设备112(例如GPS接收器)。例如,GPS接收器112在整个竞赛事件110期间周期性地接收来自多个GPS卫星105的信号并且确定汽车的位置。汽车可配置有所示的其他设备112,诸如惯性测量单元(IMU)、遥测装置、移动式无线电和/或其他类型的通信(例如WiMax、CDMA等)。还在本地提供基站114(即通信方案),从而与汽车的移动无线电形成无线电(通信)链路。基站114接收来自汽车的信息并且将其中继到连网的服务器116。服务器116可以经由网络120将所述信息从汽车传送到数据库132。
无线电发射器将位置信息以及可从所述动态对象收集的任何其他遥测数据发送至无线电基站114。优选地,位置信息被快速更新,诸如以至少30Hz的速率。然而,系统100的等待时间(latency)不是无线电通信中的延迟而是实际事件110与客户端装置150中的表现之间的延迟。
其他事件信息118(诸如天气、旗标等)被从事件信息系统(未示出)传送至网络服务器116。服务器116可以经由网络120将事件信息传送至数据库132。
优选地,不同动态车辆中的每一个的无线电消息彼此可辨别并且可以在时间或频率上分开。汽车与基站114之间的通信不限于无线电通信,而也能够由其他类型的通信(例如Wifi、WiMax、红外光、激光等)覆盖。
事件工具集(toolset)134处理数据库132以使数据标准化和/或标识事件情景。万维网服务136提供用于检索和/或分析数据库132的万维网界面。一个或多个媒体播放器(media casters)138处理数据库132以向游戏服务器142、游戏引擎148和/或客户端装置150提供用于真实世界事件的实时或接近实时的数据流。游戏服务器142可以处理所述数据流并且向多个用户提供模拟的事件。客户端装置150可以处理数据流并且向用户提供模拟的事件。
游戏引擎148经由输入/输出模块144和/或人工智能(AI)模块146从媒体播放器138接收数据流。游戏引擎148处理所述数据流并且向用户提供模拟的事件。
尽管图1涉及汽车竞赛,然而该技术适用于实际上任何竞赛事件,其中虚拟用户可以参与真实世界竞赛事件(例如运动、游戏、汽车公开赛、划船比赛、赛马、摩托车竞赛、自行车竞赛等)的虚拟表现。
图2是另一个示例性游戏系统200的图示。系统200包括媒体播放器210、连接到媒体播放器210的数据库212、网络220、游戏服务器230和游戏引擎240。
游戏引擎240包括输入/输出模块241和输入/输出子系统243,用于经由网络220将信息发送至连网的游戏服务器230以及从连网的游戏服务器230接收信息。游戏引擎140还包括用于从用户控制装置270(例如操纵杆、键盘、鼠标等)接收用户输入的输入子系统255以及人工智能(AI)子系统245(例如确定投影相交周围的路径、确定返回当前真实世界位置的路径等)。
游戏引擎240的其他子系统或模块包括脚本引擎244(例如执行与虚拟环境相关联的脚本等)、计时器246、物理引擎247(例如确保虚拟环境中的对象遵守真实世界的物理约束、通过施加规则而确保真实性等)、声音管理器248、场景管理器249、空间划分模块250、冲突(collision)检测模块251(例如检测潜在冲突等)、动画引擎252、声音渲染器253和图形渲染器254。游戏引擎240存储游戏数据、从连网的服务器230接收真实世界对象的游戏内部(in-game)参数以及从AI模块245接收游戏内部数据和从其他源接收数据,诸如通过用户控制装置270所接收的用户输入。游戏引擎240还读取存储在本地的数据、与游戏服务器230通信并且生成图形、声音及其他反馈,以指示物理事件的虚拟表现,包括虚拟对象。所述图形、声音及其他反馈由游戏引擎240渲染在用户显示器260上。
系统200能够处理业余竞赛者的表现信息,但是不将这样的数据直接或间接地转发到连网的服务器230或媒体中心。在系统200依赖存放在万维网上的应用的条件下,这样的应用将在使用之前从万维网下载到最终用户客户端,以便在最终用户的控制台上而不是在万维网服务器上产生显示图像的任何渲染。
图3是示例性游戏服务器330的框图。游戏服务器330包括通信模块331、真实数据定位模块332、虚拟数据定位模块333、定位控制模块334、定位投影模块335、定位相交模块336、定位历史模块337、处理器338和存储装置339。游戏服务器330包括用于操作游戏服务器330的各种模块和/或装置。所述模块和/或装置可以是硬件和/或软件。例如,在游戏服务器330中所示意的模块和/或装置能够利用处理器来执行计算机可执行指令和/或包括用于执行计算机可执行指令的处理器(例如加密处理单元、现场可编程门阵列处理单元等)。应理解的是,游戏服务器330可以包括例如本领域已知的其他模块、装置和/或处理器和/或所示意的模块、装置和/或处理器的变化。
通信模块331传送来自/去往游戏服务器330的信息和/或数据。真实数据定位模块332基于真实数据对象在真实环境中的真实定位确定真实数据对象在虚拟环境中相对于用户定位的虚拟定位。真实数据定位模块332能确定真实数据对象的下一真实定位是否可用(例如确定来自真实数据对象的数据传输是否已停止、确定是否没有来自真实数据对象的输入数据传输等)。在一些示例中,虚拟定位与时间顺序标识相关联(例如时间=4:34.23;时间=45等)。在其他示例中,真实数据定位模块332基于一个或多个被保存的定位和时间顺序标识确定真实数据对象的虚拟定位。真实数据定位模块332能确定对于一个或多个真实世界对象定位是否丢失。
虚拟数据定位模块333确定用户控制对象在虚拟环境中的用户定位。虚拟数据定位模块333能够标识用户控制对象在虚拟环境中的下一用户定位。
定位控制模块334基于虚拟定位和与真实数据对象相关联的一个或多个被保存的真实定位控制真实数据对象在虚拟环境中的当前虚拟定位。定位控制模块334能基于与真实环境相关联的预定义路径以及对真实数据对象的下一真实定位是否可用的确定控制真实数据对象在虚拟环境中的当前虚拟定位。定位控制模块334能基于一个或多个未来虚拟定位控制真实数据对象在虚拟环境中的当前虚拟定位。定位控制模块334能基于虚拟定位和虚拟定位与用户定位之间的实际距离控制真实数据对象的当前虚拟定位。
定位投影模块335基于对真实数据对象的附加真实定位是否可用的确定和下一用户定位确定真实数据对象在虚拟环境中的一个或多个未来虚拟定位。一个或多个未来虚拟定位可以与将当前虚拟定位移动至与附加真实定位相关联的虚拟定位的路径相关联。
定位相交模块336确定一个或多个真实世界对象与一个或多个虚拟对象之间在虚拟环境中的投影相交。定位历史模块337存储一个或多个真实数据对象和/或一个或多个用户控制对象的定位。处理器338为游戏服务器330执行操作系统和/或任何其他计算机可执行指令。
存储装置339存储本文所描述的系统和/或与游戏服务器330相关联的任何其他数据。存储装置339可包括多个存储装置。存储装置339可包括例如长期存储装置(例如硬盘驱动、磁带存储装置、闪存存储器等)、短期存储装置(例如随机存取存储器、图形存储器等)和/或任何其他类型的计算机可读存储装置。
图4是利用例如图3的游戏服务器330的示例性游戏处理的流程图400。通信模块331接收(410)与真实数据对象相关联的数据。真实数据定位模块332检查(420)该数据的有效性(例如正确的格式、正确的参数等)并且处理该数据(例如将该数据转换为内部存储格式、将测量结果转换为标准测量结果等)。真实数据定位模块332确定(430)真实数据对象的下一真实定位是否可用(例如丢失的数据、所需的数据等)。如果下一数据不可用,则定位投影模块335确定(435)真实数据对象的一个或多个未来虚拟定位(例如通过插值、通过外推、通过投影等)。如果下一数据可用,则定位历史模块337存储(440)该数据。定位控制模块334处理(450)该数据以修改真实世界对象在虚拟环境中的虚拟定位。通信模块331将该数据(包括经修改的虚拟定位)传送(460)至图2的游戏引擎240。
图5是利用例如图3的游戏服务器330的示例性游戏处理的另一个流程图500。通信模块331接收(510)来自一个或多个网络部件(例如图1的数据库132、一个或多个媒体播放器138等)的数据。定位历史模块337将该数据存储(520)在存储装置339中。真实数据定位模块332确定(530)所模拟的事件的当前操作模式。
如果当前操作模式为真实模式,则通信模块331将当前帧输出(540)至图1的游戏引擎148。虚拟数据定位模块333检查(542)虚拟对象的数据(例如标识虚拟对象的定位、标识虚拟对象的走向等)。定位相交模块336确定(554)虚拟对象与真实世界对象之间是否有投影相交。如果没有投影相交,则输入数据的处理继续。如果有投影相交,则游戏服务器330将操作模式改变(546)为AI模式。
如果当前操作模式为AI模式,则真实数据定位模块332检查(550)虚拟对象的数据(例如检查以确保数据是准确的、检查以确保数据是完整的等)。定位相交模块336确定(552)虚拟对象与真实世界对象之间是否仍有投影相交。如果仍有投影相交,则定位控制模块334控制(553)虚拟环境中的真实世界对象以采取恰当的规避动作(evasive action)。如果没有投影相交,则定位投影模块335确定(554)使真实世界对象的虚拟定位返回其在虚拟环境中的真实世界定位的实际路径。定位控制模块334基于该路径移动(555)真实世界对象的虚拟定位。定位控制模块334确定(556)该虚拟定位是否是真实世界对象的当前真实定位。如果虚拟定位与物理定位不匹配,则定位控制模块334继续基于所述路径移动真实世界对象的虚拟定位。如果虚拟定位与物理定位匹配,则游戏服务器330将模式改变(557)为真实模式。
图6是例如利用图3的游戏服务器330的用于冲突避免的示例性游戏处理的另一个流程图600。真实数据定位模块332标识(610)真实世界对象的当前定位而虚拟数据定位模块333标识(610)虚拟对象的当前定位。定位投影模块335基于真实世界对象和虚拟对象的当前定位(例如在设定距离内等)确定(620)是否将要发生冲突。如果将要发生冲突,则定位控制模块334控制(625)真实世界对象的位置以防止冲突。如果将不会发生冲突,则真实数据定位模块332确定(630)真实世界对象的虚拟定位是否与真实世界对象的真实定位有延迟。
如果虚拟定位与真实定位没有延迟,则定位控制模块334控制(635)真实世界对象的虚拟定位以允许虚拟对象接手(take over)真实世界对象的虚拟定位。如果虚拟定位与真实定位有延迟,则虚拟数据定位模块333确定(640)真实世界对象超越(overtake)虚拟对象是否有可能。如果所述超越是有可能的,则定位控制模块334接手(645)对真实世界对象的虚拟定位的控制以避免冲突。如果所述超越是不可能的,则定位控制模块334控制(635)真实世界对象的虚拟定位以允许虚拟对象接手真实世界对象的虚拟定位。
图7是示例性游戏系统中的示例性对象710、720a和730a的图示并且示意了用户控制对象710a超越真实数据对象720a和730a。如所示意的那样,每个真实数据对象720a和730a分别包括一个或多个先前定位720(即720b、720c和720d)以及730(即730b、730c和730d)的历史。当用户控制对象710超越真实数据对象720a和730a时,真实数据对象720a和730a被安置在它们相应的历史内但超出实际距离740的定位上。在这个示例中,每个真实数据对象720a和730a被安置在基于对应的真实数据对象的历史和时间顺序的定位上。例如,如果真实数据对象720a被安置在定位720d上,则时间位置=3,而真实数据对象730a被安置在定位730d,则时间位置=3。在这个示例中,用户控制对象710正在超越的真实数据对象720a和730a的时间位置是相同的。
图8是示例性游戏系统中的示例性对象810、820a和830a的另一图示并且示意了用户控制对象810超越真实数据对象820a和830a。如所示意的那样,每个真实数据对象820a和830a分别包括一个或多个先前定位820(即820b、820c和820d)以及830(即830b、830c和830d)的历史。真实数据对象820a和830a正在超越用户控制对象810。然而,因为真实数据对象820a和830a在用户控制对象810的实际距离840内,真实世界对象820a和830a的虚拟定位分别处于虚拟定位820b和830b。在这个示例中,真实世界对象820a和830a的虚拟定位在时间顺序标识上对应,即时间位置=1。
图9是利用图3的游戏服务器330的示例性游戏处理的另一流程图900。流程图900示意了用户控制对象超越真实数据对象。定位历史模块337将真实数据对象的定位存储(910)在存储装置339和/或任何其他类型的存储装置(例如存储区域网络等)中。定位控制模块334确定(920)是否有用户控制对象对真实数据对象的超越。如果没有超越,则定位历史模块337继续存储(910)真实数据对象的定位。如果有超越,则定位控制模块334确定(930)是否有其他被超越的真实数据对象。
如果有其他被超越的真实数据对象,则真实数据定位模块332基于被超越的真实数据对象的时间帧定位(935)真实数据对象的时间帧和历史定位。定位控制模块334基于所述时间帧和历史定位控制(937)真实数据对象的定位。
如果没有任何其他被超越的真实数据对象,则真实数据定位模块332基于该真实数据对象的历史定位来定位(940)当前定位。定位控制模块334基于历史定位控制(945)真实数据对象的定位。
在一些示例中,系统通过分析用户控制对象的前进位置和/或用户控制对象的前进位置加上实际距离(例如用户控制对象的长度的百分比、设定距离等)来检测所述超越。
在其他示例中,在真实数据对象被用户控制对象超越之后,对象Z(真实数据对象)变为对象X。在这一点上,对象X和对象Y开始使用来自出自历史列表的时间帧的信息而不是实际接收的信息。对象X在历史列表中倒退直到对象X和Y达到具有相关定位的时间帧,该相关定位具有在用户控制对象后面的实际距离。从这个点,对象X将连续地使用具有相关信息的历史时间帧(即一个或多个被保存的定位)以将其自身定位在用户控制对象后面的实际距离上。时间信息包括实际时间帧与有效历史时间帧之间的时间帧差。实际时间帧与有效历史时间帧之间的时间帧差被称为dT(也被称为时间位置)。
在一些示例中,为了将所有真实数据对象(即对象Y)的位置和相对定位保持在用户控制对象后面,位于对象X后面的同样的所有真实对象将同时在它们相应的历史列表中倒退与对象X相同的数据帧量(dT)。换句话说,对象X后面的所有真实时间对象的dT可以连续地相同。用这种方式,用户控制对象后面的所有真实数据对象可以在时间上处于相同的历史定位。
在其他示例中,与用户控制对象的实际距离可以根据在用户控制对象的赛道上的定位、对该控制对象的调动(maneuver)和/或仅仅是随机地变化。所述时间信息(即dT)可以基于实际距离相应地更新。
图10是示例性游戏系统中的示例性对象1010、1020a和1030a的图示并且示意了真实数据对象1020a和1030a超越用户控制对象1010。如所示意的那样,每个真实数据对象1020a和1030a分别包括一个或多个先前定位1020(即1020b、1020c和1020d)以及1030(即1030b、1030c和1030d)的历史。真实数据对象1020a和1030a的虚拟定位分别是在时间位置=3处,1020d和1030d,即在与用户控制对象1010的实际距离1040之外。
图11是示例性游戏系统中的示例性对象1110、1120a和1130a的另一个图示并且示意了真实数据对象1120a超越用户控制对象1110。如所示意的那样,每个真实数据对象1120a和1130a分别包括一个或多个先前定位1120(即1120b、1120c和1120d)以及1130(即1130b、1130c和1130d)的历史。当真实世界对象1120a的真实世界定位1120a经过用户控制对象1110时,真实世界对象1120a的虚拟定位被移动回到真实世界定位1120a。在真实世界对象1120a返回真实世界定位后,对真实世界对象的控制回到真实世界对象1130c(例如对时间顺序标识的控制,时间位置=2)。在这点上,真实世界对象1130a的虚拟定位移动至虚拟定位1130c,因为这个虚拟定位最靠近真实世界定位1130a,但是仍然超出实际距离1140。
图12是利用例如图3的游戏服务器330的示例性游戏处理的另一个流程图1200。真实数据定位模块332使用历史时间帧确定(1210)在用户控制对象后面的每个真实数据对象(对象X和对象Y)的实际时间帧以定位真实数据对象(dT>0)而同时连续地检查真实数据对象在实际时间帧上的定位是否在用户控制对象前面。真实数据定位模块332确定(1220)真实数据对象是否超越用户控制对象。如果真实数据对象没有超越用户控制对象,则所述处理继续(1210)。
如果真实数据对象没有超越用户控制对象,则定位控制模块334确定(1230)确定所述超越是否可以符合实际并且可实现的方式发生。如果所述超越不能以符合实际并且可实现的方式发生,则所述处理继续(1210)。如果所述超越能以真实并且可实现的方式发生,则定位控制模块334使真实世界对象超越(1240)用户控制对象并且以符合实际的方式将该真实世界对象带回其在用户控制对象前面的实际时间帧和定位。
真实数据定位模块332确定(1250)真实数据对象是否是对象X(即在用户控制对象后面的第一真实数据对象)。如果真实数据对象是对象X,则真实数据定位模块332将在用户控制对象后面的下一真实数据对象指明(1260)为对象X。如果真实数据对象不是对象X,则所述处理继续(1210)。在一些示例中,在超越的真实数据对象后面的所有其他真实数据对象将同时在历史列表(即相关时间帧和定位)中前进,直到真实数据对象中的一个首先处于用户控制对象后面并且变成新的对象X。
图13是另一个示例性游戏系统中的示例性对象的截屏1300并且示意了虚拟环境1320中的用户控制对象1327以及对应于真实环境1310中的真实数据对象1315的真实数据对象1325。
图14是另一个示例性游戏系统中的示例性对象的另一个截屏1400并且示意了虚拟环境1420中的用户控制对象1427和真实数据对象1400。如所示意的那样,真实环境1410中的两个真实数据对象1412a和1412b在实际距离1430内而没有被示出为在虚拟环境1420中的用户控制对象1427后面。
图15是另一个示例性游戏系统中的示例性对象的另一个截屏1500并且示意了虚拟环境1520中的用户控制对象1527和真实数据对象。如所示意的那样,真实环境1510中的真实数据对象1512在实际距离1530内而没有被示出为在虚拟环境1520中的用户控制对象1527后面。
图16是另一个示例性游戏系统中的示例性对象的另一个截屏1600并且示意了虚拟环境1620中的用户控制对象1627和真实数据对象1622a和1622b。如所示意的那样,真实环境1610中的两个真实数据对象1612a和1612b部分地在实际距离内。然而,在这个示例中,所述两个真实数据对象1622a和1622b被示出为在虚拟环境1620中的用户控制对象1627前面。
图17是另一个示例性游戏系统中的示例性对象的另一个截屏1700并且示意了虚拟环境1720中在用户控制对象1727后面的真实数据对象1728。如所示意的那样,真实数据对象1712在真实环境1710中的真实定位不同于真实数据对象1728的虚拟定位,因为该虚拟定位由真实数据对象定位的历史列表控制。
图18是另一个示例性游戏系统中的示例性对象的另一个截屏1800并且示意了虚拟环境1820中在用户控制对象1827后面的真实数据对象1828。如所示意的那样,真实数据对象1812b在真实环境1810中的真实定位不同于真实数据对象1828的虚拟定位,因为该虚拟定位由真实数据对象定位的历史列表控制。此外,如所示意的那样,真实数据对象1812a不在虚拟环境1820内,因为真实数据对象1812a的虚拟定位超出了虚拟环境1820的示意距离(即在用户控制对象1827的可视范围之外)。
图19是另一个示例性游戏系统中的示例性对象的另一个截屏1900并且示意了虚拟环境1920中在用户控制对象1927后面的两个真实数据对象1928a和1928b。真实数据对象1928a和1928b基于各自的历史列表跟随用户控制对象1927,但是该定位的时间帧由第一位的真实数据对象1928b(即对象X)控制,其控制利用哪个定位的时机。真实数据对象1928a和1928b的虚拟定位不同于真实数据对象1912a和1912b在真实环境1910中的真实定位,因为真实定位在与虚拟环境1920中的用户控制对象1927的实际距离内。
图20是另一个示例性游戏系统中的示例性对象的另一个截屏2000并且示意了虚拟环境2020中在用户控制对象2027后面的真实数据对象2028。真实数据对象2028基于真实数据对象2028的历史列表跟随用户控制对象2027。真实数据对象2028的虚拟定位不同于真实数据对象2012在真实环境2010中的真实定位。
图21是另一个示例性游戏系统中的示例性对象的另一个截屏2100并且示意了虚拟环境2120中在用户控制对象2127后面的真实数据对象2128。真实数据对象2128基于真实数据对象2128的历史列表跟随用户控制对象2127。真实数据对象2128的虚拟定位不同于真实数据对象2112在真实环境2110中的真实定位。
图22是另一个示例性游戏系统中的示例性对象的另一个截屏2200并且示意了虚拟环境2220中在用户控制对象周围的实际距离2230。两个真实数据对象2212a和2212b在真实环境2210中的真实定位在被置于虚拟环境2220内时处于用户控制对象2227的实际距离2230内。换句话说,如果所述两个真实数据对象2212a和2212b的真实定位对应于真实数据对象的虚拟定位,则该虚拟定位将处于用户控制对象2227周围的实际距离2230内。在这个示例中,所述两个真实数据对象被置于对应于真实数据对象2228a和2228b的历史时间帧(例如在当前定位后面时间位置=2)的定位上。
图23是另一个示例性游戏系统中的示例性对象的另一个截屏2300并且示意了虚拟环境2320中在用户控制对象2327周围的实际距离2330。三个真实数据对象2312a、2312b和2312c在真实环境2310中的真实定位在被置于虚拟环境2220内时处于用户控制对象2327的实际距离2330内。这样,所述三个真实数据对象2312a、2312b和2312c虚拟环境2220没有被示意在虚拟环境2220中,因为虚拟定位在虚拟环境2320中的用户控制对象2327的视线之外。
图24是另一个示例性游戏系统中的示例性对象的另一个截屏2400并且示意了虚拟环境2420中在用户控制对象2427周围的实际距离2430。真实数据对象2412在真实环境2410中的真实定位在被置于虚拟环境2410内时处于用户控制对象2427的实际距离2430之外。这样,真实数据对象被置于真实数据对象2428在虚拟环境2420中的的虚拟定位上,其对应于真实数据对象2412在真实环境2410中的真实定位。
图25是另一个示例性游戏系统中的示例性对象的另一个截屏2500并且示意了虚拟环境2520中在用户控制对象2527周围的实际距离2530。如所示意的那样,真实数据对象2512a在真实环境2510中的真实定位在实际距离2530内。真实数据对象2528a的虚拟定位基于真实数据对象2528a的历史时间帧而被置于真实数据对象2528a在虚拟环境2520中的虚拟定位上。此外,因为真实数据对象2512b在真实环境2510中的真实定位在真实数据对象2512a的真实定位后面,真实数据对象2528b的虚拟定位处于真实数据对象2528b的历史时间帧,其对应于真实数据对象2528a的虚拟定位的时间位置(例如真实数据对象2528a和2528b两者都在时间位置=2处)。
表1示意了真实数据对象的定位的示例性历史列表。尽管表1示意了秒和英里×英尺(miles by feet),然而定位的列表可以利用任何类型的时间度量(例如毫秒、实际时间等)和/或任何类型的位置度量(例如GPS坐标、经度/纬度等)。
表1-定位的历史列表
Figure BPA00001374857900221
在一些示例中,根据比赛的类型和/或所允许的战术,所述系统可以接手对真实数据对象的控制以让它与用户控制对象互动。所述系统可将下面参数中的一个或多个用于互动:
1.与现实的偏差根据需要尽量小;
2.不影响其他真实数据对象;
3.允许互动;
4.互动是符合实际的(例如在物理限制内等);
5.互动在用户/玩家的预期内;和/或
6.互动提升用户/玩家的游戏体验
在互动之后,所述系统可符合实际地使真实数据对象返回它们的有效真实数据定位。
上面所描述的互动也可以发生在虚拟世界中,其中同时存在多个用户控制对象。换句话说,系统对真实数据对象的控制可以为多个用户控制对象同时发生。
虚拟世界可以是基于计算机的三维环境,其具有对象、逻辑、规则、状态和/或目标。所述虚拟世界可以用图形表示、是真实世界环境的模拟表现和/或是计算机游戏。
在一些示例中,需要关于对象的位置、方向和状态的信息来表现虚拟世界中的对象。这个信息来自于数据源。所述数据源可以是下面各项的一个或多个:i)计算机输入装置,如键盘、鼠标、操纵杆、方向盘、游戏手柄等;ii)另一台计算机或计算机网络;iii)被监视的真实世界对象;iv)所存储的数据文件;v)在网络上流动的数据;vi)生成表现信息的一组算法;和/或vii)任何其他类型的数据源(例如数据库、外部生成的数据、内部生成的数据等)。然而,应当理解的是这个列表不是全部包括的。
在其他示例中,数据源可实时地和/或延迟地提供信息。如果虚拟世界中的多个对象变成它们来自不同数据源的表现信息而没有意识到彼此,则它们在虚拟世界中的表现可能导致虚拟世界不符合实际的呈现(即该呈现与虚拟世界的对象、逻辑、规则、状态和/或目标不匹配)。
在一些示例中,真实世界对象(RWO)是移动的对象,其(1)存在于真实世界中,(2)具有相关联的操纵智能,和/或(3)由虚拟环境(世界)内的化身表现。基于环景,RWO参考真实世界中的对象及其在虚拟世界中的化身两者。举例来说在竞赛游戏中,这是任何被追踪的真实世界的赛车(包括驾驶者)。
在其他示例中,虚拟对象(VO)是移动的对象,其(1)只存在于虚拟环境中,而没有任何真实世界的等同体,和/或(2)具有某些相关联的操纵智能。该虚拟对象可以是用户控制的或由人工智能控制的。举例来说在竞赛游戏中,这是由玩家控制的赛车。
在一些示例中,人工智能(AI)模块是系统的一部分。AI模块可以使得对象在虚拟世界中的表现与虚拟世界的对象、逻辑、规则、状态和/或目标匹配的方式来改变用于对象的信息(例如来自数据源的信息)。AI模块可进一步模拟对也存在于所述虚拟世界中的其他对象的存在的认知。
AI模块可有利地保持从“无介入情形”的变形尽可能小以便虚拟世界尽可能地接近真实世界。AI模块可有利地、逐渐地并且符合实际地使真实世界对象返回“无介入”情形。
图26是另一个示例性游戏系统2600的图示并且示意了具有两辆汽车(即对象)的竞赛游戏(即虚拟世界)。系统2600包括虚拟世界2610、对应于用户控制对象的数据源A 2620和对应于真实世界对象的数据源B 2630。虚拟世界2610从数据源A 2620和B 2630接收数据。虚拟世界2610与AI模块2640通信以在虚拟世界中模拟真实世界事件(例如确定对象之间的相交、确定替代路径等)。虚拟世界2610包括对象2612(例如真实世界对象、用户控制对象等)、逻辑2613(例如两个对象不能占据同一空间等)、规则2614(例如速度、物理规律等)、状态2615(例如竞赛、旗标等)和目标2616(例如终点线、出口等)。例如,一辆汽车由用户(即数据源A)控制而其他汽车由通过因特网所接收的来自真实汽车的遥测数据(即数据源B)控制。
作为附加示例,两辆汽车在游戏中都被表现。用户控制汽车A在遥测汽车B前面几米处。两辆汽车都受竞赛游戏的规则支配并且被表现为遵照从它们对应的数据源所接收的数据。
作为另外的示例,用户踩刹车而汽车A开始减速。AI模块2640确定汽车A和汽车B之间的冲突可能发生。在一些实施例中,基于虚拟环境的逻辑、规则和/或目标,冲突不是竞赛游戏的期望目标。这样,AI模块2640改变用于所涉及的对象的数据。这样,汽车B的进程和速度被改变以便防止冲突。
作为附加示例,当基于逻辑、规则和/或目标,根据实际数据的冲突的风险最小时,AI模块2640逐渐改变汽车B的路线和速度以便汽车B能快速而符合实际地返回其实际位置、路线和速度。
AI模块2640可以例如在虚拟环境2610中操作以用于预测和插值管理和/或用于避免重叠。AI模块2640有利地预测两个移动的目标何时有即将冲突的风险。AI模块2640可连续地监视虚拟环境2610并且在给定当前情形的参数的情况下确定对象可以去哪里。经由这种监视和确定,AI模块2640可以确定是否需要规避调动(evasivemaneuver)。
在一些示例中,当从真实世界对象接收的数据流中断时,预测是重要的。换句话说,化身仍然需要符合实际地表现并且AI模块2640需要基于其当前位置和先前已知的位置(即历史信息)预测真实世界对象的位置。表2示意了真实世界数据点和预测数据点。
表2
  时间(以秒计)   真实世界定位   预测定位
  0   1.3英里   -
  1   1.5英里   -
  2   1.7英里   -
  3   2.1英里
  4   无数据   2.5英里
  5   无数据   2.9英里
  6   无数据   3.3英里
AI模块2640可有利地预测实际数据点之间的插入数据点。换句话说,如果AI模块2640仅每三秒从真实世界对象接收数据点,则AI模块2640可在时间上为真实世界对象在中间插入数据点。表3示意了真实世界数据点和插入的数据点。
表3
  时间(以秒计)   真实世界定位   插入的定位
  0   1.3英里   -
  1   1.4英里   -
  2   -   1.5英里
  3   1.6英里   -
  4   1.7英里   -
  5   -   1.8英里
  6   1.9英里   -
AI模块2640可以例如操作以避免无论何时在任何对象之间的重叠(例如对象可以接触彼此,但决不能占据相同的空间)。在虚拟环境2610中,假定真实世界对象同时存在于真实世界中,并且因此绝不会占据相同的空间。因而通常,只有虚拟对象相对真实世界对象的相对位置必须被测试(除非在真实世界对象的位置已经被改变以避免重叠时)。
如果虚拟对象和真实世界对象靠得很近(例如位置不是符合实际的、冲突即将发生等),AI模块2640可以例如采取行动以保持真实性。例如,如果竞赛游戏中的两辆汽车靠得很近,则真实的驾驶员将启动规避调动以防止他自己与另一辆汽车相撞。
AI模块2640有利地操作以为虚拟环境保持目标2616。目标2616可以包括虚拟环境的可信性、真实性、实时性和/或稳定性。
AI模块2640可以操作以为用户保持可信性的假像。即使由于虚拟对象对当前情形的影响而不可能精确地对实际情形建模,所述假象始终应当足够好以使玩家能够相信它是完全符合实际的。例如,如果重叠问题的解决方案通过只是留在其他汽车后面来实现,则在真实对象处于它们前面的定位时而突然跳到那个位置,则用户将注意到并且游戏体验将会受到损害。
AI模块2640可以操作以保持真实性的假象。所述真实性通常较可信性更严格一些并且没有那么务实。作为真实性与可信性之间的差别的示例,当我们需要仅比实际的最高速度稍高一点点的速度以回到正确情形时:真实性将不会考虑这一点,但是在给定任何用户都将不太可能会注意到该差别这一事实的情况下,可信性却会。这样,AI模块2640可优先考虑虚拟环境的目标以确保最佳平衡的用户体验。
AI模块2640可以实时地和/或基于所存储的信息操作虚拟环境。AI模块2640可以实时地、以短的延迟和/或基于所存储的信息操作。AI模块2640可以基于所存储的信息操作以在实际的真实世界事件发生后提供按次付费服务(pay-per-view service)。换句话说,AI模块2640可以基于所存储的信息多次重播竞赛事件。在给定当前可用的仅有数据的情况下,AI模块2640可进一步实时地(例如相对于实际的真实世界事件、相对于所存储的事件的时间帧等)计算解决方案(例如经过方法、超越方法等)。AI模块2640可在下一状态实际向用户显示之前对其进行计算。
AI模块2640可以操作稳定的虚拟环境。稳定的虚拟环境包括在合理的时间终止来自数据源的任何改变和/或限制被移位的真实世界对象之间的重叠。例如,一旦任何真实世界对象被移位以防止与虚拟对象的重叠发生,该真实世界对象就可能与虚拟环境中的另一真实世界对象重叠。用这种方式,真实世界对象的移位会变得不稳定,每次位移会触发另一位移等等。AI模块2640操作以确保这种位移链终止,并且优选地不会不必要地对许多真实世界对象进行移位。这样,AI模块2640操作以使虚拟环境尽可能接近真实地表现。
图27是利用例如图26的AI模块2640的示例性游戏处理的另一个流程图2700。AI模块2640接收(2710)与真实世界对象相关联的数据。AI模块2640处理(2720)所接收的数据并且关联(2730)经处理的数据与真实世界对象。AI模块2640确定(2740)对于真实世界对象数据是否丢失(即不可用)。如果数据对于真实世界对象不可用,则AI模块2640确定(2745)丢失的数据(例如插值)。如果数据可用,则AI模块2640确定(2750)在真实世界对象和/或用户控制对象之间是否有任何相交或投影相交。如果没有相交或投影相交,则处理继续(2710)。如果有相交或投影相交,则AI模块2640确定(2755)真实世界对象相交或投影相交的替代位置。
图28是利用例如图26的AI模块2640的示例性游戏处理的另一个流程图2800。AI模块2640标识(2810)真实世界对象,其中虚拟环境中的虚拟定位不对应于真实世界对象的真实世界定位。AI模块2640确定(2820)所标识的真实世界对象是否能返回它们的真实世界定位。如果所标识的真实世界对象不能返回它们的真实世界定位,则处理继续(2810)。如果所标识的真实世界对象能返回它们的真实世界定位,则AI模块2640使真实世界对象以符合实际的方式(例如速度约束、定位约束等)返回(2830)它们的真实世界定位。
在一些示例中,AI模块2640可以操作以预测冲突、插入数据点和/或避免重叠。
在一些示例中,所述系统允许用户控制对象在竞赛和/或任何其他类型的事件中与由真实世界信息控制的对象竞争。信息以这样的方式被呈现给用户,即用户感觉他/她真正在参与那个竞赛。用户控制对象可以呈现在真实数据对象的区域中而同时保持真实数据对象在用户控制对象前面和/或后面的相对定位,如在真实世界中那样。
真实数据对象与用户控制对象之间的互动可以例如由利用人工智能(AI)引擎(也被称为AI模块)的客户端管理。AI引擎包括例如冲突检测模块,以管理(即防止)虚拟赛车与真实世界赛车(也被称为GPS管理的赛车)之间的冲突。尽管真实数据对象与用户控制对象之间的互动被描述为竞赛事件,然而该互动能发生在可包括真实世界对象和虚拟对象的任何类型的事件中(例如田径、足球、舞蹈等)。
在一些示例中,真实世界对象与虚拟对象之间的互动是利用根据虚拟汽车的速度和/或方位角从虚拟汽车投影的多边形通道(polygontunnel)来管理的。当最终用户将虚拟汽车安置成非常靠近GPS管理的汽车中的一辆时,多边形通道中的一个与该辆GPS管理的赛车相交,标识两车辆之间潜在的冲突。
在其他示例中,真实世界对象与虚拟对象之间的互动是利用实际距离区域(例如动态生成的距离、预先确定的距离等)和/或真实数据对象的历史来管理的。当最终用户将虚拟汽车安置成非常靠近GPS管理的汽车中的一辆时,该辆GPS管理的汽车进入虚拟汽车的实际距离区域,标识车辆之间潜在的冲突。
例如,一旦检测到冲突,AI引擎临时接手对GPS管理的汽车的控制,以自主(autonomous)模式操作它。AI引擎可以启动超越序列,确定在赛道上的特定点处超越所述虚拟汽车是否明智,以及在给定赛道上的位置的情况下对该虚拟汽车的超越是否能以切合实际的的速度完成。如果AI引擎决定使自主的汽车超越虚拟汽车,则AI引擎执行超越序列,超越所述虚拟汽车并且重新计算其在逐帧的序列上的位置。当自主的汽车完成超越进程时,该汽车被重置到GPS管理的汽车的实际位置。该重置在一系列帧上发生一次以提供平滑而符合实际的过渡。一旦自主的汽车达到GPS管理的汽车的位置,则该辆汽车再次由来自真实世界汽车的GPS数据管理。
在一些示例中,AI引擎确定真实世界对象对虚拟对象的超越。例如,在竞赛游戏示例中,超越问题出现在真实世界汽车处在虚拟汽车后面而真实世界汽车比虚拟汽车开得更快时。在这个示例中,真实世界汽车必须行驶通过虚拟汽车——当然,这不是实际情况。在这个示例中,对真实世界汽车的控制临时由AI引擎接手。现在,AI引擎可以具有若干个相互联系的目标:汽车应当从其当前所在的地方开始、应当以看上去合理的方式超越虚拟汽车、应当在超越之后回到赛道上以及最具体地,应当在真实世界对象在一数据点的准确时间回到该数据点——并且同时必须避开所有其他真实世界对象和虚拟对象。为了这样做,所述系统可采取下面的步骤:(i)计算虚拟汽车在实际路径上的投影与真实世界汽车之间的当前距离;(ii)推导以0为中心的偏移=f(距离)的函数。该曲线的形状应当符合应用本身——不同因素的示例包括真实世界对象和虚拟对象的相对速度、相对大小以及可调动性。而且,在开始距离作为参数时该偏移函数应当返回0(因为在位移开始时没有使用偏移)。作为最后的要求,该函数应当确保对象不撞击彼此,即使在小角落的情况下也不撞击彼此,(iii)在每个时间步长处,系统计算真实世界汽车的实际位置之间沿实际路径的距离并且将这个距离用作所述偏移函数的输入。这个偏移函数的结果是该汽车应当被移位的距离,该距离垂直于实际路径的局部切线。该偏移应当被施加在最符合逻辑的方向上:如果挡路的虚拟汽车在实际路径的左侧,则该偏移应当将真实世界汽车向右移动。
本文所描述的是用户控制对象与真实数据对象之间的互动的示例。在这些示例中,如下面所描述的那样利用用户控制对象、真实数据对象和对象X。用户控制对象是虚拟世界中的对象,其中定位和其他性质由用户(例如玩家、裁判等)控制。真实数据对象是虚拟世界中的对象,其中定位和其他性质从真实世界中的真实对象获得。对于每个真实数据对象,至少对于每个时间帧的定位信息被存储在历史列表中。而且,对于该时间帧,来自真实数据对象的其他信息也可以被存储(例如速度、走向、定向等)。对象X是在用户控制对象后面的第一个真实数据对象。
在一些示例中,所述系统确保真实世界对象尽可能保持在它们的实际位置上,同时也将虚拟对象考虑在内。特别地,所述系统能确保真实世界对象的表现(也被称为真实数据对象)将虚拟对象(也被称为用户控制对象)考虑在内并且恰当地反应。
在其他示例中,非固定的真实世界对象被称为动态对象,而固定的那些被称为静态对象。所述系统捕获的信息允许该系统确定例如动态对象在什么地方、它们在做什么和/或它们代表什么。
在一些示例中,所述系统收集并且分配关于真实世界动态对象在事件的进程期间的位置的详细信息(例如实际位置、相对位置等)。该系统还可收集来自事件的状态信息(例如旗标、符号、天气等)。
在其他示例中,所述系统包括位置定位装置,用于连续地确定动态对象在事件期间相对于环境内的静态对象的真实世界位置。该位置定位装置可以包括例如提供动态对象在事件的进程期间的实时更新的位置的一个或多个位置传感器。作为示例,每个动态对象可包括相应的位置传感器,诸如全球定位系统(GPS)接收器。GPS接收器可以高达50Hz的速率重新计算它的位置。如有必要(例如在最终用户显示器刷新速率不同于位置更新速率的情况下),该系统可以在连续的输入之间进行插值。
在一些示例中,动态对象还可包括感测与动态对象有关的其他信息的附加传感器(例如RPM、速度、油门位置、排档位置、检测加速度的当前速率和旋转特性(包括y轴旋转角(pitch)、x轴旋转角(roll)和z轴旋转角(yaw)等)的变化的惯性测量单元(IMU))。在其他示例中,速度信息可从位置导出而不是直接从速度传感器(诸如真实世界对象上的速度计)获得。
在一些示例中,所述系统包括用于将GPS接收器所获得的位置分辨率提升至约+/-10cm,优选地在水平方向上接近1cm而在高度上接近2cm的特征。这样的提升特征包括例如差分GPS(DGPS)、载波相位提升GPS(CPGPS)、Omnistar校正消息、陆基基准站、NovatelWaypoint软件和/或与IMU的结合。该系统还可包括从静态对象和/或事件状态(例如旗标、符号、天气等)收集信息的一个或多个传感器。
在一些示例中,事件信息中的一些,诸如天气、旗标、符号等可以被收集(例如手动收集、用传感器自动收集等)并且被馈送至连网的服务器中。
在其他示例中,连网的服务器可访问存储装置(例如数据库)和/或包括管理终端。连接至因特网的所有系统可包括用于保护及隐私的防火墙和/或其他安全措施。
在一些示例中,最终用户游戏站通过因特网和/或任何其他类型的通信网络接收来自媒体播放器的数据。最终用户游戏站可包括个人计算机(例如移动电话、其他手持通信装置、传送装置等)和/或游戏平台(例如XBOX游戏平台、PS3游戏平台等)。尽管GPS定位方案可包括GPS时间值,虚拟表现内的定时无需例如同步到任何GPS定时信息。
再参考图1,连网的服务器接收来自动态对象和本地环境的所有原始信息。这个信息中的至少一些经由通信方案来到该连网的服务器,所述通信方案可包括无线电基站和/或任何其他类型的收发器。连网的服务器将这个数据存储在数据库中,而且根据需要过滤、优化和/或修复该数据。例如,连网的服务器执行循环冗余校验(CRC)并且检查是否有电信中断。连网的服务器以适当的格式存储所述数据以进一步处理(例如通过媒体播放器)。
在一些示例中,媒体播放器是连接至因特网并且配置为从存储装置取回事件数据并且以连续的流将数据发送至最终用户游戏站(通常被称为游戏客户端)的服务器,所述最终用户游戏站在最终用户(即玩家)的控制下。所述数据可包括位置数据、遥测数据(在其可用时)以及更一般地是从物理事件获得或导出的任何数据。
在其他示例中,多个媒体播放器可以按地理上分散的布置(例如世界范围)来设置以提供到游戏客户端的最佳连接。所述客户端可以从本地媒体中心取回流式数据。到游戏客户端的数据流可选地能通过加密被保护。
在一些示例中,所述系统可包括一个或多个服务,诸如接收服务、数据库服务、过滤和优化服务和/或游戏服务器。接收服务应用在后台运行以接收原始数据并将其存储在数据库中。数据库服务可以是为高容量数据业务所配置的标准的现成数据库应用。可创建若干数据库以存储与动态对象(例如汽车)、环境(例如赛道)及其他信息有关的信息。过滤和优化服务是检验存储在数据库中的数据、从其中滤除奇异值、计算、优化并且添加数据库中丢失的值(即数据中断)的应用。
游戏服务器是使游戏客户端有可能连接至媒体播放器的应用。游戏服务器将指令发送至数据库控制器以从数据库中选择哪些数据将被传送(实时的或历史竞赛的)。游戏服务器还从数据库中收集被选择的数据并且将它们作为数据包发送至连接的游戏客户端。尽管图1示意了与其他服务分开的游戏服务器,然而游戏服务器可被集成到这些其他服务中,多个游戏服务器可在所述系统内操作和/或游戏服务器可被集成到该系统的任何其他部分。
在其他示例中,所述系统包括处理少量数据中断的特征。例如,该系统使用卡尔曼滤波以过滤并且最终预测由于丢失或损坏的数据封包而可能经历的少量数据中断。该系统还对丢失的包的数量进行计数并且预测丢失的包的值。对于大量数据中断(卡尔曼滤波器对其不再能可靠地预测动态对象可能在什么地方)(例如1-2秒或更多),连网的服务器将信号发送至客户端。在中断期间中,客户端以自主模式管理动态对象,如将在下面更详细地描述的那样。在一些实例中,在流式数据被接收的时间与这样的数据被播放或使用的时间之间提供并且保持延迟。
在一些示例中,所述系统包括允许用户暂停、倒回和/或快进事件的特征。暂停、倒回和/或快进特征可用在录制的事件播放中和/或用在事件的实况直播中。例如,用户可能正在模拟实况竞赛中的赛车并且需要休息。在这个示例中,用户可以暂停模拟并且在休息之后继续该模拟。用户可以例如在休息之后从暂停的定位继续而然后以录制播放模拟的形式玩和/或用户可以将该竞赛快进到实况模拟(例如基于所模拟的汽车过去的表现对其进行重置、跳转到停车点等)。
在其他示例中,所述系统包括一个或多个客户端应用,以客户端-服务器配置通过网络(诸如因特网)附接至连网的服务器。客户端应用的输入是来自连网的服务器的数据流。可限定所述数据的准确格式,诸如:消息ID;汽车ID;总的单元状态;GPS信号等。客户端应用特征以图形方式显示了实时(或接近实时)的数据能在虚拟世界中被解析并且形象化。所述应用还显示了最终用户(即游戏参与者)可与虚拟世界互动的区域。
在其他示例中,客户端包括初始化能力。这种能力可包括初始化虚拟表现内的动态和虚拟对象、初始化图形引擎、打开日志文件和/或配置用户控制器(例如鼠标、键盘、游戏手柄、方向盘等)。用户控制器允许最终用户(即玩家)控制被加入到物理事件的虚拟表现中的虚拟对象。初始化能力还处理配置设定,诸如虚拟事件的可选用户视角视图(例如自顶向下、自顶向下并以活动的汽车为视图的中心以及汽车后面的视图)。客户端还读取描述真实世界环境中的静态对象(诸如竞赛赛道(路线))的点的集合。
在一些示例中,事件的本地环境的表现包括静态对象(即赛道)的位置信息。例如,所述位置信息包括沿竞赛赛道的点的纬度、经度和高度。这样的点可从地形图(诸如Google Earth)和/或任何其他地图源获得。
在其他示例中,对于其中有可观的数据中断(即其中丢失的数据多于等待时间因而数据插值不可能)的情形,每个受影响的GPS管理的汽车临时以自主模式由AI引擎控制。AI引擎以逐帧的过程将汽车从最后已知的GPS位置转移到可能的最佳路径(例如对于给定环境所确定的理想路径(诸如竞赛赛道)、最短长度路径、最短时间路径,由路径点(waypoint)限定的路径、沿曲线,沿曲线的内部路线、沿曲线的外部路线等),该可能的最佳路径对于给定的赛道是先前确定的,以最后已知的速度、方位角和加速度继续。游戏引擎继续尝试从服务器接收有效数据。一旦获得有效数据,AI引擎以逐帧的过程将自主控制的汽车以平滑而符合实际的方式从基本路径移动至实际位置。
在一些示例中,所述系统允许一个或多个最终用户访问来自连网的服务器的事件数据并且通过虚拟对象的插入而参与物理事件的包括真实世界的动态的对象的虚拟表现。可使用来自连网的服务器的流式事件数据与该事件实时地或至少接近实时地实现最终用户的虚拟表现。最终用户还可选择使用通过连网的服务器从数据库获得的先前记录的数据来参与更早的事件的虚拟表现。在任一事件中,所述系统通过本文所描述的各种特征为最终用户提供符合实际的体验,就像最终用户就存在于所述物理事件中一样,与真实世界对象一起参加。
上面所述的系统和方法可以数字电子线路、以计算机硬件、固件和/或软件的形式实现。该实现可作为计算机程序产品(即实质体现在信息载体中的计算机程序)。该实现可例如在机器可读的存储装置中,以由数据处理设备执行或用于控制数据处理设备的操作。该实现可以例如是可编程处理器、计算机和/或多个计算机。
计算机程序可以任何形式的编程语言(包括编译型和/或解释型语言)写成,并且计算机程序可以任何形式部署,包括作为独立程序或作为子例程、元素和或适于在计算环境中使用的其他单元。计算机程序可被部署为在一个计算机上或在一个地点的多个计算机上执行。
方法步骤可由一个或多个可编程处理器执行,该一个或多个可编程处理器通过对输入数据进行操作并且生成输出来执行计算机程序以执行本发明的功能。方法步骤还可由专用逻辑线路执行并且设备可被实现为专用逻辑线路。例如,所述线路可以是FPGA(现场可编程门阵列)和/或ASIC(专用集成电路)。模块、子例程和软件代理可能指的是实现那个功能的计算机程序、处理器、专用线路、软件和/或硬件的部分。
适于执行计算机程序的处理器举例来说包括通用和专用微处理器,并且任何类型的数字计算机的任何一个或多个处理器。通常,处理器从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的必要元素是用于执行指令的处理器和用于存储指令和数据的一个或多个存储装置。通常,计算机可包括用于存储数据的一个或多个大容量存储装置(例如磁盘、磁光盘或光盘)或能够可操作地耦合以从该用于存储数据的一个或多个大容量存储装置接收数据和/或向其传输数据。
数据传输和指令也可在通信网络上发生。适于体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,举例来说包括半导体存储装置。所述信息载体可以例如是EPROM、EEPROM、闪存装置、磁盘、内部硬盘、可移除盘、磁光盘、CD-ROM和/或DVD-ROM盘。处理器和存储器可由专用逻辑线路补充和/或并入专用逻辑线路。
为了提供与用户的互动,上面所描述的技术可实现在具有显示装置的计算机上。显示装置例如可以是阴极射线管(CRT)和/或液晶显示(LCD)监视器。与用户的互动例如可以是向用户显示信息,以及用户可通过键盘和指点装置(例如鼠标或轨迹球)向计算机提供输入(例如与用户界面元素互动)。其他类型的装置可用于提供与用户的互动。其他装置例如可以是以任何形式的传感反馈(例如视觉反馈、听觉反馈或触觉反馈)向用户提供的反馈。来自用户的输入例如可以任何形式被接收,包括声音、语言和/或触觉输入。
上面所描述的技术可以用分布式计算系统实现,其包括后端部件。后端部件例如可以是数据服务器、中间件部件和/或应用服务器。上面所描述的技术可以用包括前端部件的分布式计算系统实现。前端部件例如可以是具有图形用户界面的客户端计算机、用户可通过其与示例实现互动的万维网浏览器和/或用于传送装置的其他图形用户界面。所述系统的部件可由任何形式或媒介的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(LAN)、广域网(WAN)、因特网、有线网和/或无线网。
所述系统可包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络互动。客户端和服务器的关系借助运行在相应的计算机上并且彼此之间具有客户端-服务器关系的计算机程序而产生。
基于包的网络例如可以包括因特网、电信级因特网协议(IP)网络(例如局域网(LAN)、广域网(WAN)、校园网(CAN)、城域网(MAN)、家域网(HAN)、私有IP网络、IP专用交换机(IPBX)、无线网络(例如无线电接入网(RAN)、802.11网络、802.16网络、通用分组无线电服务(GPRS)网络、HiperLAN)和/或其他基于包的网络。基于电路的网络例如可以包括公共交换电话网(PSTN)、专用交换机(PBX)、无线网络(例如RAN、蓝牙、码分多址(码分多址)网络、时分多址(TDMA)网络、全球移动通信系统(GSM)网络)和/或其他基于电路的网络。
客户端装置例如可以包括计算机、带浏览器装置的计算机、电话、IP电话、移动装置(例如蜂窝电话、个人数字助理(PDA)装置、膝上型计算机、电子邮件装置)和/或其他通信装置。浏览器装置包括例如具有万维网浏览器(例如可从微软公司得到的MicrosoftInternetExplorer
Figure BPA00001374857900362
可从Mozilla公司得到的MozillaFirefox)的计算机(例如台式计算机、膝上型计算机)。移动计算装置包括例如个人数字助理(PDA)。
“包含”、“包括”和/或其各自的复数形式是开放式的并且包括所列举的部分,还可包括未被列举的部分。“和/或”是开放式的并且包括所列举的部分中的一个或多个以及所列举的部分的组合。
尽管已参考本发明的优选实施例具体示出并且描述了本发明,然而本领域的技术人员将理解的是可以在形式和细节上对其进行各种改变而不背离所附权利要求所涵盖的本发明的范围。

Claims (30)

1.一种用于模拟真实环境中的事件的方法,所述方法包括:
确定用户控制对象在虚拟环境中的用户定位;
基于真实数据对象在所述真实环境中的真实定位确定真实数据对象在所述虚拟环境中相对于所述用户定位的虚拟定位;以及
基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位。
2.根据权利要求1所述的方法,其还包括:
确定所述真实数据对象的下一真实定位是否可用;以及
基于与所述真实环境相关联的预定义路径和对所述真实数据对象的下一真实定位是否可用的确定控制所述真实数据对象在所述虚拟环境中的当前虚拟定位。
3.根据权利要求2所述的方法,其还包括:
确定所述真实数据对象的附加真实定位是否可用;
标识所述用户控制对象在所述虚拟环境中的下一用户定位;
基于对所述真实数据对象的附加真实定位是否可用的确定和所述下一用户定位确定所述真实数据对象在所述虚拟环境中的一个或多个未来虚拟定位,所述一个或多个未来虚拟定位与将所述当前虚拟定位移动至与所述附加真实定位相关联的虚拟定位的路径相关联;以及
基于所述一个或多个未来虚拟定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位。
4.根据权利要求1所述的方法,其还包括:
标识所述用户控制对象在所述虚拟环境中的下一用户定位;
基于所述真实数据对象在所述真实环境中的下一真实定位确定所述真实数据对象在所述虚拟环境中的下一虚拟定位;以及
基于所述下一虚拟定位和所述下一虚拟定位与所述下一用户定位之间的实际距离控制所述真实数据对象的当前虚拟定位。
5.根据权利要求4所述的方法,其还包括基于所述一个或多个被保存的真实定位确定所述真实数据对象在所述虚拟环境中的附加虚拟定位。
6.根据权利要求4所述的方法,其还包括:
标识所述用户控制对象在所述虚拟环境中的附加用户定位;
基于下一真实数据对象在所述真实环境中的真实定位确定所述下一真实数据对象在所述虚拟环境中的虚拟定位;以及
基于所述虚拟定位、所述虚拟定位与所述用户控制对象的附加用户定位之间的实际距离以及与所述真实数据对象的下一虚拟定位相关联的时间顺序标识控制所述下一真实数据对象在所述虚拟环境中的当前虚拟定位。
7.根据权利要求6所述的方法,其还包括:
基于所述一个或多个被保存的定位确定所述真实数据对象在所述虚拟环境中的附加虚拟定位,所述附加虚拟定位与下一时间顺序标识相关联;以及
基于一个或多个下次被保存的定位和所述下一时间顺序标识确定所述下一真实数据对象在所述虚拟环境中的下一虚拟定位。
8.根据权利要求1所述的方法,其还包括:
基于所述真实数据对象在所述真实环境中的下一真实定位确定所述真实数据对象在所述虚拟环境中的下一虚拟定位,所述下一虚拟定位不同于所述下一真实定位并且在所述用户控制对象前面;以及
基于所述真实数据对象的下一虚拟定位控制所述真实数据对象的当前虚拟定位。
9.根据权利要求1所述的方法,其中所述真实数据对象在所述虚拟环境中的虚拟定位不同于所述真实数据对象在所述真实环境中的真实定位。
10.根据权利要求1所述的方法,其还包括:
基于下一真实数据对象在所述真实环境中的真实定位确定相对于所述用户控制对象在所述虚拟环境中的用户定位,所述下一真实数据对象在所述虚拟环境中的虚拟定位;以及
基于所述虚拟定位和与所述下一真实数据对象相关联的一个或多个被保存的真实定位控制所述下一真实数据对象在所述虚拟环境中的当前虚拟定位。
11.根据权利要求1所述的方法,其中所述确定所述虚拟定位与所述真实数据对象在所述真实环境中的移动实时或接近实时地发生。
12.一种用于模拟真实环境中的事件的方法,所述方法包括:
确定一个或多个真实世界对象与一个或多个虚拟对象之间在虚拟环境中的投影相交;以及
基于所述一个或多个真实世界对象与所述一个或多个虚拟对象之间的投影相交确定使每个真实世界对象被投影为与至少一个虚拟对象相交的替代定位。
13.根据权利要求12所述的方法,其还包括将每个真实世界对象安置成被投影为在相应的替代定位上相交。
14.根据权利要求12所述的方法,其还包括:
确定对于所述一个或多个真实世界对象定位是否丢失;以及
基于与相应的真实世界对象相关联的一个或多个被保存的定位为丢失数据的每个真实世界对象确定丢失的定位。
15.一种用于模拟真实环境中的事件的方法,所述方法包括:
标识真实世界对象的虚拟定位和真实世界定位;
标识虚拟对象的虚拟定位;
基于所述真实世界对象的虚拟定位、所述真实世界对象的真实世界定位、所述虚拟对象的虚拟定位或其任何组合确定所述真实世界对象与所述虚拟对象的投影相交;以及
基于所述投影相交和与所述真实世界对象相关联的一个或多个所存储的虚拟定位修改所述真实世界对象的虚拟定位。
16.一种计算机程序产品,其实质体现在信息载体中,所述计算机程序产品包括可操作以使得数据处理设备进行如下操作的指令:
确定用户控制对象在虚拟环境中的用户定位;
基于真实数据对象在所述真实环境中的真实定位确定所述真实数据对象在所述虚拟环境中相对于所述用户定位的虚拟定位;以及
基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位。
17.一种用于模拟真实环境中的事件的系统,所述系统包括:
配置为确定用户控制对象在虚拟环境中的用户定位的虚拟数据定位模块;
配置为基于真实数据对象在所述真实环境中的真实定位确定所述真实数据对象在所述虚拟环境中相对于所述用户定位的虚拟定位的真实数据定位模块;以及
配置为基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
18.根据权利要求17所述的系统,其还包括:
还被配置为确定所述真实数据对象的下一真实定位是否可用的真实数据定位模块;以及
还被配置为基于与所述真实环境相关联的预定义路径和对所述真实数据对象的下一真实定位是否可用的确定控制所述真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
19.根据权利要求18所述的系统,其还包括:
还被配置为确定所述真实数据对象的附加真实定位是否可用的真实数据定位模块;
还被配置为标识所述用户控制对象在所述虚拟环境中的下一用户定位的虚拟数据定位模块;
配置为基于对所述真实数据对象的附加真实定位是否可用的确定和所述下一用户定位确定所述真实数据对象在所述虚拟环境中的一个或多个未来虚拟定位的定位投影模块,所述一个或多个未来虚拟定位与将所述当前虚拟定位移动至与所述附加真实定位相关联的虚拟定位的路径相关联;以及
还被配置为基于所述一个或多个未来虚拟定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
20.根据权利要求17所述的系统,其还包括:
还被配置为标识所述用户控制对象在所述虚拟环境中的下一用户定位的虚拟数据定位模块;
还被配置为基于所述真实数据对象在所述真实环境中的下一真实定位确定所述真实数据对象在所述虚拟环境中的下一虚拟定位的真实数据定位模块;以及
还被配置为基于所述下一虚拟定位和所述下一虚拟定位与所述下一用户定位之间的实际距离控制所述真实数据对象的当前虚拟定位的定位控制模块。
21.根据权利要求20所述的系统,其还包括还被配置为基于所述一个或多个被保存的真实定位确定所述真实数据对象在所述虚拟环境中的附加虚拟定位的真实数据定位模块。
22.根据权利要求20所述的系统,其还包括:
还被配置为标识所述用户控制对象在所述虚拟环境中的附加用户定位的虚拟数据定位模块;
还被配置为基于下一真实数据对象在所述真实环境中的真实定位确定所述下一真实数据对象在所述虚拟环境中的虚拟定位的真实数据定位模块;以及
还被配置为基于所述虚拟定位、所述虚拟定位与所述用户控制对象的附加用户定位之间的实际距离以及与所述真实数据对象的下一虚拟定位相关联的时间顺序标识控制所述下一真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
23.根据权利要求22所述的系统,其还包括:
还被配置为进行如下操作的真实数据定位模块:
基于所述一个或多个被保存的定位确定所述真实数据对象在所述虚拟环境中的附加虚拟定位,所述附加虚拟定位与下一时间顺序标识相关联;以及
基于一个或多个下次被保存的定位和所述下一时间顺序标识确定所述下一真实数据对象在所述虚拟环境中的下一虚拟定位。
24.根据权利要求17所述的系统,其还包括:
还被配置为基于所述真实数据对象在所述真实环境中的下一真实定位确定所述真实数据对象在所述虚拟环境中的下一虚拟定位的真实数据定位模块,所述下一虚拟定位不同于所述下一真实定位并且在所述用户控制对象前面;以及
还被配置为基于所述真实数据对象的下一虚拟定位控制所述真实数据对象的当前虚拟定位的定位控制模块。
25.根据权利要求17所述的系统,其还包括:
还被配置为基于下一真实数据对象在所述真实环境中的下一真实定位确定相对于所述用户控制对象在所述虚拟环境中的用户定位,所述下一真实数据对象在所述虚拟环境中的虚拟定位的真实数据定位模块;以及
还被配置为基于所述虚拟定位和与所述下一真实数据对象相关联的一个或多个被保存的真实定位控制所述下一真实数据对象在所述虚拟环境中的当前虚拟定位的定位控制模块。
26.一种用于模拟真实环境中的事件的系统,所述系统包括:
配置为确定一个或多个真实世界对象与一个或多个虚拟对象之间在虚拟环境中的投影相交的定位相交模块;以及
配置为基于所述一个或多个真实世界对象与所述一个或多个虚拟对象之间的投影相交确定使每个真实世界对象被投影为与至少一个虚拟对象相交的替代定位。
27.根据权利要求26所述的系统,其还包括配置为将每个真实世界对象安置成被投影为在相应的替代定位上相交的定位控制模块。
28.根据权利要求26所述的系统,其还包括:
配置为确定对于所述一个或多个真实世界对象定位是否丢失的真实数据定位模块;以及
还被配置为基于与相应的真实世界对象相关联的一个或多个被保存的定位为丢失数据的每个真实世界对象确定丢失的定位的定位投影模块。
29.一种用于模拟真实环境中的事件的系统,所述系统包括:
配置为标识真实世界对象的虚拟定位和真实世界定位的真实数据定位模块;
配置为标识虚拟对象的虚拟定位的虚拟数据定位模块;
配置为基于所述真实世界对象的虚拟定位、所述真实世界定位、所述虚拟对象的虚拟定位或其任何组合确定所述真实世界对象与所述虚拟对象的投影相交的定位投影模块;以及
配置为基于所述投影相交和与所述真实世界对象相关联的一个或多个所存储的虚拟定位修改所述真实世界对象的虚拟定位的定位控制模块。
30.一种用于模拟真实环境中的事件的系统,所述系统包括:
用于确定用户控制对象在虚拟环境中的用户定位的装置;
用于基于真实数据对象在所述真实环境中的真实定位确定所述真实数据对象在所述虚拟环境中相对于所述用户定位的虚拟定位的装置;以及
用于基于所述虚拟定位和与所述真实数据对象相关联的一个或多个被保存的真实定位控制所述真实数据对象在所述虚拟环境中的当前虚拟定位的装置。
CN2009801476775A 2008-09-24 2009-09-24 用于模拟真实环境中的事件的系统和方法 Pending CN102238985A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9969708P 2008-09-24 2008-09-24
US61/099697 2008-09-24
PCT/IB2009/006924 WO2010035106A1 (en) 2008-09-24 2009-09-24 System and method for simulating events in a real environment

Publications (1)

Publication Number Publication Date
CN102238985A true CN102238985A (zh) 2011-11-09

Family

ID=41395970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801476775A Pending CN102238985A (zh) 2008-09-24 2009-09-24 用于模拟真实环境中的事件的系统和方法

Country Status (9)

Country Link
US (1) US20120100911A1 (zh)
EP (1) EP2326397A1 (zh)
JP (1) JP2012503513A (zh)
KR (1) KR20110069824A (zh)
CN (1) CN102238985A (zh)
AU (1) AU2009295574A1 (zh)
BR (1) BRPI0919128A2 (zh)
RU (1) RU2011116066A (zh)
WO (1) WO2010035106A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110546614A (zh) * 2017-05-05 2019-12-06 微芯片技术股份有限公司 在串行通信链路上以均匀延迟传输事件的设备和方法
CN111316334A (zh) * 2017-11-03 2020-06-19 三星电子株式会社 用于动态地改变虚拟现实环境的设备和方法
CN111589107A (zh) * 2020-05-14 2020-08-28 北京代码乾坤科技有限公司 虚拟模型的行为预测方法和装置

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100271367A1 (en) * 2009-04-22 2010-10-28 Sony Computer Entertainment America Inc. Method and apparatus for combining a real world event and a computer simulation
GB2511668A (en) 2012-04-12 2014-09-10 Supercell Oy System and method for controlling technical processes
US8814674B2 (en) 2012-05-24 2014-08-26 Supercell Oy Graphical user interface for a gaming system
US8954890B2 (en) * 2012-04-12 2015-02-10 Supercell Oy System, method and graphical user interface for controlling a game
US9697675B2 (en) * 2013-04-26 2017-07-04 Atlas Gaming Technologies Pty Ltd. Gaming machine having interactive virtual objects and method
JP5902229B2 (ja) 2013-07-09 2016-04-13 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation シミュレーション方法およびシステム
US20160236088A1 (en) * 2013-12-23 2016-08-18 Hong C. Li Provision of a virtual environment based on real time data
US9398213B1 (en) 2014-07-11 2016-07-19 ProSports Technologies, LLC Smart field goal detector
US9724588B1 (en) 2014-07-11 2017-08-08 ProSports Technologies, LLC Player hit system
US9305441B1 (en) 2014-07-11 2016-04-05 ProSports Technologies, LLC Sensor experience shirt
US9610491B2 (en) 2014-07-11 2017-04-04 ProSports Technologies, LLC Playbook processor
US10264175B2 (en) 2014-09-09 2019-04-16 ProSports Technologies, LLC Facial recognition for event venue cameras
EP3278308A4 (en) * 2015-04-02 2018-10-24 Catapult Group International Ltd Sports virtual reality system
US10025375B2 (en) 2015-10-01 2018-07-17 Disney Enterprises, Inc. Augmented reality controls for user interactions with a virtual world
US10872379B1 (en) 2016-04-11 2020-12-22 State Farm Mutual Automobile Insurance Company Collision risk-based engagement and disengagement of autonomous control of a vehicle
US10019904B1 (en) 2016-04-11 2018-07-10 State Farm Mutual Automobile Insurance Company System for identifying high risk parking lots
US10026309B1 (en) 2016-04-11 2018-07-17 State Farm Mutual Automobile Insurance Company Networked vehicle control systems to facilitate situational awareness of vehicles
US11851041B1 (en) 2016-04-11 2023-12-26 State Farm Mutual Automobile Insurance Company System for determining road slipperiness in bad weather conditions
US10247565B2 (en) 2016-04-11 2019-04-02 State Farm Mutual Automobile Insurance Company Traffic risk avoidance for a route selection system
US10233679B1 (en) 2016-04-11 2019-03-19 State Farm Mutual Automobile Insurance Company Systems and methods for control systems to facilitate situational awareness of a vehicle
US10486708B1 (en) 2016-04-11 2019-11-26 State Farm Mutual Automobile Insurance Company System for adjusting autonomous vehicle driving behavior to mimic that of neighboring/surrounding vehicles
US10222228B1 (en) 2016-04-11 2019-03-05 State Farm Mutual Automobile Insurance Company System for driver's education
RU2723920C1 (ru) * 2016-11-11 2020-06-18 Телефонактиеболагет Лм Эрикссон (Пабл) Поддержка программного приложения дополненной реальности
US11511176B2 (en) * 2017-03-13 2022-11-29 Holodia Inc. Method for generating multimedia data associated with a system for practicing sports
US10357715B2 (en) 2017-07-07 2019-07-23 Buxton Global Enterprises, Inc. Racing simulation
US11954651B2 (en) * 2018-03-19 2024-04-09 Toyota Jidosha Kabushiki Kaisha Sensor-based digital twin system for vehicular analysis
GB2574650A (en) * 2018-06-14 2019-12-18 Sony Interactive Entertainment Inc System and method for generating an input signal
US11826654B2 (en) 2021-05-25 2023-11-28 International Business Machines Corporation Dynamic spawn assets based on news feeds in a game
US20230025389A1 (en) * 2021-07-23 2023-01-26 Electronic Arts Inc. Route generation system within a virtual environment of a game application

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001005476A1 (en) * 1999-07-21 2001-01-25 Thian Liang Ong System for simulating events in a real environment
GB2365360A (en) * 2000-08-02 2002-02-20 Timothy James Ball A simulation game with realtime input from real competitors
GB2365790A (en) * 2000-08-02 2002-02-27 Timothy James Ball Competitive simulation with real time input from real event
DE10049124A1 (de) * 2000-10-02 2002-04-18 Manfred Goettling Verfahren zum Betrieb eines Rennsimulators und eine zugeordnete Vorrichtung
CN101222957A (zh) * 2005-07-14 2008-07-16 查尔斯·D·休斯顿 基于gps的观众和参与方的体育比赛系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2726370B1 (fr) * 1994-10-28 1997-01-10 Vallortigara Alain Systeme de controle du positionnement dans le domaine du sport, d'une balle et des joueurs
JPH09114370A (ja) * 1995-10-18 1997-05-02 Denso Corp ナビゲーション装置
US6080063A (en) * 1997-01-06 2000-06-27 Khosla; Vinod Simulated real time game play with live event
US8160994B2 (en) * 1999-07-21 2012-04-17 Iopener Media Gmbh System for simulating events in a real environment
US20040224740A1 (en) * 2000-08-02 2004-11-11 Ball Timothy James Simulation system
DE10109282A1 (de) * 2001-02-26 2002-09-05 Andreas Korzeniewski Computerspiel
JP2003175278A (ja) * 2001-12-11 2003-06-24 Webstream:Kk 競技仮想参加装置、競技仮想参加方法、競技仮想参加プログラム、競技観戦装置、競技観戦方法、競技観戦プログラム、及び、競技観戦画像生成サーバ
US20050148388A1 (en) * 2003-07-17 2005-07-07 Fabricio Vayra Method and system for interaction with real-time events from a remote location, through use of a computer, game console or other module
US7402106B2 (en) * 2004-03-24 2008-07-22 Bay Tek Games, Inc. Computer controlled car racing game

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001005476A1 (en) * 1999-07-21 2001-01-25 Thian Liang Ong System for simulating events in a real environment
GB2365360A (en) * 2000-08-02 2002-02-20 Timothy James Ball A simulation game with realtime input from real competitors
GB2365790A (en) * 2000-08-02 2002-02-27 Timothy James Ball Competitive simulation with real time input from real event
DE10049124A1 (de) * 2000-10-02 2002-04-18 Manfred Goettling Verfahren zum Betrieb eines Rennsimulators und eine zugeordnete Vorrichtung
CN101222957A (zh) * 2005-07-14 2008-07-16 查尔斯·D·休斯顿 基于gps的观众和参与方的体育比赛系统和方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110546614A (zh) * 2017-05-05 2019-12-06 微芯片技术股份有限公司 在串行通信链路上以均匀延迟传输事件的设备和方法
CN110546614B (zh) * 2017-05-05 2023-09-26 微芯片技术股份有限公司 在串行通信链路上以均匀延迟传输事件的设备和方法
CN111316334A (zh) * 2017-11-03 2020-06-19 三星电子株式会社 用于动态地改变虚拟现实环境的设备和方法
CN111316334B (zh) * 2017-11-03 2024-03-08 三星电子株式会社 用于动态地改变虚拟现实环境的设备和方法
CN111589107A (zh) * 2020-05-14 2020-08-28 北京代码乾坤科技有限公司 虚拟模型的行为预测方法和装置

Also Published As

Publication number Publication date
RU2011116066A (ru) 2012-10-27
JP2012503513A (ja) 2012-02-09
US20120100911A1 (en) 2012-04-26
WO2010035106A1 (en) 2010-04-01
KR20110069824A (ko) 2011-06-23
EP2326397A1 (en) 2011-06-01
BRPI0919128A2 (pt) 2015-12-08
AU2009295574A1 (en) 2010-04-01

Similar Documents

Publication Publication Date Title
CN102238985A (zh) 用于模拟真实环境中的事件的系统和方法
US20200330874A1 (en) Providing a Shared Virtual Experience in a Location-based Game
JP7364627B2 (ja) 並行現実ゲーム内の活動を用いたプレイヤーの現実世界位置の検証
Jacob et al. Issues in the development of location-based games
US8485878B2 (en) Geocaching games having virtual prizes awarded in an associated video game and related methods and computer program products
EP2291826A1 (en) System for simulating events in a real environment
US9630107B2 (en) Location-based online games for mobile devices and in-game advertising
US10912989B2 (en) Detecting and preventing cheating in a location-based game
CN105759953A (zh) 信息处理装置、信息处理方法以及程序
CN105451834A (zh) 两转盘轮盘游戏
CN107744659A (zh) 角色位置显示方法及装置
EP3566756B1 (en) System and method for playing online game
US20150209667A1 (en) Application failure management in computer- implemented online games
US20210228988A1 (en) Background process for importing real-world activity data into a location-based game
JP7260254B2 (ja) ゲームシステム、ゲーム提供方法及びプログラム
US11007429B2 (en) Background process for importing real-world activity data into a location-based game
JP7260255B2 (ja) ゲームシステム、ゲーム提供方法及びプログラム
CA3218608A1 (en) System and method for facilitating virtual participation in a racing event
KR20240025639A (ko) 부정행위 방지 데이터 흐름의 지연 시간 단축

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1163580

Country of ref document: HK

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111109

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1163580

Country of ref document: HK