CN102498699A - 虚拟世界中的位置追踪 - Google Patents

虚拟世界中的位置追踪 Download PDF

Info

Publication number
CN102498699A
CN102498699A CN2010800227068A CN201080022706A CN102498699A CN 102498699 A CN102498699 A CN 102498699A CN 2010800227068 A CN2010800227068 A CN 2010800227068A CN 201080022706 A CN201080022706 A CN 201080022706A CN 102498699 A CN102498699 A CN 102498699A
Authority
CN
China
Prior art keywords
incarnation
resolution
virtual world
grid
mobile message
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.)
Granted
Application number
CN2010800227068A
Other languages
English (en)
Other versions
CN102498699B (zh
Inventor
A·戈韦尔
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.)
Jagex Ltd
Original Assignee
Jagex Ltd
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 Jagex Ltd filed Critical Jagex Ltd
Publication of CN102498699A publication Critical patent/CN102498699A/zh
Application granted granted Critical
Publication of CN102498699B publication Critical patent/CN102498699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • A63F13/10
    • A63F13/12
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • 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/45Controlling the progress of the video game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player 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
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5553Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history user representation in the game field, e.g. avatar
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

可以使用多个位代码分辨率来向客户端传达化身(505)在虚拟世界中的位置,以对虚拟世界服务器与虚拟世界客户端之间的所需通信带宽进行最小化、由此允许向每个其他玩家传输所有化身的位置。低分辨率位代码可以基于在虚拟世界上重叠的更低分辨率栅格,而更高分辨率位代码可以基于在虚拟世界上重叠的更高分辨率栅格(500)。在一个示例中,虚拟世界服务器可以基于在将向其发送位置信息的化身(505)与虚拟世界中的其它化身之间的距离来确定将使用的位代码分辨率。分辨率可以包括空间分辨率(其中更近化身的位置具有更高分辨率位代码)或时间分辨率(其中位置信息的传输频率对于更近化身而言更大)。可以通过使用游程长度编码来进一步压缩传输流中的位置信息。

Description

