位置服务与增强现实技术在教育游戏中的应用
2018-11-13张晨马力
张晨 马力
摘 要:随着移动终端设备的快速发展,增强现实教育游戏的游戏环境可以拓展至户外空间,开拓了教育游戏新的应用范围。目前利用增强现实技术结合位置服务技术的教育游戏较少,文章设计了一款具有位置标记功能与增强现实互动功能的具有考研知识的教育游戏。增强现实技术可以将教育游戏的发生情境延伸至现实中,通过创设新颖的游戏环境,使教学活动具有一定的开放性和灵活性。位置服务技术通过创设真实游戏环境,使学习者自身活动代替操作控制游戏主角,丰富了教育游戏的活动方式。用户进入学习任务环节前需进行趣味性增强现实小游戏,在游戏化学习的知识问答环节中,设置血量为游戏生命值,并根据设计游戏规则,在问答过程中对学习者的学习程度进行考察。 参与者运用智能移动终端,利用线索图寻找任务点,到达任务点后通过趣味性小游戏进入知识点学习和问答环节,通过寻找任务、回答知识推进游戏进程,最终完成游戏。应用表明,该游戏虚实结合,交互性丰富,具有较强的沉浸感和较好的趣味性,可以实现目标群体的部分学习需求。
关键词:增强现实;教育游戏;位置服务;移动端
中图分类号:G434 文献标志码:A 文章编号:1673-8454(2018)16-0084-05
教育游戏近年来得到越来越多的关注,2016 年《地平线报告》高等教育版预测未来2到3年增强现实与虚拟现实将会成为广泛采用的中期技术之一[1]。近年来增强现实技术不断发展,移动设备功能愈加丰富,位置服务技术的功能完善,使教育游戏的发展产生了新的活力,移动增强现实教育游戏有效结合了增强现实技术、位置服务技术和移动终端与教育游戏的优势,扩展了教育游戏的应用领域。
一、研究现状
移动增强现实系统利用GPS、方向传感器或陀螺仪、地理位置识别或标记识别以及其他通过传感设备获得的数据,将虚拟信息叠加在真实世界中设定的区域位置,并显示在移动端的屏幕上。设定区域就是存储在增强现实程序中的现实世界信息,例如一张图片或者一个标记,程序能通过摄像头捕获的视屏输入流比较并识别这些设定了的信息,同时将虚拟信息叠加在真实世界的设定区域里。
1997年, Feiner 带领团队研制出世界上第一款移动增强现实系统,名为MARS移动手机增强现实系统,并将其应用于导航技术[2]。移动增强现实技术经过多年的发展,直到2012年谷歌发布了一款名为Ingress 的增强现实移动游戏,这款游戏支持网络社交,游戏分为红蓝两个阵营,阵营内的玩家被称为特工,他们通过争夺、控制真实世界中的地标性建筑或其他据点来进行游戏竞争[3]。2016年谷歌结合Ingress 的运营经验,与任天堂公司合作推出了PokémonGo这款移动增强现实手机游戏,玩家可以在不同的地理位置使用手机摄像头在屏幕上捕获以小精灵为形象的虚拟物体,玩家的小精灵之间可以进行对战,该游戏凭借新颖的玩法受到全球玩家的追捧[4]。
二、教育游戏的设计
1.游戏的任务
首先根据游戏的教学用途,确定本游戏是一款在户外应用增强现实技术、位置服务技术,以知识点学习、情境问答为主要活动形式的探究性教育游戏,此后的设计均围绕这个基础展开。前期设计游戏策略,围绕知识点学习和情境问答所需的游戏规则、任务奖励措施、回答问题后的学习信息反馈以及反馈后的诊断和强化展开,目标是让学习者利用游戏完成一个完整的考研知识点的学习过程,之后进行功能模块的设计和资源设计。功能模块中除了关键的增强现实技术和位置服务技术,还包括数据库数据存储与载入,服务器与客户端的信息处理,实现登录与注册等。
资源设计包括增强现实资源、位置信息資源和游戏的资源设计,增强现实资源包括UI界面、3D模型,位置信息资源包括地理位置数据。增强现实引擎通过获取当前设备地理位置信息和数据库信息进行匹配,匹配成功后将3D模型叠加到现实场景中,并在手机屏幕上呈现叠加景象。在此基础上开展知识点学习和问答环节,通过数据封装将数据存储到后台,用于评价学习者的学习结果。通过整个游戏任务的设定,形成了以任务挑战、知识学习、知识问答、探索发现、记忆联想、反馈记录、成就激励这些环节组成的教育游戏。
2.游戏需求分析
“奔跑吧,学霸”的目标群体为大学生,这一阶段的学生以抽象思维的分析、归纳、记忆等形式为主把握对象,大学生具有丰富的游戏软件使用经验,对于教育游戏的游戏内容相关设计要充分考虑这些特点。设计游戏需考虑学习者的需求,过去传统的学习方式已经越来越不能满足现今大学生的需要,从丰富学习方式以及学习内容的角度出发,创设新颖的游戏环境和活动方式,使教学活动具有开放性和灵活性,为大学生的学习注入活力。因此,该教育游戏的设计应该注意:
(1)注重创设新颖的教育游戏环境,将增强现实和教育游戏结合起来,设计出一款基于增强现实的、有教育意义的、含有逻辑思维的游戏——“奔跑吧学霸”。增强现实教育游戏能为学生创设相对真实的学习环境,学习者通过游戏化活动进行学习,锻炼了逻辑推理能力、人机互动能力,调节了身体机能,对学生的泛在学习也有重要意义。
(2)创新教育游戏活动方式,用户以自身的活动代替通过操作控制主角进行游戏活动,这种游戏活动方式使用户实现调节身体机能的同时进行游戏化学习。将位置服务技术和教育游戏结合起来,通过多重的功能满足游戏者更为细化的需求,提高大学生群体进行游戏化学习的积极性。
3.功能设计
归纳现有的各类移动增强现实教育游戏,从具体功能实现的角度,一个基本的移动增强现实教育游戏的功能可以归纳为五个模块:
(1)登录与注册:本增强现实教育游戏是由单人完成,游戏者通过向数据库存储数据,并进行账号密码验证进入主界面。
(2)增强现实与定位:学习者需要通过对自身位置的定位和周围事物的查看,探寻到线索推断出任务目标地址。位置运动是实现本教育游戏的基本方式,位置服务相关功能的实现是本游戏实现的关键,包括GPS定位功能,查看线索图后通过位置运动寻找相应的目标地点后,需要通过增强现实功能进入情景问答和知识点学习的入口。
(3)答题与积分:回答问题模块用于游戏软件与知识库系统、用户之间的交互,例如在游戏过程中要求使用者按照要求做出选择或者回答问题。答题成功后奖励一定积分。
(4)数据库数据存储模块:负责将各类游戏数据存储在数据库中,服务器与数据库之间连接并管理其中数据。
(5)客户端与服务器信息处理:用户使用游戏客户端向服务器发动请求,服务器响应请求,将结果返回客户端。
三、游戏的开发
1.游戏内容
“奔跑吧,学霸”是一款基于移动增强现实技术的教育游戏,用户通过手机寻找任务点进行知识点学习和回答问题,进而完成在户外的游戏化学习活动。
用户登录游戏界面后,游戏系统给用户随机分配线索图,用户根据线索图寻找任务点地址,到达任务点地址后通过消除3D模型障碍,进入知识点学习和问答环节,服务器会随机生成3道与知识点相关的题目,用户回答正确加积分加血量,数值与题目难度有关,回答错误扣除血量数值同上,在提交答案之前每30秒会扣除血量。回答错误时可以选择是否需要重新学习该知识点,并且学习知识点的机会只有3次,第一次是系统提供,后两次需要扣除当前答题所获得的10积分。不论是否查看知识点都将重新回答错误的问题,直到问题回答正确才会跳转到下一题,三道题全部正确,会分配下一任务点的线索信息,用户返回上一界面继续查找任务点位置,依次循环直到用户完成第五个环节的任务后,前往终点完成游戏任务。当用户血量值被扣为0时,游戏结束。系统记录相关数据如所获得积分、剩余生命值以及提交时间。成功完成游戏任务的用户可以额外获得该次游戏过程中未使用的双倍积分,并记录在数据库中。
2.游戏的开发环境
游戏开发的软件环境:采用Unity3D 4.6版本作为游戏的编辑器,因为Unity3D支持多平台的发布,同时支持多种编程语言,界面操作友好,可以使用多种第三方插件,在游戏开发界很受广大开发者的喜爱。编程语言使用Visual Studio 2012,数据库使用MYSQL5.6版本,数据库管理软件为体积小且免费的MySQL-Front 5.3,游戏服务器端使用Photon-Server-SDK,这个开发套件版本为v3-4-31-10808,使用Photon-Server进行服务器端开发的原因是其开发语言为C#,上手容易并且与Unity3D对接良好。
3.游戏的关键技术实现
本文所开发游戏的具体功能模块分为:数据库数据存储模块、游戏界面模块、服务器与客户端信息处理模块、登录与注册模块、增强现实与定位模块、答题与积分模块。其中数据库数据存储模块、服务器与客户端信息处理模块、登录与注册模块、增强现实与定位模块、答题与积分模块为游戏的主要功能模块。以下对主要功能模块的实现进行介绍:
(1)数据库数据存储的实现
数据库的具体实现方法,在使用MySQL-Front连接MYDSQL数据库后,创建名为runing的数据库,然后在数据库中创建以下表格来存储数据,见表1-表5。
(2)服务器与客户端信息处理模块的实现
为了合理利用智能设备的硬件资源,游戏采用了C/S系统架构进行设计开发,因此其功能模块实现分为两部分。
①服务器端开发
以上准备工作完成后,将开始对Photon-Server服务器端的相关文件进行开发设计,实现的步骤流程见图1。
服务器端的主要功能如下:负责启动服务响应客户端的请求,同时监测服务器的运行状态并输出日志信息,便于管理员管理;负责接收客户端的请求,如用户登录注册请求等,根据请求的类型不同来进行不同的处理;根据相应的请求操作相应的数据库表格信息,并将结果返回给客户端。
②客户端开发
相对于服务器端,客户端的开发相对简单,具体流程见图2。
客户端实现的主要功能如下:客户端负责与服务器端进行连接,并时刻监测与服务器的连接状态,如若与服务器断开连接则提示“服务器无响应信息”;客户端与服务器連接成功后,客户端负责向服务器发起请求,待服务器处理完请求后接收服务器的返回信息,并进行相应的处理实现不同的功能。
(3)登录与注册模块的实现
注册登录模块实现的主要方法为:
首先通过脚本读取用户输入的登录框内的信息,将信息处理加上标记发送给服务器。
服务器根据信息标记的不同进行不同的处理,对于登录请求只需分别查询数据库内runinguser表的username信息,如若存在则继续查询password密码信息,都成功返回登录成功客户端进行页面跳转,若有一步不成功则提示“用户名或密码错误,请重新登录”。
对于注册请求需分别查询数据库内runinguser的username信息查看用户名是否有重复,有重复给客户端返回信息“用户名重复请重新输入用户名”,无重复则将用户所输入信息保存在runinguser表中,并给客户端提示“注册成功”。
(4)增强现实与定位模块
增强现实模块主要的实现方式:首先实现读取真实场景的功能,然后将虚拟物体叠加在真实场景之上。具体操作方法为,打开003-game02AR场景,在场景中创建Canvas组件并在其中添加RawImage组件,然后在Canvas中添加OpenCamera脚本用来调用摄像头获取真实场景,然后将刚刚新建的RawImage组件拖动到Canvas的OpenCamera下的RawImage属性中,用来将获取到的真实场景显示在RawImage上,这样就实现了显示真实场景的功能。对于3D模型的叠加显示则采用普通的界面开发方法,最终实现增强现实的效果如图3。
对于位置服务模块主要使用Unity3D内置的LocationServiceStatus类,通过调用设备的GPS来获取设备的经纬度信息,实现定位功能。其实现方法为:打开PhotonEngine脚本在其Awake方法中添加“Application.runInBackground = true;”表示允许后台运行、“DontDestroyOnLoad(this.gameObject);”表示永不销毁两条命令。然后在PhotonEngine创建 public float gpslatitude、public float gpslongitude两类变量,在003-game02AR场景中创建名为GpsEngine的空物体,然后给它添加GpsEngine脚本,在脚本中调用LocationServiceStatus类获取设备经纬度,然后在该脚本中的Update方法中,将获得的经纬度复制给gpslatitude、gpslongitude。这样就能实时存储设备的位置信息,方便之后的应用调用,经过逻辑判断实现位置服务的功能。
(5)答题与积分模块的实现
答题与积分模块作为游戏的主要模块,从游戏的登录贯穿到游戏的结束。答题模块的功能模块具体又分为答题血量、添加题库数据、添加各类线索图数据、知识点数据、答题线索图数据、恢复血量小游戏地点数据、任务线索图的随机生成、终点数据、恢复血量小游戏、进入答题小游戏等子模块。
而积分模块主要分为积分榜显示、当次答题任务中的积分获取与消费、普通任务中的积分耗费、游戏结束时的积分记录存储、游戏完成时的积分双倍获得。
从游戏的运行顺序依次对应答题与积分模块的各个子模块进行开发,具体功能流程如图4-图6所示。
在AR模式下寻找任务点的功能主要通过将PhotonEngine中的gpslatitude、gpslongitude与数据库中的经纬度进行比对,这种对比每秒进行一次,实现实时定位功能,在比对过程中需要对数据库中的经纬度信息进行转换,转换完成后可以根据比对结果判断用户是否处于任务点附近。当用户到达答题任务点附近时,使用Instantiate与Random随机生成3D物体,用来作为一个增强现实的趣味小游戏。只有当完成这个小游戏后方可进入答题界面。对于答题界面主要采用了下拉列表、GetQuestionbankByType方法、GetKnowledgetype方法来实现知识点的选择以及从题库中抽取所选择知识点对应的题型。在答题过程中将答题血量存储在PhotonEngine的userHP中,答题累积积分存储在PhotonEngine 的integral,游戏胜利双倍积分存储在PhotonEngine的allright中,时间计时器减血功能由PhotonEngine中的Update方法实现。答题过程中,相关的问题信息记录数据如rightcount、wrongcount、seecount、notseecount,均在题目回答正确后,使用UpdateQuestionbank方法将当前回答问题的相关信息保存到服务器端。对于恢复答题血量的小游戏,当用户到达相应地点,若积分充足点击相关按钮,调用场景跳转方法 Application.LoadLevel进入到小游戏中。当游戏结束时使用AddAddIntegrate与UpdateAddIntegrate方法分别实现单次游戏的积分记录存储与当前账号的总积分存储。
当所有功能模块开发完成后,整合模块的各类功能,使整个游戏成为一个整体,功能流程图见图7。
四、结束语
移动增强现实教育游戏能够再现抽象、真实的信息内容,模拟现实的环境,受到外界的干扰相对较少,加上便捷的智能移动终端,为户外开展各项学习活动提供了可能。这类游戏形式新颖,能使学习者沉浸在学习活动中,激发学生的参与性与积极性。本游戏结合基于位置和基于图像识别的两种增强现实技术,利用 Unity3D 实现了一个可扩展的移动增强现实教育游戏。该游戏具有用户登录、增强现实和回答问题等模块。通过初步应用,可以发现该游戏虚实结合,交互性强,使学习者通过游戏化学习能够顺利完成设定的学习任务。该游戏存在着一些问题:3D 模型形象较为简单,游戏反应速度不快, 缺少分享功能,针对这些问题需要进一步的完善。作为一种新兴的研究领域,移动增强现实教育游戏可以给教学提供新的方式,有很好的应用前景。
参考文献:
[1]Horizon Report:2016 Higher Education Edition[DB/OL].http://www.jiaojianli.com/9935.html.
[2]Feiner S, MacIntyre B, Hollerer T, etal.A touring machine: Prototyping 3D mobile augmented reality systems for exploring the urban environment[A].Proc. ISWC 97 (First Int. Symp. onWearable Computers)[C].Cambridge:MA,1997:74-81.
[3]Google 发布在线现实增强移动游戏Ingress[DB/OL].http://www.csdn.net/article/2012-11-16/2811943-google-launches-ingress.
[4]Molina B.Report:‘Pokémon Godownloads top 15 million[EB/OL].http://www.usatoday.com/story/tech/gaming/2016/07/13/reportpokemon-go-downl oads-top-15-million/87022202/.
(編辑:鲁利瑞)