首页 > 运动玩具 专利正文
预测性数据预加载的制作方法

时间:2022-01-22 阅读: 作者:专利查询

预测性数据预加载的制作方法

1.本技术涉及计算机化游戏平台领域,具体涉及用于执行预测性游戏数据预加载的方法、系统和计算机可读介质。


背景技术:

2.一些在线游戏平台允许用户创建内容、相互连接、相互交互(例如,在游戏内)并通过互联网相互共享信息。在线游戏平台的用户可以参与多人游戏环境,其中其他用户已经创建了游戏或游戏的一部分。
3.当用户搜索用户生成的内容(例如,游戏、游戏项目等)或其他内容时,搜索引擎可以基于数据,该数据可以是例如下载数量方面的流行度、用户评级等。用户可以从搜索结果中选择游戏或项目。这样可以通过减少从游戏选择时间到游戏开始时间的延迟来改善用户体验。因此,存在需要减少游戏选择之后的游戏开始时间的延迟。
4.考虑到上述需要等,提供了一些实施例。


技术实现要素:

5.一些实施例提供了预测性预加载游戏数据。
6.一些实施例包括用于训练机器学习模型的方法,所述机器学习模型包括神经网络以预测游戏平台中的预加载游戏选项。所述方法包括:提供训练数据,所述训练数据包括与玩家对应的玩家数据和所述游戏平台中的与所述玩家对应的先前选择数据,其中,所述先前选择数据包括一个或多个可用游戏选项以及对应的已选择游戏选项;和训练所述神经网络或者其它训练算法来预测预加载游戏选项。
7.所述训练可以包括提供所述玩家数据和所述一个或多个可用游戏选项作为所述神经网络的输入;获取作为所述神经网络的输出的一个或多个已预测预加载游戏选项;将所述一个或多个已预测预加载游戏选项和与所述一个或多个可用游戏选项对应的所述先前选择数据中的所述已选择游戏选型进行比较;和根据所述比较调整所述神经网络的一个或多个参数。
8.在一些实施例中,所述一个或多个可用游戏选项包括所述游戏平台中的玩家可选择的一个或多个可用游戏。在一些实施例中,所述训练被执行直到损失函数满足预定标准。
9.在一些实施例中,所述玩家数据包括玩家性别、玩家年龄、玩家地理区域、玩家语言、玩家在所述游戏平台上的体验或玩家在所述游戏平台上的购买历史中的一项或多项。
10.所述方法还可以包括确定与所述玩家相关联的群组;和根据所述与所述玩家关联的群组,训练所述神经网络以预测一个或多个预加载游戏选项。
11.在一些实施例中,所述群组与一个或多个具有相似特性的玩家相关联。在一些实施例中,所述相似特性包括玩家性别、玩家年龄、玩家地理区域、玩家语言、玩家在所述游戏平台上的体验或玩家在所述游戏平台上的购买历史中的一项或多项。
12.一些实施例包括一种系统,包括:一个或多个处理器,耦合到非暂时性计算机可读
介质,该非暂时性计算机可读介质存储软件指令,当该软件指令由该一个或多个处理器执行时使得该一个或多个处理器执行操作。该操作包括提供训练数据,所述训练数据包括与玩家对应的玩家数据和所述游戏平台中的与所述玩家对应的先前选择数据,其中,所述先前选择数据包括一个或多个可用游戏选项以及对应的已选择游戏选项;和训练所述神经网络以预测预加载游戏选项。
13.所述训练可以包括提供所述玩家数据和所述一个或多个可用游戏选项作为所述神经网络的输入;获取作为所述神经网络的输出的一个或多个已预测预加载游戏选项;将所述一个或多个已预测预加载游戏选项和与所述一个或多个可用游戏选项对应的所述先前选择数据中的所述已选择游戏选型进行比较;和根据所述比较调整所述神经网络的一个或多个参数。
14.在一些实施例中,所述玩家数据包括玩家性别、玩家年龄、玩家地理区域、玩家语言、玩家在所述游戏平台上的体验或玩家在所述游戏平台上的购买历史中的一项或多项。
15.所述操作还包括确定与所述玩家相关联的群组;和根据所述与所述玩家关联的群组,训练所述神经网络以预测一个或多个预加载游戏选项。
16.一些实施例包括一种通过计算机实现的方法,用于在游戏平台上预加载一个或多个游戏选项。所述方法包括:提供玩家数据和一个或多个可用游戏选项作为已训练机器学习模型的输入;获取作为所述已训练机器学习模型的输出的一个或多个预加载游戏选项;和在接收特定游戏的用户选择输入之前,预加载所述一个或多个预加载游戏选项的至少一个。
17.在一些实施例中,所述预加载包括:使得预加载在玩家系统开始,其中,所述预加载包括预加载与所述一个或多个预加载游戏选项对应的一个或多个资源;和响应于终止条件,终止预加载一个或多个游戏选项。在一些实施例中,所述终止条件包括从所述玩家系统接收游戏选项选择,其中,所述终止包括终止预加载不匹配所述游戏选项选择的游戏选项。
18.在一些实施例中,所述终止条件包括接收指示了所述可用游戏选项的变化的用户输入。在一些实施例中,所述终止条件包括接收新的游戏平台搜索查询。在一些实施例中,所述终止条件包括完成预加载所述一个或多个预加载游侠选项。
19.在一些实施例中,所述已训练机器学习模型被训练以预测预加载游戏选项。在一些实施例中,所述一个或多个可用游戏选项包括所述游戏平台中的玩家可选择的一个或多个可用游戏。在一些实施例中,所述一个或多个可用游戏选项包括所述游戏平台中的特定游戏的玩家可选择的一个或多个可用游戏资源。在一些实施例中,所述玩家数据包括玩家性别、玩家年龄、玩家地理区域、玩家语言、玩家在所述游戏平台上的体验或玩家在所述游戏平台上的购买历史中的一项或多项。
附图说明
20.图1示出了本技术实施例提供的用于预测性预加载游戏数据的示例游戏系统架构。
21.图2示出了本技术实施例提供的示例游戏用户接口。
22.图3示出了本技术实施例提供的训练机器学习模型来预测用于预加载的游戏数据资产的示意图。
23.图4示出了本技术实施例提供的用来预测用于预加载的游戏数据资产的机器学习模型的示意图。
24.图5示出了本技术实施例提供的预测性预加载游戏数据的示例方法的流程示意图。
25.图6示出了本技术实施例提供的配置为预测性预加载游戏数据的计算设备的示意图。
具体实施方式
26.在线游戏平台(也称为“用户生成内容平台”或“用户生成内容系统”)为用户提供多种交互方式。例如,在线游戏平台的用户可以在在线游戏平台内创建游戏或其他内容或资源(例如,角色、图形、虚拟世界中的游戏项目等)。在线游戏平台的用户还可以搜索游戏或其他内容。
27.在线游戏平台的用户可以朝着共同的目标一起工作、共享各种虚拟游戏项目、相互发送电子消息等。在线游戏平台的用户可以使用角色玩游戏。在线游戏平台也可能允许平台的用户相互交流。
28.在线游戏平台可以提供用户可以玩在线游戏的虚拟三维环境。为了帮助提升网络游戏的娱乐价值,在线游戏平台可以提供游戏、游戏内容或其他游戏相关资源的搜索引擎。
29.一些实施例可以包括用于预测性预加载例如游戏、游戏内容或其他游戏相关数据资源的数据的方法、系统和计算机可读介质。例如,可以通过图形化的用户接口(或gui)向用户展示来自搜索引擎的搜索结果,供用户选择。在一些实施例中,一种方法可以包括使用基于玩家群组行为训练的机器学习模型来预测在用户做出选择之前开始预加载哪些游戏(或游戏相关数据资产)。一旦用户做出选择,任何与选择无关的预加载都可以终止。因此,在用户查看可用游戏选择的时间段内,可以根据机器学习模型的预测开始预加载一个或多个可用游戏选项。预加载可以减少从用户选择游戏到游戏开始时间的延迟。
30.图1示出了本技术实施例提供的示例游戏系统架构100。系统架构100(在此也称为“系统”)包括在线游戏平台102、预测性预加载模型104、数据存储器106、网络108、玩家1系统110、玩家2系统112、还有玩家n系统114。
31.数据存储器106可被配置为存储游戏和游戏相关数据、玩家数据、群组数据等。系统架构100被提供用于说明性而非限制性。在一些实施例中,系统架构100可以包括以与图1所示相同或不同的方式配置的相同、更少、更多或不同的元件。
32.在一些实施例中,网络108可以包括公共网络(例如因特网)、专用网络(例如局域网(lan)或广域网(wan))、有线网络(例如以太网)、无线网络(例如802.11网络、wi-fi网络或无线lan(wlan))、蜂窝网络(例如长期演进(lte)网络)、路由器、集线器、交换机、服务器计算机或其组合。
33.在一种实施方式中,数据存储器106可以是非暂时性计算机可读介质或存储器(例如,随机存取存储器)、高速缓存、驱动器(例如,硬盘驱动器)、闪存驱动器、数据库系统,或其他类型的能够存储数据的组件或设备。数据存储器106还可以包括能够跨越多个计算设备(例如多个服务器计算机)的多个存储组件(例如多个驱动器或多个数据库)。
34.在一些实施例中,在线游戏平台102可以包括具有一个或多个计算设备(例如云计
算系统、机架式服务器、服务器计算机、物理服务器集群等)的服务器。在一些实施例中,一个服务器可能包含于在线游戏平台102中,是一个独立的系统,或者是另一个系统或平台的一部分。
35.在一些实施例中,在线游戏平台102可以包括一个或多个计算设备(例如机架式服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板电脑、台式计算机等),数据存储器(例如硬盘、存储器、数据库),网络,软件组件和/或硬件组件,这些可用于在线游戏平台102上执行操作并让用户访问在线游戏平台102。在线游戏平台102还可包括网站(例如,网页)或应用后端软件,其可用于向用户提供对在线游戏平台102提供的内容的访问。例如,用户可以使用在各自的玩家系统(例如,110至114)上执行的一个或多个应用程序来访问在线游戏平台102。在玩家系统上执行的应用程序可以包括网络浏览器、插件或附加组件,以扩展网络浏览器的功能等。
36.在一些实施例中,在线游戏平台102可以是一种提供用户之间联系的社交网络或一种允许用户(例如,最终用户或消费者)与在线游戏平台102上的其他用户进行通信的用户生成内容系统,其中的交流可以包括语音聊天(例如,同步和/或异步语音交流)、视频聊天(例如,同步和/或异步视频交流)或文本聊天(例如,同步和/或异步的基于文本的通信)。在本公开的一些实施例中,“用户”或“玩家”可以表示为单个个体。然而,本公开的其他实施例包括“用户”(例如,创建用户)是由一组用户或自动化源控制的实体。例如,在用户生成内容系统中联合为社区或群组的一组个人用户可以被视为“用户”。
37.在一些实施例中,在线游戏平台102可以是虚拟游戏平台。例如,游戏平台可以向用户社区提供单人游戏或多人游戏,这些用户社区可以通过网络108使用客户端设备110至114访问游戏(例如,用户生成的游戏或其他游戏)或与之交互。在一些实施例中,游戏(在此也称为“视频游戏”、“在线游戏”或“虚拟游戏”)可以是二维(2d)游戏、三维(3d)游戏(例如,3d用户生成的游戏)、虚拟现实(vr)游戏或增强现实(ar)游戏。在一些实施例中,用户可以搜索游戏并在从搜索结果中选择的一个或多个游戏中与其他用户一起参与游戏。在一些实施例中,从搜索结果中选出的游戏可能与该游戏的其他用户实时进行。
38.在一些实施例中,游戏玩法可以指一个或多个玩家在所选游戏中使用玩家系统(例如,110至114)的交互,或者在玩家系统(例如110至114)的显示器或其他输出设备上的交互呈现。
39.在一些实施例中,游戏可以包括电子文件,该电子文件可以使用被配置为向实体呈现游戏内容(例如,数字媒体项)的软件、固件或硬件来执行或加载。在一些实施例中,可以执行游戏应用程序并结合游戏引擎呈现游戏。在一些实施例中,一个游戏可能有一套共同的规则或共同的目标,而一个游戏的环境共享这套共同的规则或共同的目标。在一些实施例中,不同的游戏可能有不同的规则或目标。
40.在一些实施例中,游戏可能具有一个或多个环境(这里也称为“游戏环境”或“虚拟环境”),其中多个环境可以链接。环境的示例可以是三维(3d)环境。游戏的一个或多个环境在本文中可以统称为“世界”或“游戏世界”或“虚拟世界”或“宇宙”。世界的示例可以是游戏的3d世界。例如,用户可以构建链接到另一个用户创建的另一个虚拟环境的虚拟环境。虚拟游戏的角色可以越过虚拟边界进入相邻的虚拟环境。
41.可以注意到,3d环境或3d世界使用图形,该图形使用代表游戏内容的几何数据的
三维表示(或者至少将当前游戏内容显示为3d内容而无论几何数据的3d表示是否为用过的)。2d环境或2d世界使用的图形使用代表游戏内容的几何数据的二维表示。
42.在一些实施例中,在线游戏平台102可以托管一个或多个游戏,并且可以允许用户使用在各自的玩家系统(例如110至114)上执行的游戏应用程序与游戏交互(例如搜索游戏、游戏相关内容或其他内容)。在线游戏平台102的用户或玩家可以玩游戏、创建游戏、与之交互、或构建游戏、搜索游戏、与其他用户通信、创建和构建对象(例如,此处也称为“项目”或“游戏对象”或“虚拟游戏项目”),和/或搜索对象。例如,在生成用户生成虚拟物品时,用户可以创建角色、角色装饰、交互式游戏的一个或多个虚拟环境,或者构建游戏中使用的结构等。在一些实施例中,用户可以与在线游戏平台102的其他用户购买、出售或交易游戏虚拟游戏对象,例如平台内货币(例如虚拟货币)。在一些实施例中,在线游戏平台102可以将游戏内容传输到在相应玩家系统上执行的游戏应用程序。在一些实施例中,游戏内容(这里也称为“内容”)可以指与在线游戏平台102或游戏应用相关的任何数据或软件指令(例如,游戏对象、游戏、用户信息、视频、图像、命令、媒体项等)。在一些实施例中,游戏对象(例如,此处也称为“项目”或“对象”或“虚拟游戏项目”)可能指代在线游戏平台102的游戏应用程序或在相应玩家系统上执行的游戏应用程序中被使用、创建、共享或以其他方式描述的对象。例如,游戏对象可以包括部件、模型、角色、工具、武器、服装、建筑物、车辆、货币、植物群、动物群、上述的组件(例如建筑物的窗户)等。
43.可以注意到,在线游戏平台102托管游戏,是出于说明的目的而不是限制的目的。在一些实施例中,在线游戏平台102可以托管一个或多个其他游戏相关数据或媒体项目。与游戏相关的数据或媒体项目可以包括但不限于数字视频、数字电影、数字照片、数字音乐、音频内容、旋律、网站内容、社交媒体更新、电子书、电子杂志、数字报纸、数字有声书、电子期刊、网络博客、简易信息聚合(rss)提要、电子漫画书、软件应用程序等。在一些实施例中,媒体项目可能是可以使用软件、固件或配置为向实体呈现数字媒体项目的硬件。
44.在一些实施例中,游戏可能与特定用户或特定用户组相关联(例如私人游戏),或广泛提供给在线游戏平台102的用户(例如公共游戏)。在一些实施例中,在线游戏平台102将一个或多个游戏与特定用户或用户组相关联,在线游戏平台102可以通过用户账号信息(例如用户账号标识符如用户名和密码)将特定用户与游戏相关联。
45.在一些实施例中,在线游戏平台102或玩家系统(例如110至114)可能包括游戏引擎或游戏应用程序。游戏引擎可以包括游戏应用程序。在一些实施例中,游戏引擎可能用于游戏的开发或执行。例如,游戏引擎可能包括用于2d、3d、vr或ar图形的渲染引擎(“渲染器”)、物理引擎、碰撞检测引擎(和碰撞响应)、声音引擎、脚本功能、动画引擎、人工智能引擎、网络功能、流媒体功能、内存管理功能、线程功能、场景图功能、或对电影的视频支持,以及其他功能。游戏引擎的组件可以生成帮助计算和渲染游戏的命令(例如,渲染命令、碰撞命令、物理命令等)。在一些实施例中,在玩家系统上执行的游戏应用程序可以独立工作,也可以与在线游戏平台102的游戏引擎协同工作,或者两者结合。
46.在一些实施例中,在线游戏平台102和玩家系统(例如110至114)都可以执行游戏引擎。在线游戏平台102可以使用平台内的游戏引擎来执行部分或全部游戏引擎功能(例如,生成物理命令、渲染命令等),或者可以将部分或全部游戏引擎功能卸载到在玩家系统上执行的游戏引擎。
47.在一些实施例中,每个游戏于在线游戏平台102上执行的游戏引擎功能与在玩家系统上执行的游戏引擎功能之间可能具有不同的比率。例如,在线游戏平台102的游戏引擎可用于在至少两个游戏对象之间发生碰撞的情况下生成物理命令,而额外的游戏引擎功能(例如,生成渲染命令)可被卸载到玩家系统。
48.在一些实施例中,在线游戏平台102和玩家系统上执行的游戏引擎功能的比率可以基于游戏条件而改变(例如,动态地)。例如,如果参与特定游戏玩法的用户数量超过阈值数量,在线游戏平台102可以执行先前由玩家系统执行的一个或多个游戏引擎功能。
49.例如,用户可能正在玩家系统110至114上玩游戏,并且可能会发送控制指令(例如,用户输入,例如右、左、上、下、用户选择或角色位置和速度信息等)到在线游戏平台102。在线游戏平台102在接收到来自玩家系统(110至114)的控制指令后,可以基于控制指令发送游戏指令(例如参与群组游戏的角色的位置和速度信息或者命令,如渲染命令、碰撞命令等)给玩家系统(110至114)。
50.例如,在线游戏平台102可以对控制指令执行一个或多个逻辑操作(例如使用平台游戏引擎)以生成用于玩家系统(110至114)的游戏指令。在其他情况下,在线游戏平台102可以将一个或多个或者来自一个玩家系统(如110)的控制指令传递给另一个参与游戏的玩家系统(如112)。玩家系统110至114可以使用游戏指令并渲染游戏以在与玩家系统(110至114)相关联的各个显示器上呈现。
51.在一些实施例中,角色(或通常的游戏对象)由组件构成,其中一个或多个可由用户选择,这些组件自动连接在一起以帮助用户进行编辑。一个或多个角色(在此也称为“化身”或“模型”)可以与用户相关联,其中用户可以控制该角色以促进用户与游戏的交互。在一些实施例中,一个角色可能包括身体部位(例如头发、手臂、腿等)和配件(例如,t恤、眼镜、装饰图像、工具等)等组件。在一些实施例中,可定制的角色身体部位包括头部类型、身体部位类型(手臂、腿、躯干和手)、面部类型、头发类型和皮肤类型等。在一些实施例中,可定制的配件包括服装(例如衬衫、裤子、帽子、鞋子、眼镜等)、武器或其他工具。在一些实施例中,用户还可以控制角色的尺寸(例如,高度、宽度或深度)或者角色的组件的尺寸。在一些实施例中,用户可以控制角色的比例(例如,块状、解剖等)。需要注意的是,在一些实施例中,角色可能不包含角色游戏对象(例如身体部位等),但用户可以控制角色(不包含角色游戏对象)以方便用户与游戏的交互(例如没有渲染角色游戏对象但用户仍然控制角色来控制游戏内动作的益智游戏)。
52.在一些实施例中,一个组件,例如一个身体部位,可以是原始的几何形状,例如块、圆柱体、球体等,或者其他的原始形状,例如楔形、环面、管子、通道等。在一些实施例中,创建者模块可以发布用户的角色供在线游戏平台102的其他用户查看或使用。在一些实施例中,创建、修改或定制角色,其他游戏对象、游戏或游戏环境可以由用户使用用户接口(例如,开发者界面)并且使用或不使用脚本(或者使用或不使用应用程序编程接口(api))来执行。可以注意到,出于说明而非限制的目的,角色被描述为具有人形形式。还可以注意到,角色可以具有任何形式,例如车辆、动物、无生命物体或其他创造性形式。
53.在一些实施例中,在线游戏平台102可以将用户创建的角色存储在数据存储器106中。在一些实施例中,在线游戏平台102维护可以通过其呈现给用户的角色目录和游戏目录。在一些实施例中,游戏目录包括在线游戏平台102上存储的游戏图像。此外,用户可以从
角色目录中选择一个角色(例如由用户或其他用户创建的角色)来参与选定的游戏。角色目录包括在线游戏平台102上存储的角色的图像。在一些实施例中,角色目录中的一个或多个角色可能已经由用户创建或定制。在一些实施例中,所选择的角色可能具有定义角色的一个或多个组件的角色设置。
54.在一些实施例中,用户的角色可以包括组件的配置,其中组件的配置和外观,更一般地,角色的外观可以通过角色设置来定义。在一些实施例中,用户角色的角色设置至少可以部分由用户选择。在其他实施例中,用户可以选择默认角色设置的角色或其他用户选择的角色设置。例如,用户可以从具有预定义角色设置的角色目录中选择默认角色,并且用户可以通过改变一些角色设置(例如,添加带有自定义标志的衬衫)来进一步自定义默认角色。在线游戏平台102可以将角色设置与特定角色相关联。
55.在一些实施例中,玩家系统(例如110至114)可以各自包括计算设备(例如600),例如个人计算机(pc)、移动设备(例如,膝上型电脑、移动电话、智能手机、平板电脑或上网本电脑)、联网电视、游戏机等。在一些实施例中,玩家系统(例如110至114)也可以被称为“用户设备”。在一些实施例中,一个或多个玩家系统(例如110至114)可以在任何给定时刻连接到在线游戏平台102。可能需要注意的是,玩家系统的数量(例如110至114)仅作为说明而非限制提供。在一些实施例中,可以使用任意数量的玩家系统(例如110至114)。
56.在一些实施例中,每个玩家系统(例如110至114)可能包含一个游戏应用实例。在一种实施方式中,游戏应用可以允许用户使用在线游戏平台102并与在线游戏平台102交互,例如搜索游戏或其他内容、控制在线游戏平台102托管的虚拟游戏中的虚拟角色,或者查看或上传内容,例如游戏、图像、视频项目、网页、文档等。
57.在一个示例中,游戏应用程序可以是能访问、检索、呈现或导航内容(例如,虚拟环境中的虚拟角色等)的网络应用程序(例如在网络浏览器环境中运行的应用程序),其由网络服务器提供服务。在另一个示例中,游戏应用程序可以是本地应用程序(例如,移动应用程序、应用程序或游戏程序),其在玩家系统(例如110-114)的本地操作系统上安装并执行并允许用户与在线游戏平台102交互。游戏应用程序可以向用户渲染、显示或呈现内容(例如,网页、媒体查看器)。在一个实施例中,游戏应用程序还可以包括嵌入在网页中的嵌入式媒体播放器(例如flash播放器)。
58.根据本公开的多个方面,玩家系统可以执行游戏应用程序,其可以是在线游戏平台应用,用于用户构建、创建、编辑、将内容上传到在线游戏平台102以及与在线游戏平台102交互(例如,搜索、选择和玩由在线游戏平台102托管的游戏)。因此,游戏应用程序可以由在线游戏平台102提供给玩家系统(例如,110-114)。在另一个示例中,游戏应用程序可以是从服务器下载的应用程序。
59.在一些实施例中,用户可以通过游戏应用程序登录在线游戏平台102。用户可以通过提供用户账号信息(例如,用户名和密码)来访问用户账号,其中用户账号与可用于参与在线游戏平台102的一个或多个游戏的一个或多个角色相关联。
60.通常,在一个实施例中被描述为由在线游戏平台102执行的功能也可以由玩家系统(例如,110-114)或其他实施例中的服务器来执行,如果合适的话。此外,归属于特定组件的功能可以由不同或多个组件一起运行来执行。在线游戏平台102也可以通过适当的应用程序接口(api)提供给其他系统或设备的服务来访问,因此不限于在网站中使用。
61.在一些实施例中,在线游戏平台102可以包括搜索引擎。在一些实施例中,搜索引擎可以是允许在线游戏平台102向用户提供搜索功能的系统、应用或模块,其中搜索功能允许用户搜索在线游戏平台内102内的游戏、游戏相关内容或其他内容。在一些实施例中,搜索引擎可能会执行搜索并返回搜索结果。搜索结果用户接口的示例如图2所示。
62.图2示出了本技术实施例提供的显示了根据历史数据排序的搜索结果202的示例图形用户接口(gui)200。gui 200包括搜索结果202的第一部分(例如第1页)的显示,该搜索结果202已经与搜索查询“大亨”匹配并且根据诸如历史数据(例如,玩游戏的玩家数量)的一些标准进行排序。gui 200包括用户接口导航元素204,当其被选择时引起导航指示或请求检索下一组结果(例如第2页等)且从玩家系统(例如110-114)发送到游戏平台(例如102)。当元素204被选择,系统可以发送指示给游戏平台,指示包括了对下一组结果的请求且该请求可选地包括下一组结果是什么(例如第2页)的导航。当搜索结果202中的搜索结果元素之一(例如,缩略图图标)被选择时,与所选元素相关联的游戏被下载并开始执行以便玩家可以玩游戏。
63.在一些实施例中,当搜索结果202被确定时(例如,在已经对数据库执行搜索查询并且搜索结果已经返回之后并且在那些结果被显示之前)或者当搜索结果被显示时,这里描述的预测性预加载可以开始。在一些实施例中,预加载可以持续达到终止条件。终止条件可以包括接收玩家已经从显示的结果(例如202)中做出选择的指示,并且可以终止预加载与所选游戏(或其他游戏相关数据或媒体项目)无关的任何数据资源。当玩家导航离开给定的搜索结果页面时,也可以终止预加载,例如通过选择下一个页面元素204或通过提供新的搜索词并导致处理新的搜索查询。在一些实施例中,终止条件还可以包括已完成预加载了被识别为用于预加载的游戏或游戏相关资产。在一些实施例中,终止条件可以包括预加载了阈值数量的游戏/资产,或消耗一定数量的内存/网络资源。预加载可能取决于参数例如客户端设备、可用客户端内存、游戏平台和客户端之间的网络容量或其他因素等。这些因素也可以提供给预加载决策制定算法。预加载可以只在客户端执行,也可以只在服务器端执行,或者预加载可以在客户端和服务器端均执行。
64.可以对搜索结果之外的页面执行这里描述的预加载。例如,如果玩家正在观看每日、每周或者每月的热门游戏等,可用游戏选项可能包括按流行顺序排列的游戏,而预加载对应一个或多个可用游戏选项,例如当前显示在玩家系统上的游戏选项。在另一个示例中,玩家可能正在查看任何游戏或游戏相关数据或媒体的可用选择,并且预加载的执行可以结合所显示的游戏或游戏相关数据或媒体项目。
65.所公开的预测性预加载系统或方法的实施例可以通过减少从游戏选择时间到游戏开始时间的等待时间段来改善用户体验。在一些实施例中,当搜索引擎提供基于最近度(或其他不同于历史数据的标准,例如流行度、玩家数量等)的一部分搜索时,可以更快地发现较新的内容。一些实施例可以提供基于玩家关联的群组的预测。一个群组可以包括在一个或多个特性上具有相似性的玩家,例如年龄组、之前的选择(例如选择了x方然后选择y方的玩家)、在平台上的时间长度(例如本次会话和/或总小时数)、化身类型、比赛国家、比赛时间等。
66.一些实施例可以在用户正在查看图形用户接口但尚未从界面中进行选择时进行预加载。通过在处理负载可能较低的时间(例如,当用户正在查看gui进行选择时)执行预测
性预加载,系统或方法可以将一些处理或数据通信转移到当处理器和/或通信系统处于低利用率状态的时候,从而可以提高处理或通信资源的利用率。
67.一些实施例可以包括使用玩家信息。在这样的实施例中,可以在使用玩家信息之前获得玩家许可。可以向玩家提供允许或拒绝使用与玩家相关联的信息的选项。在玩家已允许使用玩家信息的情况下(例如,用于训练模型或使用模型进行预加载预测),玩家信息可以转换或抽象为某种形式,该形式移除了任何玩家(或用户)的可识别信息(例如,通过使用区域位置代替实际或更详细的位置,通过使用玩家年龄范围代替实际年龄,从账号历史中移除玩家账号识别细节等)。如果玩家不提供玩家数据和/或使用行为的许可,则此处描述的方法将在没有玩家数据的情况下执行。在一些实施例中,玩家数据和获得许可的多个玩家的动作可以组合成一个聚合形式,其不包括任何特定玩家的身份,而是代表玩家数据和动作的聚合(例如玩家数据和动作与一个群组相关联)。
68.图3示出了本技术实施例提供的训练机器学习模型来预测用于预加载的游戏数据资产的示意图。如图3所示,训练数据302在训练阶段被提供给预测性预加载模型104。在各种实施例中,预测性预加载模型104可以包括一个机器学习模型(例如,一个神经网络,如卷积神经网络、全卷积神经网络等),其可以被训练来预测游戏或游戏相关的要预加载的数据。在一些实施例中,训练数据可以包括玩家数据304和玩家动作306。机器学习模型可以包括神经网络以外的模型,例如聚类分析算法、支持向量机或其他合适的模型。
69.玩家数据304可以包括玩家性别、玩家年龄、玩家地理区域、玩家语言、玩家在所述游戏平台上的体验或玩家在所述游戏平台上的购买历史。玩家动作306可以包括玩家已经采取的先前动作,以及可选地采取动作的上下文。可用游戏选项可以包括在选择特定选项时可在gui上选择的游戏选项、采取行动的游戏上下文(例如,游戏阶段、游戏类型或游戏实例)等。在一些实施例中,训练数据302可以包括特征向量,该特征向量包括玩家人口统计、群组信息、游戏历史、当前时间/位置、游戏级别等。在一些实施例中,训练数据可以包括多维向量且每个维度具有数值。可以基于多维向量的自动聚类来形成或识别群组。在一些实施例中,有些值是简单的二选一的值,例如男性且非女性。有些是诸如年龄之类的值,可以将其分组到与每个箱关联的年龄组内的玩家箱中。所使用的值的类型可能会影响所使用的预测模型的类型。例如,神经网络可能倾向于在离散值上表现更好,而聚类分析技术在范围值上表现良好。在一些实施例中,可以使用诸如年龄之类的值的聚类来确定要发送到神经网络的正确箱。
70.预测性预加载模型104可以包括一个或多个神经网络,例如玩家网络308(例如,使用个人玩家数据训练的网络)和/或群组网络310(例如,使用群组数据训练的网络)。玩家网络308和群组网络310可以是单独的网络或相同的网络。模型104的训练可以包括玩家特定(或用户特定)的神经网络的训练且基于过去游戏选择(例如,该用户通常从搜索结果中选择最流行的游戏)或基于过去的游戏玩法(例如,该用户在进入房间时通常向左导航)。训练还可以包括基于群组的训练,例如特定人群中的用户,在开始游戏时,选择此类配件(例如,21岁的男性通常选择皮夹克和棒球帽;30岁的女性通常选择红头发和发带)。训练还可以包括没有人口统计数据的先验数据训练(例如,用户首先选择与头发相关的配饰,然后选择鞋类配饰)。上面提到的训练方法可以包括用于预测的相关权重(例如,如果训练了三个独立的模型,个人、群组和非人口的,则可以为个人玩家模型分配更大的权重,因为它是一个更
加个性化的模型并且可能更准确)。在一些实施例中,训练好的模型是离线和/或在线训练的,例如,如果用户选择了预先加载的选项,则可以作为对模型的积极强化,而如果用户选择不同的选项,或者导航到不同的游戏选项列表,可以作为负强化。在线训练可以允许机器学习模型根据以下来动态调整预加载游戏选项的预测:(a)更多可用游戏;(b)用户偏好改变,例如一些游戏的受欢迎程度增加另一些减少;(c)一天中的时间、一周中的哪一天/其他长期趋势,例如夜间流行的动作游戏、周末的策略游戏等;和/或(d)可用游戏资产的变化。也可以使用朋友图来定义或识别群组,其中玩家作为朋友连接到其他玩家,本地组可能是群组,例如所有玩家中希望有3个来自问题玩家。在线训练允许系统随着时间的推移调整选择过程。例如,每周可能有九千万玩家进行选择,通过在线训练,系统可以跟上用户行为的流行或趋势。
71.在一些实施例中,可以基于所有三组数据(例如个体、群组和非人口的先验数据)联合训练单个神经网络,并将权重分配给训练输入(例如,更高的权重给个人和最低权重给没有人口统计数据的先前数据)。
72.模型形式或结构可以指定各个节点之间的连接性以及节点到层的组织。例如,第一层(例如输入层)的节点可以接收数据作为输入数据或应用程序数据。此类数据可以包括例如一个或多个可用游戏选项或玩家数据点。随后的中间层可以根据模型形式或结构中指定的连接性接收作为前一层节点的输出作为输入。这些层也可以称为隐藏层。最后一层(例如,输出层)生成机器学习应用程序的输出。例如,输出可以提供预测的用于预加载的一个或多个游戏选项。
73.在一些实施例中,经过训练的模型可以包括加权的个体节点和/或连接。相应的权重可以应用于按照模型形式连接的每对节点之间的连接,例如神经网络的连续层中的节点。在一些实施例中,各个权重可能是随机分配的,或者初始化为默认值。模型可以被训练,例如利用数据,生成结果,其中该训练可以包括调整节点、节点结构、连接、和/或权重中的一个或者多个。
74.模型可以包括表示预测值和实际标签之间的差异的损失函数。可以训练模型以最小化损失函数。训练可以包括监督、无监督或半监督学习技术。在监督学习中,训练数据可以包括多个输入(例如,玩家数据和可用游戏选项)和每个输入的相应预期输出(例如,玩家动作如已选择游戏选项)。基于模型输出与预期输出的比较(例如,计算损失函数),权重的值会自动调整,例如以增加模型在被提供相似输入的情况下增加生成预期输出的概率的方式(即减少损失函数)。在无监督学习中,模型学习数据集中元素之间的关系并对原始数据进行分类,而没有标记训练数据的好处。半监督学习可以包括监督和非监督技术的组合,例如可以提供少量标记训练数据和大量未标记训练数据给模型进行学习。一旦模型104被训练,就可以用于预测游戏和游戏相关数据资产以基于真实世界的数据进行预加载。
75.在一些实施例中,神经网络(以及其他学习算法)倾向于产生一组加权的选择。一些实施例可以包括执行训练步骤,直到正确答案的权重大于下一个选项的阈值。通过不断改进数据集,并通过丢弃不正确的决定,输出任何特定网络可能几乎没有不利的一面。可以通过跟踪任何特定网络随时间推移的表现来分析性能。
76.图4示出了本技术实施例提供的用来预测用于预加载的游戏数据资产的机器学习模型的示意图。在操作中,真实世界数据402可以提供给预测性预加载模型104。在一些实施
例中,真实世界数据可以指在游戏或游戏选择期间由游戏平台获得的数据,并且对其执行预测性预加载。真实世界数据402可以包括玩家数据404和可用选择406(例如,一个或多个可用游戏选项如要玩的游戏、特定游戏内的选择或选项等)。
77.预测性预加载模型104可以基于真实世界数据402和玩家网络308和/或群组网络310产生一个或多个用于预加载的已预测选择408,这些可以是单独的网络或相同的网络。用于预加载的已预测选择可以包括游戏、游戏资源、游戏选择(例如,游戏内的移动、游戏内的动作等)。
78.图5示出了本技术实施例提供的预测性预加载游戏数据的示例方法500的流程示意图。处理开始于502,在此确定玩家是否已提供使用玩家数据的许可。如果是,则继续处理504。否则继续处理506。如果不允许使用玩家数据或没有足够的数据进行预加载预测或任何系统无法进行预加载预测的情况,则系统只能回退到等待玩家做出选择。
79.在504处,获得玩家数据。玩家数据可以包括玩家性别、玩家年龄、玩家地理区域、玩家语言、玩家在所述游戏平台上的体验或玩家在所述游戏平台上的购买历史。玩家数据还可以包括玩家所属的一个或多个群组,其中一个群组包含该群组成员匹配的一个或多个特性(例如,匹配相同的男性或女性,或在给定范围内匹配,例如生活在纽约市附近)。玩家数据可以从玩家在创建或更新账号时提供的信息、在使用游戏平台期间收集的有关玩家的信息(经玩家许可)等中获得。处理继续到506。
80.在506处,获得可供选择的游戏选项。可供选择的游戏选项可以包括可供选择玩的游戏(例如图2中的202)、游戏内的物品、玩家正在玩的特定游戏内可供选择的移动或动作选项等。处理继续到508。
81.在508处,玩家数据(可选)和可供选择的游戏选项被提供给预测性预加载模型(例如,104)。处理继续到510。
82.在510处,从预测性预加载模型接收要预加载的一个或多个游戏选项。处理继续到512。
83.在512处,开始预加载在510中接收的一个或多个游戏选项。例如,可以在后台的玩家系统(即客户端)上执行预加载,而玩家仍在查看用户接口以进行选择。可以在显示可用选项后开始预加载,或者,可选地,可以在从预测性预加载模型接收到一个或多个预加载游戏选项后立即开始预加载,其可以在可用选项显示在玩家系统上之前。在一些实施例中,预加载可以包括通过网络从游戏平台检索一个或多个资源,在玩家系统的随机存取存储器中加载一个或多个资源,和/或在游戏平台中缓存一个或多个资源。处理继续到514。
84.在514处,接收玩家选择或达到另一个预加载终止条件。其它终止条件可以包括接收改变可用游戏选项的导航(例如搜索结果窗口中的下一页选择,接收不同的搜索查询等)。处理继续到516。
85.在516处,终止任何未被选择的游戏选项的预加载。终止预加载可以包括停止预加载并释放与被终止的预加载游戏或游戏相关数据资产相关联的任何内存或其他资源。终止还可以包括在给定的时间内暂时停止预加载,这样如果用户在给定的时间内返回到用户接口屏幕或程序状态并且可以将执行之前的全部或部分预加载,则预加载可以在收到终止条件后并且在丢弃任何部分预加载的数据之前,从暂时停止的地方重新启动。
86.一些实施例可以包括基于选择更新ml模型,这可以包括模型的在线训练,例如基
于玩家选择的强化学习。
87.框502-516(以及本文所示出和描述的任何其他框)可以全部或部分地重复并且以相同或不同的顺序执行。此外,某些框可以被消除、修改、与其他框组合和/或补充有其他操作。
88.图6是可用于实现这里描述的一个或多个特征的示例计算设备600的框图。在一个示例中,设备600可用于实现计算机设备(例如,图1的102和/或110-114)并执行本文所述的方法实施例。计算设备600可以是任何合适的计算机系统、服务器或其他电子或硬件设备。例如,计算设备600可以是大型计算机、台式计算机、工作站、便携式计算机、或电子设备(便携式设备、移动设备、手机、智能手机、平板电脑、电视、电视机顶盒、个人数字助理(pda)、媒体播放器、游戏设备、可穿戴设备等)。在一些实施例中,设备600包括处理器602、存储器604、输入/输出(i/o)接口606和音频/视频输入/输出设备614。
89.处理器602可以是一个或多个处理器和/或处理电路以执行程序代码和控制设备600的基本操作。“处理器”包括处理数据、信号或其他信息的任何合适的硬件和/或软件系统、机制或组件。处理器可以包括具有通用中央处理单元(cpu)、多个处理单元、用于实现功能的专用电路或其他系统的系统。处理不必限于特定的地理位置,或具有时间限制。例如,处理器可以以“实时”、“离线”、“批处理模式”等方式执行其功能。部分处理可以在不同时间和不同位置由不同(或相同)处理系统执行。计算机可以是与存储器通信的任何处理器。一些实施例可以包括机器学习处理器或其他处理器(例如,gpu、asic、fpga等),用于机器学习模型的实施例以实现本文所述的一个或多个机器学习模型。
90.存储器604通常设置在设备600中以供处理器602访问,并且可以是任何合适的处理器可读存储介质,例如随机存取存储器(ram)、只读存储器(rom)、电可擦除只读存储器(eeprom)、闪存存储器等,适用于存储可以被处理器执行的指令并且与处理器602分离和/或与其集成。存储器604可以存储由处理器602在服务器设备600上运行的软件,包括操作系统608、预测性预加载应用程序610和相关数据612。在一些实施例中,搜索引擎应用程序610可以包括使处理器4602能够执行这里描述的功能,例如,图5的方法的一些或全部。
91.例如,存储器604可以包括用于预测性预加载应用程序610的软件指令,其可以在线游戏平台(例如102)或玩家系统(例如110至114)内提供预测性预加载能力。存储器604中的任何软件可以替代地存储在任何其他合适的存储位置或计算机可读介质上。此外,存储器604(和/或其他连接的存储设备)可以存储在本文描述的特征中使用的指令和数据。存储器604和任何其他类型的存储(磁盘、光盘、磁带或其他有形介质)可以被认为是“存储器”或“存储设备”。
92.i/o接口606可以提供使服务器设备600能够与其他系统和设备接口的功能。例如,网络通信设备、存储设备(例如,存储器和/或数据存储器106)和输入/输出设备可以通过接口406进行通信。在一些实施例中,i/o接口可以连接到包括输入设备的接口设备(键盘、触点设备、触摸屏、麦克风、相机、扫描仪等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
93.为了便于说明,图6示出了用于处理器602、存储器604、i/o接口606、软件块608和610以及数据库612中的每一个的块。这些块可以代表一个或多个处理器或处理电路、操作系统、存储器、i/o接口、应用程序和/或软件模块。在其他实施例中,设备600可能不具有所
示的所有组件和/或可能具有其他元件,包括其他类型的元件,以代替此处所示的元件或除此处所示的元件之外的元件。虽然在线游戏平台102被描述为执行如本文中的一些实施例中所述的操作,但在线游戏平台102或类似系统的任何合适的组件或组件的组合,或与此类系统相关联的任何合适的处理器或多个处理器,可以执行所描述的操作。
94.用户设备或玩家系统(例如110至114)也可以实现和/或与这里描述的特征一起使用。示例用户设备或玩家系统(例如110至114)可以是计算机设备,包括一些与设备600类似的组件,例如处理器602、存储器604和i/o接口606。操作系统、软件并且适用于客户端设备的应用程序可以在存储器中提供并由处理器使用。客户端设备的i/o接口可以连接到网络通信设备,也可以连接到输入和输出设备,例如用于捕获声音的麦克风、用于捕获图像或视频的摄像头、用于输出声音的音频扬声器设备、用于输出图像或视频的显示设备,或其他输出设备。例如,音频/视频输入/输出设备614内的显示设备可以连接到(或包括在)设备600中以显示如本文所述的预处理和后处理的图像,其中这样的显示设备可以包括任何合适的显示设备,例如lcd、led、或等离子显示屏、crt、电视、监视器、触摸屏、3d显示屏、投影仪或其他视觉显示设备。一些实施例可以提供一个音频输出设备,例如语音输出或者阅读文字的合成音。
95.本文描述的一种或多种方法(例如方法500)可以由能在计算机上执行的计算机程序指令或代码来实现。例如,代码可以由一个或多个数字处理器(例如微处理器或其他处理电路)实现,并且可以存储在计算机程序产品上,其包括非暂时性计算机可读介质(例如存储介质),例如磁性、光学、电磁或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机软盘、随机存取存储器(ram)、只读存储器(rom)、闪存、硬磁磁盘、光盘、固态存储驱动器等。程序指令也可以包含在电子信号中并作为电子信号提供,例如以从服务器(例如,分布式系统和/或云计算系统)交付的软件即服务(saas)的形式。或者,一种或多种方法可以在硬件(逻辑门等)中或在硬件和软件的组合中实现。示例硬件可以是可编程处理器(例如现场可编程门阵列(fpga)、复杂可编程逻辑设备)、通用处理器、图形处理器、专用集成电路(asic)等。一种或多种方法可以作为在系统上运行的应用程序的一部分或组件来执行,或者作为与其他应用程序和操作系统结合运行的应用程序或软件来执行。
96.本文描述的一种或多种方法可以在能在任何类型的计算设备上运行的独立程序、在网络浏览器上运行的程序、在移动计算设备上运行的移动应用程序(“应用”)中运行(例如手机、智能手机、平板电脑、可穿戴设备(手表、臂章、珠宝、头饰、护目镜、眼镜等)、笔记本电脑等)。在一个示例中,可以使用客户端/服务器架构,例如移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备并从服务器接收用于输出(例如用于显示)的最终输出数据。在另一个示例中,所有计算都可以在移动计算设备上的移动应用程序(和/或其他应用程序)内执行。在另一个示例中,计算可以在移动计算设备和一个或多个服务器设备之间拆分。
97.尽管已经针对特定实施例进行了描述,但这些特定实施例仅是说明性的,而非限制性的。示例中说明的概念可以应用于其他示例和实施例。
98.应当注意的是,如本领域技术人员所知,本公开中描述的功能块、操作、特征、方法、设备和系统可以被集成或划分为系统、设备和功能块的不同组合。可以使用任何合适的编程语言和编程技术来实现特定实施例的例程。可以采用不同的编程技术,例如,面向过程
的或面向对象的。例程可以在单个处理设备或多个处理器上执行。虽然步骤、操作或计算可能以特定的顺序呈现,但顺序可能会在不同的特定实施例中发生变化。在一些实施例中,本说明书中显示为顺序的多个步骤或操作可能会同时执行。