虚拟世界中的位置追踪
技术领域
背景技术
虚拟世界提供用图形呈现的如下仿真环境,多个个人可以在这些仿真环境中共同参与共享的体验。例如,虚拟世界已经用来对虚构的游戏环境、现实世界的位置和环境、以及现实生活中的活动和交互进行仿真。通常,用户可以在与协调和管理与多个客户端对应的数据的虚拟世界服务器对接的同时,运行他们自己的计算机或者其它设备上的客户端应用程序或者模块。
创建和管理虚拟世界的一个方面是在环境内追踪和标识用户位置。具体而言,一个角色或者用户(由化身表示)的位置一般需要广播给其他角色或者用户,从而使得其他角色或者用户的客户端可以基于地点用以图形方式描绘化身,并且允许在适当定位的化身之间的通信。这让用户在可查看距离内看到虚拟世界中的的其他用户,并且还让客户端应用程序确定何时在用户的显示器上呈现其它化身。在某些实例中,虚拟世界可以包括数以十万计(或者更多)的并发用户。为了传输每个化身的位置而要求的带宽量因而可能巨大。
在Leahy等人的第7,181,690号(“Leahy‘690”)和第7,493,558号(“Leahy‘558”)美国专利中描述了一种用于确定向给定客户端传输哪些化身位置的已知方法。在Leahy‘690和Leahy‘558这两者中,服务器被配置成确定与用户的地点最接近的N个化身的列表及其位置,并且向用户的客户端软件传输此类信息。在Leahy中,与用户的地点最接近的N个化身的列表可以表示并非所有占据虚拟世界的用户。然而,此类解决方案并非优选的,因为用户关于远方用户根本一无所知,这令用户难以对位于远方的好友进行定位、发现虚拟世界中的宁静区域以在相对的隔离中执行某些动作,或者对虚拟世界中的拥挤区域进行定位以与多个其他用户进行交互。
发明内容
提供本发明内容以采取简化形式介绍下文在具体实施方式中进一步描述的概念选择。本发明内容既不是旨在标识所要求保护的主题内容的关键特征或者实质特征,也不是旨在用来限制所要求保护的主题内容的范围。
在此描述的一个或者多个方面涉及传输化身在虚拟世界中的位置信息。例如,虚拟世界系统可以被配置成确定用来报告第一化身的位置移动信息的栅格分辨率,其中栅格分辨率基于从具有不同栅格分辨率的多个栅格选择栅格,并且其中每个栅格对应于虚拟世界。虚拟世界系统继而可以通过对化身在选择的栅格中的当前位置与化身在选择的栅格中的先前位置进行比较,确定第一化身的位置移动信息,并且继而向连接到虚拟世界系统的客户端传输第一化身的位置移动信息。
根据在此描述的其它方面,虚拟世界服务器可以确定多个化身中的每个化身在虚拟世界中的当前位置,其中多个化身包括虚拟世界中的所有化身。虚拟世界服务器继而可以基于对多个化身中的每个化身的当前位置与多个化身中的每个化身在与虚拟世界对应的第一栅格中的对应先前位置进行比较,生成多个化身中的每个化身的第一位置偏移数据,并且基于对多个化身中的每个化身的当前位置与多个化身中的每个化身在与虚拟世界对应的第二栅格中的对应先前位置进行比较,生成多个化身中的每个化身的第二位置偏移数据。第一栅格和第二栅格具有不同分辨率。虚拟世界服务器继而针对多个化身中的每个化身,仅选择第一位置偏移数据和第二位置偏移数据之一,以用于向第一虚拟世界客户端设备传输,并且向第一虚拟世界客户端设备传输至少全部多个化身的选择的位置偏移数据。
根据另一方面,可以基于从具体化身的位置起的、在高分辨率范围中的化身数目,修改高分辨率范围/阈值。例如,如果在高分辨率范围中的化身数目高于化身阈值,则可以减少高分辨率范围,直至化身数目处于或者低于化身阈值,并且系统继而可以在发送高分辨率范围内的化身的位置信息时使用高分辨率位代码,并且在发送高分辨率范围以外的化身的位置信息时使用低分辨率位代码。
根据另一方面,可以将位代码格式化成传输流。附加地或者备选地,可以使用游程长度编码(RLE)将某个类型的连续位代码(例如静止化身)压缩成缩短的位代码。例如,可以将用于一连串100个连续静止化身的位置改变信息压缩成代表所有100个静止化身的单个11位RLE位代码。
根据另一方面,虚拟世界系统可以预先生成每个化身的单对低分辨率和高分辨率位置位代码,以减少处理时间。虚拟世界系统可以基于在先前更新中向接收客户端报告的位置信息类型从高分辨率和低分辨率位置信息中进行选择。对于某些客户端,如果客户端没有一个或者多个其它化身的最新位置信息,则可以在运行中生成位代码。
根据在此描述的其它方面,接收客户端设备可以接收虚拟世界中的多个化身的位置偏移信息。对于针对其接收位置偏移信息的每个化身,客户端设备确定位置偏移信息的分辨率,并且基于确定的分辨率应用接收的位置偏移信息,以确定化身的与位置偏移信息对应的新位置。在第一分辨率中接收与第一化身对应的位置偏移信息,并且在第二分辨率中接收与第二化身对应的位置偏移信息。
附图说明
在附图中通过示例的方式举例说明(而非限制)特定实施例,其中相似标号表示相似元素,并且其中:
图1是在此描述的一个或者多个方面可以使用于其中的说明性网络环境。
图2是图示了根据在此描述的一个或者多个方面的示例虚拟世界客户端的框图。
图3是图示了根据在此描述的一个或者多个方面的示例虚拟世界服务器的框图。
图4图示了根据在此描述的一个或者多个方面的说明性虚拟世界。
图5A和5B图示了根据在此描述的一个或者多个方面的、具有两个不同栅格分辨率的栅格系统的示例虚拟世界。
图6A和6B图示了根据在此描述的一个或者多个方面的、表示化身在虚拟世界中的位置的示例位代码。
图7是图示了根据在此描述的一个或者多个方面的、用于确定和散布化身在虚拟世界中的位置信息的示例服务器方法的流程图。
图8图示了根据在此描述的一个或者多个方面的示例高分辨率位代码阈值。
图9图示了根据在此描述的一个或者多个方面的、用于高时间分辨率和低时间分辨率的位代码信息的示例传输时间表。
图10是图示了根据在此描述的一个或者多个方面的、用于对传输流进行编码以减少所需带宽量的示例方法的流程图。
图11是图示了根据在此描述的一个或者多个方面的、用于确定和修改高分辨率范围的示例方法的流程图。
图12是图示了根据在此描述的一个或者多个方面的、用于接收和更新化身在虚拟世界中的位置信息的示例客户端方法的流程图。
具体实施方式
在对各种实施例的以下描述中参照附图,这些附图形成该描述的一部分,并且在这些附图中通过说明来示出其中可以实现本发明的各种实施例。将理解,可以利用其它实施例,并且可以做出结构和功能修改而不脱离本发明的范围。
通过介绍,在此描述的方面涉及传输化身在虚拟世界中的位置信息。虚拟世界服务器可以被配置成确定化身在虚拟世界中的位置,并且确定在向连接到虚拟世界的大量客户端中的每个客户端发送化身位置时是使用高分辨率还是低分辨率位代码。位代码分辨率可以随空间或者随时间变化。例如,可以确定并且使用第一位代码分辨率来传输与用户的化身接近的其它化身的位置,而可以确定并且以更低的第二位代码分辨率来传输与用户的化身更远的其它化身的位置,由此节约带宽而又仍然为虚拟世界中的所有化身提供位置信息。当使用时间分辨率时,更接近的化身的位置比位于更远处的化身的位置被发送地更频繁。
如在此所用,虚拟世界指用图形表现或者用图形仿真的如下环境,多个用户在该环境中出于共同目的或者玩共同游戏而相互交互、相互对抗。虚拟世界通常指旨在由数以千计或者更多的用户,乃至数以百万计或者更多的用户同时使用的环境。虚拟世界可以用图形描绘成类似于现实生活中的地点、科幻环境、幻想环境或者如虚拟世界所有者希望的任何其它地点。
图1图示了客户端101可以在其中与虚拟世界服务器106交互的网络环境。客户端101可以包括各种设备(包括通用数据处理设备101a、个人计算机(PC)101b、膝上型、便携式或者笔记本计算机101c、个人数据助理或者移动设备101d、移动通信设备(未示出)等)。每个客户端101可以具有让客户端101通过网络100连接到虚拟世界服务器106的网络适配器。在一个示例中,网络100可以包括基于网际协议(IP)的网络,例如因特网。其它网络可以包括蜂窝网络、线缆网络、光纤网络、无线网络、有线网络和/或其组合。网络100还可以包括诸如有线或者无线局域网(LAN)之类的一个或者多个子网络。
一个或者多个物理服务器105可以用来运行虚拟世界服务器软件106的一个或者多个实例。每个物理服务器可以是与客户端101类似的数据处理设备,和/或可以包括专门化服务器硬件。服务器软件106的每个运行实例恰好创建一个虚拟世界。在物理服务器的数目与正在运行的服务器软件的副本的数目之间并不一定有相互关系。例如,一个功能强大的服务器105a可以运行多个虚拟世界106a和106b,或者若干个功能较不强大的服务器105c和105d可以在集群中连接以一起工作,从而运行一个大型虚拟世界106d。如在此所述,‘服务器’用来指服务器软件106的单个实例(即,虚拟世界的单个独立实例)。服务器并不一定指底层硬件服务器105。
图2图示了可以用来访问由虚拟世界服务器(诸如图1的服务器106a)提供的虚拟世界并且与虚拟世界进行交互的示例客户端设备200(诸如PC 101b(图1))。客户端设备200可以包括各种部件和模块(包括处理器217、随机访问存储器(RAM)215、只读存储器(ROM)213、数据库201和203、呈现器(render)205、输出适配器211、输入接口209和通信接口207)。处理器217可以包括图形处理单元(GPU),或者可以在输出适配器211中包括单独的GPU。化身数据库201可以被配置成存储如下数据,该数据定义由设备200的用户用来探索虚拟世界、并且与虚拟世界进行交互的化身,或者与该化身相关联。化身信息可以包括化身特性(例如,力量、肤色、眼睛颜色、头发长度、身高、体重、智力)、化身位置/地点信息、与化身关联的对象(例如,财产清单、衣物、武器、附件)等。另一方面,世界数据库203可以被配置成存储用于定义和生成化身所存在的环境的数据。例如,世界数据库203可以存储用于表现地板或者地平面、墙壁、天空等的纹理映射。在另一示例中,世界数据库203可以存储仿真天气数据、可访问区域与不可访问区域的对比、颜色、世界的交互式部件(对比非交互式部件)、定义存在于世界中的无生命对象的数据、定义计算机控制的角色的数据等。每个数据库201、203可以是或者可以不是常规数据库,并且代之以可以引用按照客户端软件的需要来访问的、存储于RAM存储器中的数据。可以使用通信接口207在客户端设备200与虚拟世界服务器之间传达与化身或者虚拟世界相关联的数据。例如,可以更新化身位置、属性和状态或者可以通过接口207来传达此类数据以改变环境。
客户端软件205可以呈现并且随后向输出适配器211和显示器219发送世界和化身。客户端软件205可以在一个或者多个布置中被配置成生成虚拟世界及其部件的三维(3-D)模型,以及与用户对应的化身。用户可以控制化身,并且使用包括键盘223和鼠标225的各种类型的输入设备,通过输入接口209来与世界交互。其它类型的输入设备可以包括麦克风(例如,用于网络上的语音通信)、操纵杆、运动感测设备和/或其组合。在一个或者多个布置中,可以包括音乐或者诸如语音之类的其它音频作为虚拟世界的一部分。在此类实例中,可以通过扬声器221输出音频。
客户端软件205、计算机可执行指令、以及由处理器217和客户端设备200的其它部件使用的其它数据可以存储于RAM 215、ROM 213或者其组合中。也可以使用其它类型的存储器(包括易失性和非易失性存储器这两者)。软件205可以存储于RAM 215、ROM213和/或数据库201和203内,以向处理器217提供指令,从而使得当执行指令时,使得处理器217、客户端设备200和/或它们的其它部件执行在此描述的功能和方法。在一个示例中,用于生成用于与虚拟世界服务器交互的用户界面的指令可以存储于RAM 215、ROM 213、和/或数据库201和203中。客户端软件205可以包括应用和操作系统软件两者,并且可以包括代码段、指令、小程序、预编译代码、编译代码、计算机程序、程序模块、引擎、程序逻辑及其组合。计算机可执行指令和数据还可以存储于某些物理形式的计算机可读存储介质(在此称为“计算机存储器”)(例如包括电可擦除可编程只读存储器(EEPROM)、闪存或者其它存储器技术、CD-ROM、DVD或者其它光盘储存器、磁盒、磁带、磁储存器等)上。
提前参照图4,用户可以在说明性虚拟世界400内行进并且相互交互。每个用户可以表示为如下化身(例如,化身401),该化身是代表虚拟世界中的用户的图形描绘。虚拟世界400可以包括树木403和汽车405。化身401可以在虚拟世界400内的指定位置处呈现并放置。使用如上文参照图2描述的控件,用户可以移动化身401以变更化身401的位置。例如,用户可以将化身401移动至更接近汽车405或者更接近树木403。汽车405或者树木403或者二者可以是交互式的。也就是说,用户可以控制他的或者她的化身401,以例如打开汽车405的车门进入汽车并且开走,或者砍下树木403以获得用于生火的木材。虽然将虚拟世界400的某些方面图示为二维的(2-D),但是也可以将那些方面生成为可选地具有纹理和颜色的3-D对象。
参照图3,虚拟世界服务器300可以被配置成生成和操作虚拟世界,诸如图4的虚拟世界400。服务器300可以包括通信接口307、化身位置数据库309、世界数据库311、用户数据库313、游戏逻辑317、分辨率确定器319、位代码压缩器320和位代码生成器321。服务器在其上进行执行的物理硬件可以包括适合于此类任务的任何服务器硬件或者数据处理设备(例如包括一个或者多个中央处理器(CPU)、图形处理单元(GPU)、RAM、ROM、网络接口、非易失性存储器、输入/输出接口等(未示出))。
化身位置数据库309可以被配置成(例如,基于从每个客户端接收的移动命令)存储每个化身的位置信息。世界数据库311可以存储在世界中可用的交互的规则、算法和其它数据。例如,计算机控制器角色移动或者以别的方式行动的方式可以定义于世界数据库311中存储的数据中。此外,项信息可以定义于世界数据库311中,从而使得每个客户端不可以修改项目。在另一示例中,世界数据库311可以存储用于非化身项和部件的地点信息。另一方面,用户数据库313可以被配置成存储对控制化身的用户进行描述的信息。例如,用户数据库313可以包括账户信息、用户偏好、支付信息、用户标识信息、角色定义等。每个数据库309、311、313可以是或者可以不是常规数据库,并且代之以可以引用根据服务器软件的需要来访问的存储于RAM存储器中的数据。例如,位置数据库309可以实际上是如在此描述的那样更新的、存储于RAM中的化身位置的汇集。
可以基于虚拟世界的大小使用坐标系在服务器上存储化身的位置。在3-D空间中,化身的位置可以定义为与三个维度中的每个维度对应的一组x、y、z坐标。在2-D空间中,化身的位置可以由与两个维度对应的一组x、y(或者x、z)坐标表示。在一个示例中,虚拟世界可以被划分成4层(每层表示大小为10km×10km的空间)。
为了传达用户的位置,服务器可以使用栅格来划分世界,并且继而传达每个用户位于哪个栅格单元中。图5A图示了可以用来传达化身在虚拟世界中的位置的第一栅格分辨率的示例栅格系统。用来向客户端传达化身的位置的栅格的分辨率可以等于或者低于用来在服务器上存储化身的位置的坐标系的分辨率。栅格500可以被划分成一组堆叠层501,每个堆叠层划分成一组单元。在一个实施例中,每层表示垂直距离的预定义范围、海拔高度或者“厚度”,例如,第一层可以表示从地平面到地平面上方5米;第2层可以表示地平面上方15米,等等。层厚度根据需要可以更高或者更低。在另一实施例中,无论地平面实际上为何,层可以代之以指世界在地平面上方的离散部分。例如,无论地面海拔高度是1m、4m还是13m,都可以在第0层中包括站立于地面上的所有化身;在任何建筑物的一楼上方的二楼上站立的所有化身可以位于第1层(无论每个建筑物中的屋顶高度如何);在任何建筑物的一楼上方的三楼上站立的所有化身可以位于第2层中;等等。继而,可以通过标识化身(例如化身505)所在栅格单元的坐标来传达化身的位置。因此,在栅格500中,可以将化身505的位置传达为分别与x、y和z坐标对应的(3,0,1)。与化身505的位置相关联的层可以由与化身505相交的最下层(例如,在所示示例中基于化身在第0层上的足部)来定义,或者由虚拟世界软件确定的层来定义。可以认为图5A中所示栅格系统500具有2000m×2000m×45m世界内的5×4×3(分别表示x、y和z)个单元的分辨率。
图5B图示了可以与图5A的栅格系统500结合使用的第二分辨率的示例栅格系统。图5A和5B表示使用两个不同分辨率栅格来重叠的相同虚拟世界。第二分辨率对应于3×3×2个单元的栅格,并且因此比图5A中的栅格500的分辨率更粗略或者更少粒度。使用更粗略或者更低分辨率栅格造成用来向其它用户发送化身的位置的更低分辨率位代码(下文描述),并且可以有助于减少需要向客户端发送的表明位置改变的数据量,因为更少的位置改变将造成更低分辨率栅格内的地点改变。在一个示例中,如果栅格具有更低分辨率,则可能未检测到化身505的位置改变,因为化身505的位置可能未从第一单元改变到第二单元。由于不会检测到栅格单元内的移动,所以化身505的位置改变将未使用图5B的低分辨率栅格来注册。然而,在图5A中,相同的位置改变将注册为跨入另一单元,即单元(4,0,2)中。
再次参照图3,一旦游戏逻辑317已经确定了或者更新了在位置数据库309中的化身的位置,则服务器指示位代码生成器321确定用户的位置落入高分辨率栅格的哪个单元内,并且预备对应的高分辨率位代码,并且确定用户的位置落入低分辨率栅格的哪个单元内,并且预备对应的低分辨率位代码。这些位代码表示每个相应栅格内的该化身从上次位置更新起的任何移动。
如下文进一步所述,服务器可以通过发送高分辨率位代码或者低分辨率位代码,来对所有客户端/化身更新所有其它客户端/化身的位置信息。在其它配置中,服务器可以在给定传输中对每个客户端更新并非所有其它化身的位置(例如,在除了空间分辨率之外还使用或者取而代之使用时间分辨率时),而又仍然在给定时间量内(基于时间分辨率的最大延时)最终发送用于所有化身的位置信息。如在此所用,分辨率指用以标识位置的空间或者时间准确度。空间分辨率指可以用以在给定空间中确定用户的位置的物理粒度。另一方面,时间分辨率可以对应于用以发送位置信息的频率(例如,越频繁地提供位置信息,化身的位置通常就会越准确)。
如下文进一步所述,当使用空间分辨率时,分辨率确定器319可以被配置成确定是使用高分辨率位代码还是低分辨率位代码来向给定客户端发送化身的位置。如下文进一步所述,当使用时间分辨率时,分辨率确定器319可以被配置成确定是否在给定帧期间向给定客户端发送化身的位置。可以在在此描述的各种实施例中单独或者并行地使用空间和时间分辨率。
如果化身数目大,则虚拟世界系统可能需要执行用于生成位代码的大量计算,因为每个客户端可能需要在虚拟世界中的每个其它化身的位置信息(假设每个化身对应于唯一客户端)。因此,如果世界具有2000个化身,则系统可能需要生成(和/或发送)2000×2000(4百万)个位代码、即每个客户端一组2000个位代码。为了减少这一处理负荷,系统可以预先生成每个化身的位代码对,其中第一位代码对应于自从上一帧起的低分辨率栅格改变,并且第二位代码对应于自从上一帧起的高分辨率栅格改变。当要向每个客户端发送位置信息时,可以基于接收客户端在先前更新或者帧中是收到化身的高分辨率还是低分辨率位代码,来选择两个预先生成的位代码之一。由于已经生成位代码,所以可以进行选择而不必在运行中计算位代码。然而,在某些情况下,仍然可能会在运行中生成位代码。例如,如果客户端错过先前的位置更新(例如,网络带宽使用要求丢弃上一帧位置信息),则可能需要生成特殊位代码,因为客户端了解的先前位置信息不同于用来确定预先生成的位代码的先前位置信息。
在一个或者多个布置中,向所有其它活跃化身发送虚拟世界中的所有活跃化身的位置。如果化身登录到虚拟世界,则可以认为化身是活跃。发送所有活跃化身的位置可以让用户标识具有所需人口统计的世界区域。例如,用户可以能够通过标识所有其他用户的地点、并且选择具有所需人口密度的区域(假设更多人口对应于更多活动和噪声)来发现虚拟世界中的安静场所。在其它布置中,可以在第一时间分辨率内向其它活跃化身发送虚拟世界中的并非所有活跃化身的位置,在第二时间分辨率内发送所有活跃化身的位置信息。
在此描述的涉及化身位置的传输和计算的方法和系统可以依赖于每个化身的先前位置。也就是说,可以将位置信息发送为“移动”信息,其中移动信息表明化身自从上次更新(如果有)起已经移动多少。因此,为了确定第一化身的新位置,与第二化身对应的客户端可能需要有第一化身的先前位置。在用户第一次连接到世界的情形中,用户的客户端可能不知道世界中的其它化身的先前位置。因而,虚拟世界系统可以使用低分辨率位代码来向连接用户的客户端预备如下启动分组,该启动分组提供系统中的每个其它化身的位置。虚拟世界系统可以基于所有其它化身的先前位置(0,0,0)来提供初始位置信息。这让连接客户端使用已知的起始位置(例如(0,0,()))来确定其它化身的位置。
如上文所示,位代码生成器321可以使用高分辨率格式和低分辨率格式两者来生成位代码。在其它实施例中,可以使用多于两个位代码分辨率。位代码可以是前缀代码(有时称为霍夫曼代码)、即,不存在是集合中的任何其它有效位代码的前缀(开始)的有效位代码。使用前缀代码无需使用结束代码或者其它特殊标记来指明代码或者提供有代码的信息何时结束。图6A图示了可以生成并且发送的、用于提供化身位置信息的示例高分辨率位代码集601和603,其中分辨率对应于具有4层的栅格,并且每层有12800×12800个栅格单元。在一个示例中,位代码‘0’(1位)可以用来表明用户的化身尚未改变栅格单元,并且因此尚未产生可检测的位置改变。如果用户的化身已经改变栅格单元,但是仅改变到与他的或者她的先前单元相同层并且相邻的单元,则可以使用位代码‘1 000rrr’(7位),其中rrr为指定化身已经移动相邻8个单元中的哪些单元(使用在客户端与服务器之间预先协定的与‘rrr’针对哪个位代码指代每个相邻单元有关的相互关系)的3位代码。可以采用各种方式(包括绕着化身的先前单元逆时针或者顺时针)对相邻单元进行编号。备选地,如果用户的化身已经在相同层内移动了2个单元,则可以生成位代码‘10 10rrrr’,其中rrrr为标识与化身的先前栅格单元恰好相距2个单元的16个单元之一的4位代码。
涉及在层中的改变,或者涉及多于2个单元、但是在-16与15个单元距离之间的移动的位置改变可以由以下17位的位代码表示:‘1 011 0yyxxxxxzzzzz’(其中yy=(新层-旧层)&3,xxxxx=(新x-旧x)&31,并且zzzzz=(新z-旧z)&31。为了确定位置改变是否在距离-16与15个单元之间,虚拟世界划分成的栅格可以已经指明负(-)和正(+)方向。因此,沿着x轴右移可以视为正移动,而沿着x轴左移可以视为负移动。因而,距离-16可以表示在沿着轴的一个方向上距离16个单元,并且距离正15可以表示在相反方向距离15个单元。在此所用的符号‘&’表示二进制AND运算并且用来针对每个维度创建位置位的位掩码。可以将这一17位的位代码发送为具有回绕(wrap around)的无符号数。例如,如果用户从4层栅格的顶层移向底层,则yy可以设置成1(即而不是-3)以表明从顶层向底层的回绕。在其中化身移动距离大于-16至15个单元的距离的实例中,可以使用形式为‘1 011 1yyxxxxxxxxxxxxxxzzzzzzzzzzzzzz’的35位的位代码,其中yy=(新层-旧层)&3,xxxxx=(新x-旧x)&16383,并且zzzzz=(新z-旧z)&16383。在一个或者多个布置中,x、y和z距离被AND后的值(例如3、31、16383)可以基于位置栅格的大小或者分辨率而改变。通常,为了创建位掩码而用来将在给定维度上移动的距离掩码化(使用二进制AND)的值是2n-1的二进制表示,其中n表示在栅格中用来表示该维度而需要的位数。
位代码603重复位代码601,而不同在于每个位代码序列中的第2位。位代码603的第二位具有值‘1’,而不是如在位代码601中的情况那样为‘0’。第二位的这一改变可以向客户端表示或者表明在传输中跟随有或者包括关于化身的附加信息。在位代码‘1 100’表明化身的位置尚未改变的示例中,具有‘1’值的第二位可以表明化身的某些其它方面已经改变(例如高度、存活对照死亡、健康等)。在图6中表明每个位代码603的相应含义。
图6B图示了可以生成并且发送的用于提供化身位置信息的一连串低分辨率位代码605,其中低分辨率位代码对应于高分辨率位代码所依赖的相同化身位置、但是基于如下栅格来传达,该栅格具有4层并且每层有200×200个栅格单元。与位代码601、603相同,位代码605也可以遵循前缀代码规则。然而,由于如果一起用作前缀代码则位代码601、603与位代码605冲突,所以接收方必须知道哪组代码用于每个化身。因此,在这一示例中,接收方总是假设位代码分辨率与针对化身所接收的上一个位代码分辨率相同。如图6B中所示,为了使用大小为200×4×200(x,y,z)的低分辨率栅格来报告任何位置改变而需要的最大带宽量为21位,因为可以使用21位的位代码来无歧义地指定任何具体栅格单元,如图6B中所示。此外,即使当代码‘1 00’表明向高分辨率栅格切换时,仍然可以通过在化身所位于的现有低分辨率栅格单元内提供特定高分辨率栅格单元,来根据低分辨率位代码推断高分辨率位代码。也就是说,在这一示例中,每个低分辨率栅格单元包括64×64个高分辨率栅格单元。因此,可以使用具体高分辨率栅格单元在化身所在的低分辨率栅格单元内的标识,来根据低分辨率栅格单元无歧义地推断任何高分辨率栅格单元。由于每个低分辨率栅格单元存在26乘26个高分辨率栅格单元,所以仅需6+6(即12)个附加位来切换到超出3位代码‘1 00’的高分辨率。此外,与高分辨率位代码报告对比,在如果用低分辨率位代码报告位置则附加信息将不相关或者不重要这样的假设之下,可以不指定或者与低分辨率位代码信息一起包括表明附加信息的位代码。
图6A和6B图示了如下示例位代码,每个位代码包括用于表明用来报告化身的位置的位代码分辨率改变的特殊位代码。这可能是相关的,因为位代码本身并不表明位置信息是处于高分辨率格式还是低分辨格式,并且如上文所示,接收设备需要在前缀代码会冲突之前,了解正在使用哪个位代码分辨率。在即便并非所有也为多数情况下,客户端设备或者应用将假设位置信息是采用与针对该化身接收的先前位置相同的分辨率(下文进一步描述)。因而,如果出现分辨率改变,则图6A和6B的对应位代码可以用来通知客户端。
图7是图示了用于确定和向连接到虚拟世界(或者该虚拟世界的实例)的所有客户端设备报告该虚拟世界中的所有化身的位置信息的示例服务器方法的流程图。在步骤700中,位代码生成器321基于先前传输的位置来预先计算表示每个化身的当前位置的高分辨率和低分辨率位代码。也就是说,服务器针对每个化身确定该化身是否自从上次位置更新起已经移动过,并且基于该确定,位代码生成器321生成表示每个化身的移动(或者未移动)的高分辨率位代码和低分辨率位代码两者。服务器继而针对连接到虚拟世界的每个客户端设备重复步骤705-步骤745,下文关于为其预备位置信息的一个客户端描述这些步骤。
在步骤705中,服务器基于使用的任何时间分辨率来确定将向客户端报告哪个化身的位置(例如参见图9和对应描述)。时间分辨率可以用来更高效地管理带宽使用。例如,可以按照比定位更近的化身更低的频率(更低的帧速率)报告更远的化身的位置,以减少每个传输帧所使用的带宽量。这一示例假设未使用时间分辨率,并且每帧使用高分辨率位代码或者低分辨率位代码来报告每个化身的位置(帧指每t秒传输的位置数据分组,其中t表示其中服务器提供位置信息的最短时间量、例如t=1秒、t=5秒、t=250毫秒等)。
针对将在当前帧中向客户端报告其位置的每个化身,服务器重复下文关于一个化身描述的步骤710-步骤730。在步骤710中,服务器确定是使用预先计算的高分辨率位代码还是预先计算的低分辨率位代码来向客户端发送当前化身的位置。使用任何所需技术(例如,使用(下文)参照图8和图11描述的方法)来进行这一确定。在步骤715中,服务器确定当前客户端是否收到包含这一化身的位置信息的直接先前帧,这之所以重要是因为如果客户端未收到具有这一化身的位置的直接先前帧,则位代码将产生不正确位置(因为位代码仅提供从先前位置的偏移)。因此,如果当前客户端未收到具有当前化身的位置信息的先前帧,则服务器在步骤720中使用在步骤710中选择的位代码分辨率来为该化身选择预先计算的位代码。如果当前客户端未收到具有当前化身的位置信息的先前帧,则位代码生成器321在步骤725中基于向当前客户端报告的上一个位置位代码按照适当位代码分辨率生成新位代码。
在步骤730中,服务器向用于当前帧的去往客户端的传输分组添加所选择的(来自步骤720)或者新生成的(来自步骤725)位代码。在步骤735和步骤740中,服务器确定是否需要向当前客户端报告更多化身位置,并且如果需要,则针对将报告其位置的每个附加化身重复步骤710-步骤730。
一旦服务器已经组装客户的如下传输分组,该传输分组包括将向客户端报告的所有化身的位置,则在步骤745中位代码压缩器320执行游程长度编码(下文参照图10描述)并且向客户端发送该传输分组。在步骤750和步骤755中,服务器确定是否存在需要接收当前帧的位置信息的任何剩余客户端,并且如果存在,则针对每个这样的客户端重复步骤705-步骤745。
对于是向每个客户端提供高分辨率位代码还是低分辨率位代码的确定可以取决于在参考化身(即,与位代码被发送到的客户端相关联的化身)与虚拟世界中的每个其它化身之间的距离。简要地参照图8,虚拟世界服务器可以确定相对于参考化身801的分辨率阈值距离。参考化身801对应于其它化身803和805中的每一个的位置信息将被报告至的客户端。分辨率阈值因此可以定义为与参考化身801的位置的距离。可以使用高分辨率位代码来报告化身803在低于或者等于阈值的距离内的位置,而可以使用更低分辨率位代码来报告在与参考化身801相距高于或者超出阈值的距离处定位的化身805的位置。备选地或者附加地,可以在选择分辨率时考虑化身的视野。例如,化身可能仅有180度的视野范围。因而,也可以使用低分辨率位代码来报告在这一180度视角以外的所有其它化身的位置。
图11图示了用于修改高分辨率范围以补偿虚拟世界中的拥挤地区的示例方法。在步骤1100中,虚拟世界系统可以确定高分辨率范围内(例如在100m内)的多个化身。在步骤1105中,虚拟世界系统继而可以确定高分辨率范围内的化身数目是否高于指定阈值。这一阈值可以定义成减少必须在化身处于人口众多的地区中时使用大量带宽来发送多个高分辨率位代码的可能性。阈值可以是20个化身、50个化身、100个化身、500个化身、1000个化身等。如果化身数目大于指定阈值,并且范围高于最小范围,则虚拟世界系统可以在步骤1115中减少高分辨率范围,并且继而回到步骤1100以测试新范围。一旦范围中的化身数目等于或者低于阈值,或者如果不能进一步减少范围,则服务器将转向步骤1110并且为高分辨率范围内的化身选择/确定高分辨率位代码,而为所有其它化身选择/确定低分辨率位代码。在一个或者多个布置中,可以定义最小高分辨率范围,以使得高分辨率范围不降至最小范围以下。在这些情况下,高分辨率化身的数目可以超过阈值数目。
图9图示了为高分辨率位代码提供更高时间分辨率(即频率)的报告而为低分辨率位代码提供更低时间分辨率的报告的示例传输时间表。因而,示例传输时间表900提供每200毫秒传输低分辨率位代码信息,而每50微秒传输高分辨率位代码信息。备选地,可以按照更高频率传输低分辨率位代码信息,而按照更低频率传输高分辨率位代码信息以节约带宽。
如上文所示,虚拟世界系统可以使用游程长度编码(RLE)来优化运载多个化身的位置信息的传输流中的带宽使用。图10图示了使用游程长度编码来优化传输流的示例方法。在步骤1000中,虚拟世界系统可以确定将例如如上文参照图7所述、要向参考化身客户端传输的与多个化身对应的位置信息(例如,高分辨率位代码和低分辨率位代码)。在步骤1005中,系统可以根据指定顺序对位置信息进行排序。在一个示例中,顺序可以定义如下:1)在先前更新中针对其发送了表明移动的高分辨率位代码的化身,2)在先前更新中针对其发送了表明未移动的高分辨率位代码的化身,3)在先前更新中针对其发送了表明未移动的低分辨率位代码的化身,以及4)在先前更新中针对其发送了表明移动的低分辨率位代码的化身。可以基于服务器和每个客户端两者均已知的化身ID对每个分组进一步排序。传输化身位置信息的顺序可以变化,并且可以包括在服务器与客户端之间的任何预先定义和达成协定的排序顺序。因而,无需在传输中包括指定化身/客户端的顺序的附加信息和数据,因为每个客户端预计按照服务器排序的顺序接收数据。附加带宽被节省,因为无需在传输流中与每个位代码一起发送化身ID信息。
一旦被排序,则系统在步骤1010中可以继而将连续静止化身位置段替换为表1中的RLE位代码之一(以及在适用时的数据):
表1:RLE位代码
例如,位代码‘0 00’可以用来表明仅按照预计化身顺序的下一个用户静止,‘0 01nnnn’可以用来表明在列表中的接下来的nnnn(上至24)个用户静止,‘0 10nnnnnnnn’用来表明在列表中的接下来的nnnnnnnn(上至28)个用户静止,‘0 10nnnnnnnnnnn’用来表明在列表中的接下来的nnnnnnnnnnn(上至211)个用户静止。可以使用在RLE位代码与m的值(其中位代码跟随有从1至2m的二进制数)之间的任何预先协定的相互关系。为最终RLE位代码选择211(2048),因为在这一示例中虚拟世界的每个实例可以一次具有至多2000个用户,因而将无需表明多于211个用户静止。RLE位代码因此用来替换表明化身位置静止的‘0’位代码的实例并且不提供附加信息。使用哪个RLE位代码取决于在为了向特定客户端发送而预备的分组中的连续‘0’位代码的数目。RLE位代码由此通过将多个高/低分辨率位代码(除了下文另有注明之外)替换为单个RLE位代码来进一步减少带宽。在步骤1015中,可以向参考化身的客户端传输位代码。
例如,如果在传输流中的多于2048个连续化身是静止的,则可以修改或者添加RLE位代码以容纳附加化身位置。尽管从单个高分辨率位代码(或者低分辨率位代码)‘0’改变成RLE位代码‘0 00’实际上造成带宽从一位增加至三位,但是使用RLE位代码的净效应基于上述排序顺序而减少了总带宽。由于‘0’是RLE位代码的前缀,因此高分辨率位代码和低分辨率位代码‘0’不能与RLE位代码组合使用,并且会对正在使用的前缀代码系统引入歧义。此外,如果附加非位置信息跟随位置位代码,则可以不替换该位置位代码,从而使得客户端了解后继附加信息。换言之,当需要提供附加信息时,虚拟世界服务器发送用于该化身的代码‘1 100’,而不是将化身纳入其它连续的静止化身位置。
图12图示了用于客户端设备接收和处理位置信息传输流的示例方法。客户端可以先撤消如上文所述RLE压缩,从而扩展RLE位代码,并且代之以替换为多个静止‘0’位代码。客户端继而针对每个化身执行图12中的方法。
在步骤1200中,客户端标识针对其接收单独位代码的化身。客户端在步骤1205中查找化身的先前已知位置,以及上次用于该化身的位代码分辨率,并且假设传入的位代码是同一分辨率。在步骤1210中,客户端使用假设的位代码分辨率来确定位代码是否表明分辨率改变。如果未标明分辨率改变,则在步骤1215中客户端将新位代码应用到先前已知位置以获得该化身的新位置,并且前进至步骤1250。
然而,如果位代码表明分辨率改变,则在步骤1220中客户端确定分辨率是提高(从低分辨率位代码变成高分辨率位代码)还是降低(从高分辨率位代码变成低分辨率位代码)。如果位代码分辨率降低,则在步骤1225中客户端将化身的先前已知位置从高分辨率栅格减少至使用低分辨率栅格(即,在这一示例中,客户端知道每个低分辨率栅格单元有64×64个高分辨率栅格单元并且相应地计算,从而保持相同层)。在步骤1230中,客户端继而读取附加的低分辨率位代码,并且前进至步骤1215,其中客户端将低分辨率位代码应用于先前已知位置以确定当前位置。
如果在步骤1220中,位代码表明位代码分辨率提高,则在步骤1235中客户端读取化身的第二低分辨率位代码,并且在步骤1240中将第二低分辨率位代码应用于先前已知位置,以便保证客户端具有基于低分辨率位代码的化身的正确位置。在步骤1245中,客户端将与第一低分辨率位代码一起接收的附加精确度信息应用于客户端在步骤1240中计算的位置,以到达可与将来的高分辨率位代码一起使用的位置。客户端继而前进至步骤1250。
在步骤1250中,客户端确定传输流是否包含附加化身位置的任何位代码,并且如果包括,则选择下一化身位代码并且针对所接收的每个附加化身位代码重复步骤1200-步骤1250。
在确定每个化身的新位置之后,或者响应于确定每个化身的新位置,客户端可以重新呈现如下图形用户界面,该图形用户界面提供对虚拟世界的图形描绘,以反映更新的位置。客户端可以将化身描绘为位于它所在的栅格单元的中心,或者可以推断栅格单元内的地点以基于化身的移动历史、化身最近是否移入栅格单元等来描绘化身。
应当理解,可以按照修改的形式(例如通过组合、重新排序和/或拆分步骤、模块、功能、程序、对象等)实施在此描述的任何方法步骤、过程或者功能。此外,可以将一个或者多个处理器与使得处理器和其它部件执行方法步骤、过程或者功能的可执行指令进行组合,用来实施在此描述的技术。如在此所用,术语“处理器”和“计算机”无论单独使用还是与存储于存储器或者其它计算机可读存储介质中的可执行指令组合使用,均应当理解为涵盖了各种类型的公知计算结构(包括但不限于一个或者多个微处理器、专用计算机芯片、现场可编程门阵列(FPGA)、控制器、专用集成电路(ASIC)、硬件/固件/软件的组合、或者其它专用或者通用处理电路)中的任何计算结构。此外,在此描述的具体软件架构仅是说明性的,并且附加的或者不同的模块、程序、对象、应用等可以执行软件功能。
虽然已经描述了实现本发明的具体示例,但是本领域技术人员将认识到,存在在如所附权利要求中阐述的本发明的精神实质和范围内包含的对上述系统和方法的诸多变化和改变。此外,本领域普通技术人员根据对本公开内容的回顾将想到在所附权利要求的范围和精神实质内的诸多其它实施例、修改和变型。

