基于Flash的教育游戏动态任务的设计与实现

2014-04-29 09:44胡洪平惠芬
中国信息技术教育 2014年1期
关键词:教育游戏

胡洪平 惠芬

摘要:本文从理论和技术两方面,以教育游戏案例《飞机投弹游戏》为例,对实现教育游戏动态难度调节的相关要素进行了分析。

关键词:教育游戏;动态任务;Flash

目前国内关于教育游戏的研究主要集中在探讨教育游戏及其相关概念的界定、游戏的教育价值问题、教育游戏软件的设计和开发理论等。这些研究的关键在于探讨教育和游戏如何结合,寻找教育游戏中教育性和游戏性的平衡点。[1]但关于教育游戏设计案例的研究很少。本文从理论和技术两方面,对实现教育游戏动态难度调节的相关要素进行了分析,运用Flash设计出一个教育游戏案例《飞机投弹游戏》,希望借用此游戏形式,为学生营造一种愉悦的学习环境,真正达到寓教于乐。

● 教育游戏动态任务概述

1.教育游戏

教育游戏到目前为止还没有一个明确的定义。一种观点认为教育游戏在本质上是具有一定教育目的并具有一定可玩性的游戏。这种观点强调教育游戏实质上是一种游戏,知识是融入到游戏中的,学习者在游戏过程中学习到了知识并且掌握了技能,提高了能力。另一种观点认为教育游戏是把游戏中一些有利于引起学习者兴趣、增加学习者关注的因素引入到教育软件中,是一种带有趣味性的学习软件,这种观点实质上是强调教育游戏是一种教育软件。[2]教育游戏不同于传统意义上的教育软件,也不同于一般娱乐性的游戏,也不是二者简单相加,它是知识与娱乐的融合,不仅能够让教育游戏的玩家愉快地获取知识,而且能促进深度学习,有效地获取知识、技能,帮助学习者学会学习、学会发现、学会合作、学会独立解决问题。

2.教育游戏动态任务

在教育游戏的研究领域,对教育游戏的动态任务目前还没有一个统一的概念,多数引用的是对普通游戏动态任务调节的概念描述。鉴于教育游戏具有的教育和游戏两个本质的特殊性,本文认为教育游戏动态任务是指在教育游戏中,影响游戏难度的游戏性因素和教育性因素会根据游戏者的能力进行调整,以使游戏者的能力与游戏难度达到平衡并使这种平衡得以保持,进而提升游戏者在游戏中的沉浸体验,促进游戏者知识的习得与应用。

3.教育游戏动态任务实现的研究意义

该如何利用信息化的手段实现千百年前已提出的“寓教于乐”的教育思想,[3]让学生的学习变成快乐、自愿的事情?通过分析得出,问题主要集中在教育游戏的难度和学生的个人知识水平和能力不相适应。因此,教育游戏应适应性地动态调控游戏难度,学生参与游戏后,面对与自己技能相适应的挑战,便会产生沉浸感,沉浸状态下的内在愉悦和成就感会成为学生在游戏中学习的动力,学生将快速调动先前技能来克服所面临的挑战,在完成游戏任务的同时也完成了其承载的学习内容,学生的操作技能更加熟练,知识水平也得到了巩固和提升,新的“挑战-技能”[4]平衡关系又将建立,学生会不断地去接受新的挑战,在新的挑战中提高技能。

因此,教育游戏动态任务的实现研究将有利于延长学生在教育游戏中的沉浸时间,进而有利于教育目标的实现,大大提高学习效率。

● 相关理论基础

1.学习理论——沉浸理论

沉浸理论是Mihaly Csikszentmihalyi(芝加哥大学心理学教授)首次提出,主要用于解释当人们在进行某些日常活动时为何会完全投入情境中,集中注意力,并且过滤掉所有不相关的知觉,进入一种沉浸的状态。[5]沉浸是学习、工作时的最佳状态,它带来的内在满足感能使人们在从事任务时满怀兴趣,忘记疲劳,不停探索,不断达到新的目标。

2.游戏理论——弗洛伊德的宣泄理论

弗洛伊德认为游戏是满足愿望和克服创伤性事件的手段。游戏使儿童能逃脱现实的强制和约束,给他们提供安全的环境,使他们发泄那些在现实中不被接受的,以满足其追求快乐的愿望。[6]通过弗洛伊德的宣泄理论可知,游戏是人们自愿参加的活动,它能锻炼和培养游戏者的某种能力,因此让学习者通过游戏的方式进行学习是有可能的,而且也能够使其自愿、自觉、愉快地参加学习活动,而这恰恰是使用传统教学所欠缺的。