Claims (50)

1.一种用于传达在虚拟世界中的一个或者多个化身的位置移动信息的方法,所述方法包括:
确定报告用于第一化身的位置移动信息的栅格分辨率,其中所述栅格分辨率基于从具有不同栅格分辨率的多个栅格中选择栅格,其中每个栅格对应于所述虚拟世界;
通过对所述化身在所述选择的栅格中的当前位置与所述化身在所述选择的栅格中的先前位置进行比较,确定所述第一化身的所述位置移动信息;以及
向客户端传输所述第一化身的所述位置移动信息。
2.根据权利要求1所述的方法,其中基于在所述第一化身与所述虚拟世界中的第二化身之间的距离来选择所述选择的栅格,其中所述第二化身对应于被传输所述位置移动信息的所述客户端。
3.根据权利要求2所述的方法,其中选择所述栅格包括:
确定所述距离是否低于高分辨率范围阈值;
响应于确定所述距离处于或者低于所述高分辨率范围阈值,选择具有第一分辨率的第一栅格;以及
响应于确定所述距离高于所述高分辨率范围阈值,选择具有比所述第一分辨率更低的第二分辨率的第二栅格。
4.根据权利要求1所述的方法,其中确定所述位置移动信息包括生成在所述选择的栅格内的所述第一化身的移动偏移。
5.根据权利要求1所述的方法,还包括基于所述确定的栅格分辨率,生成表示所述位置移动信息的位代码。
6.根据权利要求1所述的方法,还包括:
确定用来传输所述位置移动信息的时间分辨率;以及
基于所述确定的时间分辨率来调度对所述位置移动信息的所述传输。
7.根据权利要求1所述的方法,还包括:
确定用来报告第二化身的位置移动信息的第二栅格分辨率,其中所述第二栅格分辨率基于从所述多个栅格选择第二栅格;
通过对所述第二化身在所述第二选择的栅格中的当前位置与所述第二化身在所述第二选择的栅格中的先前位置进行比较,确定所述第二化身的所述位置移动信息;以及
向所述客户端传输所述第二化身的所述位置移动信息。
8.根据权利要求1所述的方法,其中向所述客户端传输包括在传输流中传输所述位置移动信息,所述传输流包括与多个化身的位置移动信息对应的多个位代码,并且其中所述方法还包括:
标识两个或者更多连续位代码的集合,所述位代码表明在对应的两个或者更多化身的集合中位置没有变化;以及
将所述两个或者更多连续位代码的集合压缩成缩短的位代码。
9.根据权利要求1所述的方法,其中选择所述栅格包括:
标识分辨率范围;
确定从第二化身起的在所述分辨率范围内的化身数目,其中所述第二化身对应于所述客户端;
确定在所述分辨率范围内的化身数目是否高于化身阈值;以及
响应于确定在所述分辨率范围内的化身数目高于所述化身阈值,修改所述分辨率范围,直至在所述分辨率范围内的化身数目在所述化身阈值内。
10.根据权利要求9所述的方法,其中基于所述选择的栅格报告在所述分辨率范围内的化身的位置移动信息,并且基于具有比所述第一栅格更低分辨率的第二栅格报告在所述分辨率范围以外的化身的位置移动信息。
11.根据权利要求1所述的方法,其中在传输流中传输所述位置移动信息,所述传输流包括与多个化身的位置移动信息对应的多个位代码。
12.根据权利要求11所述的方法,其中根据在先前传输中向所述客户端提供的以往位置移动信息的分辨率和类型,在所述传输流中对所述多个化身的所述位置移动信息进行排序。
13.根据权利要求11所述的方法,其中所述多个化身包括在所述虚拟世界中的所有化身。
14.一种用于提供虚拟世界中的多个化身的位置信息的方法,所述方法包括:
虚拟世界服务器确定多个化身中的每个化身在所述虚拟世界中的当前位置,其中所述多个化身包括所述虚拟世界中的所有化身;
基于比较所述多个化身中的每个化身的所述当前位置与所述多个化身中的每个化身在与所述虚拟世界对应的第一栅格中的对应先前位置,生成所述多个化身中的每个化身的第一位置偏移数据;
基于比较所述多个化身中的每个化身的所述当前位置与所述多个化身中的每个化身在与所述虚拟世界对应的第二栅格中的对应先前位置,生成所述多个化身中的每个化身的第二位置偏移数据,其中所述第一栅格和所述第二栅格具有不同分辨率;
针对所述多个化身中的每个化身,仅选择所述第一位置偏移数据和所述第二位置偏移数据之一,以用于向第一虚拟世界客户端设备传输;以及
向所述第一虚拟世界客户端设备传输至少所有所述多个化身的所述选择的位置偏移数据。
15.根据权利要求14所述的方法,还包括:
针对所述多个化身中的每个化身,仅选择所述第一位置偏移数据和所述第二位置偏移数据之一,以用于向第二虚拟世界客户端设备传输,其中选择以向所述第二虚拟世界客户端设备传输的所述位置偏移数据不同于选择以向所述第一虚拟世界客户端设备传输的所述位置偏移数据;以及
向所述第二虚拟世界客户端设备传输除了与所述第二虚拟世界客户端设备对应的化身之外的、至少全部所述多个化身的所述选择的位置偏移信息。
16.根据权利要求14所述的方法,其中每个位置偏移数据包括位代码,并且其中所述位代码的格式基于化身的位置改变类型。
17.根据权利要求16所述的方法,其中所述虚拟世界是三维虚拟世界,并且其中所述化身的所述位置改变类型包括所述化身在所述虚拟世界中的垂直位置改变。
18.根据权利要求16所述的方法,其中所述位置改变类型包括未移动。
19.根据权利要求14所述的方法,还包括:
确定所述第一虚拟世界客户端设备是否收到位置偏移数据的直接前一集合;
响应于确定所述第一虚拟世界客户端设备未收到所述位置偏移数据的直接前一集合,基于自从所述第一虚拟世界客户端设备上次收到位置偏移数据起的化身移动来生成定制的位置偏移数据集合;以及
向所述第一虚拟世界客户端设备传输所述定制的位置数据集合。
20.根据权利要求19所述的方法,其中基于所述多个化身中的每个化身的默认先前位置,生成所述定制的位置偏移数据集合。
21.一种方法,包括:
在虚拟世界客户端设备处接收虚拟世界中的多个化身的位置偏移信息;
针对为其接收位置偏移信息的每个化身:
确定所述位置偏移信息的分辨率,以及
基于所述确定的分辨率,应用所述接收的位置偏移信息以
确定所述化身的与所述位置偏移信息对应的新位置,
其中在第一分辨率中接收与第一化身对应的位置偏移信息,并且在第二分辨率中接收与第二化身对应的位置偏移信息。
22.根据权利要求21所述的方法,其中所述多个化身包括所述虚拟世界中的所有化身。
23.根据权利要求21所述的方法,还包括基于所接收的位代码,确定与第三化身对应的位置偏移信息已经从所述第一分辨率改变成所述第二分辨率。
24.根据权利要求23所述的方法,其中所述第一分辨率低于所述第二分辨率,所述方法还包括使用与所述接收的位代码一起接收的附加精确度信息来确定所述第三化身的位置。
25.根据权利要求22所述的方法,其中基于直接先前接收的位置偏移信息集合的分辨率,对多个化身的所述位置偏移信息进行排序。
26.根据权利要求25所述的方法,其中基于在所述直接先前接收的位置偏移信息中表明的位置改变类型,对所述多个化身的所述位置偏移信息进行进一步排序。
27.一种虚拟世界服务器系统,包括:
一个或者多个处理器;
一个或者多个网络接口;以及
存储可执行指令的计算机存储器,所述可执行指令在由所述一个或者多个处理器执行时,执行用于经由所述一个或者多个网络接口、向与所述虚拟世界服务器系统通信的一个或者多个客户端设备传达在虚拟世界中的一个或者多个化身的位置移动信息的方法,所述方法包括:
确定用来报告第一化身的位置移动信息的栅格分辨率,其中所述栅格分辨率基于从具有不同栅格分辨率的多个栅格选择栅格,其中每个栅格对应于所述虚拟世界;
通过对所述化身在所述选择的栅格中的当前位置与所述化身在所述选择的栅格中的先前位置进行比较,确定所述第一化身的所述位置移动信息;以及
向客户端传输所述第一化身的所述位置移动信息。
28.根据权利要求27所述的系统,其中基于在所述虚拟世界中的所述第一化身与第二化身之间的距离来选择所述选择的栅格,其中所述第二化身对应于被传输所述位置移动信息的所述客户端。
29.根据权利要求28所述的系统,其中选择所述栅格包括:
确定所述距离是否低于高分辨率范围阈值;
响应于确定所述距离处于或者低于所述高分辨率范围阈值,选择具有第一分辨率的第一栅格;以及
响应于确定所述距离高于所述高分辨率范围阈值,选择具有比所述第一分辨率更低的第二分辨率的第二栅格。
30.根据权利要求27所述的系统,其中确定所述位置移动信息包括生成在所述选择的栅格内的所述第一化身的移动偏移。
31.根据权利要求27所述的系统,其中所述方法还包括,基于所述确定的栅格分辨率,生成表示所述位置移动信息的位代码。
32.根据权利要求27所述的系统,其中所述方法还包括:
确定用来传输所述位置移动信息的时间分辨率;以及
基于所述确定的时间分辨率来调度对所述位置移动信息的所述传输。
33.根据权利要求27所述的系统,其中所述方法还包括:
确定用来报告第二化身的位置移动信息的第二栅格分辨率,其中所述第二栅格分辨率基于从所述多个栅格选择第二栅格;
通过对所述第二化身在所述第二选择的栅格中的当前位置与所述第二化身在所述第二选择的栅格中的先前位置进行比较,确定所述第二化身的所述位置移动信息;以及
向所述客户端传输所述第二化身的所述位置移动信息。
34.根据权利要求27所述的系统,其中向所述客户端传输包括在传输流中传输所述位置移动信息,所述传输流包括与多个化身的位置移动信息对应的多个位代码,并且其中所述方法还包括:
标识一个或者多个连续位代码集合,所述位代码表明在对应的两个或者更个化身的集合中位置没有变化;以及
将所述一个或者多个连续位代码集合替换为游程长度编码位代码。
35.根据权利要求27所述的系统,其中选择所述栅格包括:
标识分辨率范围;
确定从第二化身起的在所述分辨率范围内的化身数目,其中所述第二化身对应于所述客户端;
确定在所述分辨率范围内的化身数目是否高于化身阈值;以及
响应于确定在所述分辨率范围内的化身数目高于所述化身阈值,修改所述分辨率范围,直至在所述分辨率范围内的化身数目在所述化身阈值内。
36.根据权利要求35所述的系统,其中基于所述选择的栅格报告在所述分辨率范围内的化身的位置移动信息,并且基于具有分辨率比所述第一栅格更低的第二栅格报告在所述分辨率范围以外的化身的位置移动信息。
37.根据权利要求27所述的系统,其中在传输流中传输所述位置移动信息,所述传输流包括与多个化身的位置移动信息对应的多个位代码,其中根据在先前传输中向所述客户端提供的以往位置移动信息的分辨率在所述传输流中对所述多个化身的所述位置移动信息进行排序。
38.一种虚拟世界服务器系统,包括:
一个或者多个处理器;
一个或者多个网络接口;以及
存储可执行指令的计算机存储器,所述可执行指令在由所述一个或者多个处理器执行时,执行用于提供虚拟世界中的多个化身的位置信息的方法,所述方法包括:
确定多个化身中的每个化身在所述虚拟世界中的当前位置,其中所述多个化身包括所述虚拟世界中的所有化身;
基于比较所述多个化身中的每个化身的所述当前位置与所述多个化身中的每个化身在与所述虚拟世界对应的第一栅格中的对应先前位置,生成所述多个化身中的每个化身的第一位置偏移数据;
基于比较所述多个化身中的每个化身的所述当前位置与所述多个化身中的每个化身在与所述虚拟世界对应的第二栅格中的对应先前位置,生成所述多个化身中的每个化身的第二位置偏移数据,其中所述第一栅格和所述第二栅格具有不同分辨率;
针对所述多个化身中的每个化身,仅选择所述第一位置偏移数据和所述第二位置偏移数据之一,以用于向第一虚拟世界客户端设备传输;以及
向所述第一虚拟世界客户端设备传输至少所有所述多个化身的所述选择的位置偏移数据。
39.根据权利要求38所述的系统,其中所述方法还包括:
针对所述多个化身中的每个化身,仅选择所述第一位置偏移数据和所述第二位置偏移数据之一,以用于向第二虚拟世界客户端设备传输,其中选择以向所述第二虚拟世界客户端设备传输的所述位置偏移数据不同于选择以向所述第一虚拟世界客户端设备传输的所述位置偏移数据;以及
向所述第二虚拟世界客户端设备传输除了与所述第二虚拟世界客户端设备对应的化身之外的、至少全部所述多个化身的所述选择的位置偏移信息。
40.根据权利要求38所述的系统,其中每个位置偏移数据包括位代码,并且其中所述位代码的格式基于化身的位置改变类型。
41.根据权利要求40所述的系统,其中每个位代码遵循前缀编码方案。
42.根据权利要求40所述的系统,其中所述位置改变类型包括未移动。
43.根据权利要求38所述的系统,其中所述方法还包括:
确定所述第一虚拟世界客户端设备是否收到位置偏移数据的直接前一集合;
响应于确定所述第一虚拟世界客户端设备未收到位置偏移数据的所述直接前一集合,基于自从所述第一虚拟世界客户端设备上次收到位置偏移数据起的化身移动来生成定制的位置偏移数据集合;以及
向所述第一虚拟世界客户端设备传输所述定制的位置数据集合。
44.根据权利要求43所述的系统,其中基于所述多个化身中的每个化身的默认先前位置,生成所述定制的位置偏移数据集合。
45.一种或者多种存储可执行指令的物理计算机存储器,所述可执行指令在由虚拟世界客户端设备执行时,执行用于接收化身位置信息的方法,所述方法包括:
接收虚拟世界中的多个化身的位置偏移信息;
针对为其接收位置偏移信息的每个化身:
确定所述位置偏移信息的分辨率,以及
基于所述确定的分辨率,应用所述接收的位置偏移信息以确定所述化身的与所述位置偏移信息对应的新位置,
其中在第一分辨率中接收与第一化身对应的位置偏移信息,并且在第二分辨率中接收与第二化身对应的位置偏移信息。
46.根据权利要求45所述的计算机存储器,其中所述多个化身包括所述虚拟世界中的所有化身。
47.根据权利要求45所述的计算机存储器,其中所述方法还包括基于所接收的位代码,确定与第三化身对应的位置偏移信息已经从所述第一分辨率改变成所述第二分辨率。
48.根据权利要求47所述的计算机存储器,其中所述第一分辨率低于所述第二分辨率,所述方法还包括使用与所述接收的位代码一起接收的附加精确度信息来确定所述第三化身的位置。
49.根据权利要求46所述的计算机存储器,其中至少部分基于直接先前接收的位置偏移信息集合的分辨率,对所述多个化身的所述位置偏移信息进行排序。
50.根据权利要求46所述的计算机存储器,其中至少部分基于在所述直接先前接收的位置偏移信息中表明的位置改变类型,对所述多个化身的所述位置偏移信息进行排序。
CN201080022706.8A 2009-04-27 2010-03-29 虚拟世界中的位置追踪 Active CN102498699B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/430,578 2009-04-27
US12/430,578 US8441486B2 (en) 2009-04-27 2009-04-27 Position tracking in a virtual world
PCT/IB2010/000727 WO2010125435A2 (en) 2009-04-27 2010-03-29 Position tracking in a virtual world