● 《飞机投弹游戏》案例剖析

1.需求分析

本文以“抛物运动”为游戏内容,结合新的物理课程标准,设计一个“飞机投弹游戏”教育游戏,引发学生对物理问题的好奇心和求知欲,使学生在游戏中掌握和熟悉抛物运动这个知识点,进而提高学习效果。

2.游戏类型的选择

教育游戏一般分为两种类型,一种是知识强化型游戏,这类游戏内容单一,但知识点相对集中,反复练习能够强化对知识点的记忆;另一种是支持学习者自主学习的知识探究型游戏,游戏本身包含一些物理知识,学习者沉浸于游戏情境中,扮演游戏中的某个角色,完成设定的学习任务。[7]本文中“飞机投弹游戏”主要是为了让学生探索抛物运动的规律以及强化抛物运动这个知识点,所以属于知识强化型游戏。

3.游戏开发工具的选择

本教育游戏案例采用Flash技术开发教育游戏,实现了游戏活动的动态难度调节。开发语言是ActionScript,运行平台是IE+flashplayer10。

4.案例概述文档

游戏初始,玩家设置飞机轮船初速度及飞机的高度。飞机轮船在向前运动的过程中,当两者的水平距离达到一个唯一的固定值时,学生点击投弹按钮,飞机就会发射一枚导弹,做平抛运动下落打中轮船,游戏成功。假若水平距离没有达到或超过了这个唯一的固定值时,则无法击中轮船,游戏失败。如果学生未掌握相关知识,则无法计算出这个唯一的水平距离时,也无法完成游戏,此时可点击“游戏帮助”查看这个唯一的水平距离值。

游戏规则如下,在一分钟内,多次变更飞机轮船初速度和飞机的高度,若累计得分高,说明他对平抛运动的相关知识已掌握,在超过时间后游戏自动结束。游戏结束后,若学生对这一知识点还没有掌握,可以选择再玩一次;若得分很高,说明已熟练掌握这个知识点,可以选择进入课后练习,完成这个知识点相关的习题,进一步提高玩家的学习效果。[8]

5.案例脚本文档

本案例脚本文档,包括开始、运行、游戏帮助、结束、习题,现主要针对游戏运行及游戏帮助中的重要显示对象,对其属性和操作进行描述。各对象其功能及实现的关键代码如下:

(1)帮助计算程序

/:ds1 = Number(eval("/:v1"));

/:ds2 = Number(eval("/:v2"));

/:ds3 = Number(eval("/:h"));

/:ds = int((Number(eval("/:v1")) - Number(eval("/:v2"))) * Math.sqrt(2.000000E-001 * Number(eval("/:h"))) * 100) / 100 add "m";

(2)飞机程序(fj)

setProperty("/:fj", _x, -120);

sf = -150;

t = 1.350000E+001;

setProperty("/:fj", _y, 3.868000E+002 - 6.200000E+000 * Number(eval("/:h")));

if (sf < 660)

{ setProperty("/:fj", _x, sf);

sf = sf + Number(eval("/:v1")) / 10;}

else{

gotoAndPlay(1);}

(3)导弹按钮(zd)

setProperty("/:zd", _x, getProperty("/:fj", _x));

setProperty("/:zd", _y, getProperty("/:fj", _y));

setProperty("/:zd", _visible, 1);

y1 = 3.678000E+002 - 6.173333E+000 * Number(eval("/:h"));

t1 = 0;

Math.sqrt(2 * Number(eval("/:h")) / 10);

setProperty("/:zd", _visible, 1);

i = 1;

if (y1 <= 3.678000E+002 && y1 >= 90)

{ setProperty("/:zd", _x, getProperty("/:fj", _x));

setProperty("/:zd", _y, getProperty("/zd", _y) + 5 * t1 * t1);

t1 = t1 + 5.000000E-002;

} // end if

if (getProperty("/:zd", _y) > 360)

{ gotoAndPlay(6);

tellTarget("/:button")

{gotoAndStop(1);

} // End of TellTarget

} // end if

setProperty("/:zd", _y, 380);

if (getProperty("/:lc", _x) + 10 >= getProperty("/:zd", _x) && getProperty("/:zd", _x) >= getProperty("/:lc", _x) - 10 && getProperty("/:zd", _y) == 380)