Publications (2)

Publication Number Publication Date
CN102498699A true CN102498699A (zh) 2012-06-13
CN102498699B CN102498699B (zh) 2015-12-16

Family

ID=42768117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080022706.8A Active CN102498699B (zh) 2009-04-27 2010-03-29 虚拟世界中的位置追踪

Country Status (6)

Country Link
US (2) US8441486B2 (zh)
EP (1) EP2425602B1 (zh)
JP (1) JP5492290B2 (zh)
KR (1) KR101401607B1 (zh)
CN (1) CN102498699B (zh)
WO (1) WO2010125435A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573573A (zh) * 2014-10-31 2016-05-11 三星电子株式会社 基于图像管理用户信息的设备和方法
JP2017142592A (ja) * 2016-02-09 2017-08-17 株式会社コロプラ 同期サーバ及び同期方法
CN111739135A (zh) * 2020-07-30 2020-10-02 腾讯科技(深圳)有限公司 虚拟角色的模型处理方法、装置及可读存储介质
CN112424760A (zh) * 2018-10-31 2021-02-26 多玩国株式会社 虚拟空间中的虚拟人物显示系统、虚拟空间中的虚拟人物显示方法及计算机程序

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8441486B2 (en) * 2009-04-27 2013-05-14 Jagex Ltd. Position tracking in a virtual world
US8655964B2 (en) 2009-12-14 2014-02-18 At&T Intellectual Property I, Lp Unified location and presence, communication across real and virtual worlds
US9235268B2 (en) * 2010-04-09 2016-01-12 Nokia Technologies Oy Method and apparatus for generating a virtual interactive workspace
US8898567B2 (en) 2010-04-09 2014-11-25 Nokia Corporation Method and apparatus for generating a virtual interactive workspace
US20110302504A1 (en) * 2010-06-08 2011-12-08 Santosh Khare Mobile Application for Proximity Based Awareness System
FR2961929B1 (fr) * 2010-06-29 2019-11-15 Alcatel Lucent Procede d'affichage d'un monde virtuel dans lequel evolue l'avatar d'un utilisateur d'un service de realite virtuelle
US20130014033A1 (en) * 2011-07-08 2013-01-10 WoGo LLC Systems and methods for facilitating user interaction between multiple virtual environments
WO2013026048A2 (en) 2011-08-18 2013-02-21 Utherverse Digital, Inc. Systems and methods of virtual world interaction
US8842131B2 (en) * 2012-01-10 2014-09-23 Fanhattan Llc System and method for framework clipping
JPWO2014171066A1 (ja) * 2013-04-19 2017-02-16 パナソニックIpマネジメント株式会社 三次元画像表示システム、三次元画像表示システムのサーバ及び三次元画像表示方法
US9063330B2 (en) * 2013-05-30 2015-06-23 Oculus Vr, Llc Perception based predictive tracking for head mounted displays
US10188952B1 (en) * 2015-12-18 2019-01-29 Controlled Protocols, Inc. Method for dynamically mapping servers
CN107016924B (zh) * 2016-12-20 2020-04-07 阿里巴巴集团控股有限公司 虚拟地图中的瓦片地图生成方法、更新方法和装置
CN112774182A (zh) * 2019-11-06 2021-05-11 阿里巴巴集团控股有限公司 角色所处区域的确定方法及装置、电子设备和存储介质
US20220070237A1 (en) * 2020-08-28 2022-03-03 Tmrw Foundation Ip S. À R.L. System and method for virtually broadcasting from within a virtual environment
US11316955B1 (en) 2021-03-05 2022-04-26 Improbable Worlds Ltd Scalable replication of object positions in virtual simulations
JP6995416B1 (ja) 2021-06-09 2022-01-14 クラスター株式会社 アバター出力装置、端末装置、アバター出力方法、およびプログラム
JP7142392B1 (ja) 2021-06-09 2022-09-27 クラスター株式会社 アバター出力装置、端末装置、アバター出力方法、およびプログラム
KR102484939B1 (ko) * 2021-12-13 2023-01-04 세종대학교산학협력단 가상 공간에 대한 식별 정보 할당 방법 및 가상 공간 검색 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5736982A (en) * 1994-08-03 1998-04-07 Nippon Telegraph And Telephone Corporation Virtual space apparatus with avatars and speech
US20060031578A1 (en) * 2001-12-03 2006-02-09 Dotvision Method of creating and managing a virtual universe
CN101281590A (zh) * 2008-01-03 2008-10-08 青岛海信电器股份有限公司 一种操作单元及包括所述操作单元的视频系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219045B1 (en) * 1995-11-13 2001-04-17 Worlds, Inc. Scalable virtual world chat client-server system
JPH1057628A (ja) 1996-08-19 1998-03-03 Oaks Hebun:Kk 通信回線を利用したゲームシステム
JPH1125288A (ja) 1997-07-09 1999-01-29 Casio Comput Co Ltd サイバースペースシステムおよびサイバースペース構築方法
US6854012B1 (en) * 2000-03-16 2005-02-08 Sony Computer Entertainment America Inc. Data transmission protocol and visual display for a networked computer system
JP4922513B2 (ja) 2000-12-28 2012-04-25 任天堂株式会社 ゲーム管理装置,ゲームプログラムおよびゲームシステム
EP1219330A3 (en) * 2000-12-28 2004-04-21 Nintendo Co., Limited Network game system
KR100350863B1 (ko) * 2001-01-11 2002-09-05 (주)웹 젠 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법
JP2003085116A (ja) 2001-09-07 2003-03-20 Katsutoshi Takifuji 仮想空間情報システム
JP2004041646A (ja) 2002-07-12 2004-02-12 Katsutoshi Takifuji 仮想空間内のオブジェクトを制御するコード化システム
JP3861071B2 (ja) 2003-05-09 2006-12-20 任天堂株式会社 ゲームシステムおよびゲームプログラム
GB2447020A (en) 2007-03-01 2008-09-03 Sony Comp Entertainment Europe Transmitting game data from an entertainment device and rendering that data in a virtual environment of a second entertainment device
GB2447094B (en) 2007-03-01 2010-03-10 Sony Comp Entertainment Europe Entertainment device and method
WO2008109798A2 (en) 2007-03-07 2008-09-12 Ideaflood, Inc. Multi-instance, multi-user animation platforms
KR100895198B1 (ko) * 2007-12-03 2009-04-24 에스케이 텔레콤주식회사 가상 공간에서의 텍스처 데이터 제공 방법 및 시스템
US8441486B2 (en) * 2009-04-27 2013-05-14 Jagex Ltd. Position tracking in a virtual world

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5736982A (en) * 1994-08-03 1998-04-07 Nippon Telegraph And Telephone Corporation Virtual space apparatus with avatars and speech
US20060031578A1 (en) * 2001-12-03 2006-02-09 Dotvision Method of creating and managing a virtual universe
CN101281590A (zh) * 2008-01-03 2008-10-08 青岛海信电器股份有限公司 一种操作单元及包括所述操作单元的视频系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MICHAEL HOCH等: ""Individual and Group Interaction"", 《ROYAL INSTITUTE OF TECHNOLOGY NUMERICAL ANALYSIS AND COMPUTING SCIENCE》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573573A (zh) * 2014-10-31 2016-05-11 三星电子株式会社 基于图像管理用户信息的设备和方法
US11024070B2 (en) 2014-10-31 2021-06-01 Samsung Electronics Co., Ltd. Device and method of managing user information based on image
JP2017142592A (ja) * 2016-02-09 2017-08-17 株式会社コロプラ 同期サーバ及び同期方法
CN112424760A (zh) * 2018-10-31 2021-02-26 多玩国株式会社 虚拟空间中的虚拟人物显示系统、虚拟空间中的虚拟人物显示方法及计算机程序
CN111739135A (zh) * 2020-07-30 2020-10-02 腾讯科技(深圳)有限公司 虚拟角色的模型处理方法、装置及可读存储介质
CN111739135B (zh) * 2020-07-30 2023-03-21 腾讯科技(深圳)有限公司 虚拟角色的模型处理方法、装置及可读存储介质