{/:df = Number(eval("/:df")) + 100;

tellTarget("/:lc")

{gotoAndPlay(4);

} // End of TellTarget

(4)轮船程序

setProperty("/:lc", _y, 360);

setProperty("/:lc", _x, 300);

sl = 300;

t = 1.350000E+001;

if (sl < 650)

{if (eval("/:v2") > 0)

{ setProperty("/:lc", _x, sl);

sl = sl + Number(eval("/:v2")) / 10;

} // end if

if (eval("/:v2") < 0)

{ setProperty("/:lc", _x, sl);

sl = sl + Number(eval("/:v2")) / 10;}

}// end if

else

{gotoAndPlay(1);}

(5)尺子

setProperty("/:c", _x, getProperty("/:fj", _x));

stop ();

其他界面的对象描述相对比较简单,这里不再一一赘述。

6.内容结构及设计思路

(1)界面

游戏案例界面可细分为初始界面、主运行界面、游戏任务调整界面、游戏结束界面、课后习题界面、帮助界面。初始界面主要供游戏者开始与载入存档,主运行界面主要实现游戏的运行(如图1),在主运行界面右上方可以找到游戏任务调整界面框,帮助界面可以给对该知识点不熟的玩家提供任务完成的方法,游戏结束界面可以让玩家自行选择是再次游戏还是进入练习,答题界面包含选择题、填空题,可让学生巩固自己所学的知识(如图2)。

(2)教育游戏动态任务实现的影响因素与流程分析

教育游戏中影响游戏难度的因素(游戏性因素和知识性因素)很多,这些因素的组合方式更多。本案例《飞机投弹游戏》中,主要是通过影响游戏难度的三个因素,来实现游戏活动的动态难度调节,即飞机的初速,轮船的初速,飞机的高度。另外,对游戏活动难度有影响的因素还有导弹,如初始状态下发射导弹的速度以及高度和移动的速度等,它会受到飞机的相关因素影响发生变化。

在教育游戏活动结束时,也会将游戏者在游戏活动中的表现(如得分、用时等数据)作为游戏者的能力水平传递给服务器,由服务器负责更新数据库中存储的游戏者能力。当游戏者进入新的游戏活动或再次进入该游戏活动时,服务器会将数据库中的游戏者的能力发送给客户端,用以初始化游戏活动的难度参数,基本的流程如图3。

本研究通过设计《飞机投弹游戏》,为学生营造一种愉悦的学习环境,达到更好的学习效果。本研究还存在一些不足,如案例研究不够完善,只是游戏初步模型及简单应用研究,缺乏对后期使用的教学效果的评价,无法为该教育游戏模型的完善提供数据依据。在今后的研究中,将不断提升该教育游戏软件的技术,注重游戏教育性的同时,进一步提高教育游戏的游戏性设计,更好地吸引学习者学习。

参考文献:

[1]尚俊杰,李芳乐,李浩文.“轻游戏”:教育游戏的希望和未来[J].电化教育研究,2005,(l):24-26.

[2]赵海兰,祝智庭.关于教育游戏的定义与分类的探析[A].第十届全球华人计算机教育应用大会(GCCCE2006)论文集[C],2006:40.

[3]韩庆年.电脑游戏中的学习过程与学习模式研究[DB/OL].南京:南京师范大学,2004.

[4]马颖峰,隋志华.教育网络游戏中NPC与学习者置入感的关系研究由Games-to-Teach项目想到的[J].电化教育研究,2009,(6):109-112.

[5]谷艳丽.面对网络游戏:教育工作者要关注和研究[DB/OL].http://www.eem.gov.en/net CultureChannel/main/wlwh3.jsp?id=8221&lm=ywxw.

[6]教学与网络游戏手牵手[DB/OL].http://yule.sohu.eom/20040806/n221392983.shtml.

[7]肖宏.教育游戏软件在小学英语教学中的应用研究[D].广州:华南师范大学,2007.

[8]何克抗,郑永柏,谢幼如.教学系统设计[M].北京:北京师范大学出版社,2002:52-53.

猜你喜欢
教育游戏
面向职业教育翻转课堂的教育游戏设计原则与策略研究
教育游戏在小学英语教学中的应用研究
教育游戏在小学英语教学中的应用评价
基于互联网+环境下大学生计算机基础教育游戏设计与研究