Also Published As

Publication number Publication date
EP2425602B1 (en) 2013-09-18
JP5492290B2 (ja) 2014-05-14
US20100275136A1 (en) 2010-10-28
US9203880B2 (en) 2015-12-01
EP2425602A2 (en) 2012-03-07
US8441486B2 (en) 2013-05-14
WO2010125435A2 (en) 2010-11-04
CN102498699B (zh) 2015-12-16
KR101401607B1 (ko) 2014-06-02
US20130227438A1 (en) 2013-08-29
KR20120074263A (ko) 2012-07-05
WO2010125435A3 (en) 2010-12-23
JP2012525622A (ja) 2012-10-22

Similar Documents

Publication Publication Date Title
CN102498699B (zh) 虚拟世界中的位置追踪
JP5937711B2 (ja) プログラム、記録媒体、情報処理装置及び制御方法
Silva et al. Deployment of roadside units based on partial mobility information
CN108885522A (zh) 渲染3d环境中的内容
CN106527381B (zh) 一种面向并行批处理机动态调度的快速评估方法
CN101167102B (zh) 图像处理方法及影像处理装置
CN1470040A (zh) 公共空间的智能模拟的系统和方法
CN109446171B (zh) 一种数据处理方法和装置
WO2013119208A1 (en) Online gaming
CN101917392A (zh) 视频游戏开发系统的通信集线器
CN115577574A (zh) 一种导流栏杆位置计算方法、装置、设备及可读存储介质
CN107786989B (zh) 一种Lora智能水表网络网关部署方法及装置
KR102441523B1 (ko) 수요기반 이동서비스를 위한 수요예측방법
Gayle et al. Interactive navigation of heterogeneous agents using adaptive roadmaps
Haciomeroglu et al. A GPU-assisted hybrid model for real-time crowd simulations
Lin et al. Applying an immune ant colony system algorithm to solve an integrated flexible bay facility layout problem with input/output points design
Teng et al. Solving dynamic vehicle routing problem with time windows by ant colony system with bipartite graph matching
Barbucha et al. Multi-agent platform for solving the dynamic vehicle routing problem
Thomas Towards cooperative marl in industrial domains
JP2019204508A (ja) コンテンツ推薦方法及びコンテンツ推薦装置
Sethi et al. Group-Aware Human Trajectory Prediction
Bleiweiss Parallel compact roadmap construction of 3D virtual environments on the GPU
US20230040196A1 (en) Device And Method For Interactive Environment Processing And Communication
Salehan et al. Collaborative Gold Mining Algorithm: An Optimization Algorithm Based on the Natural Gold Mining Process. Electronics 2022, 11, 3824
Charlton Constraint-based simulation of virtual crowds

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant