摘要:针对当今学生爱好游戏的心理特点, 结合教育游戏的研究理论以及编程教学的现实需求, 通过研究现有各类游戏中的模式, 参考以及自行研究设计出综合多种游戏模式并进行应用, 实现了一款面向Java语言教学的游戏软件。使得用户以游戏的方式进行程序设计学习, 采用游戏中的关卡、场景等, 将程序设计知识贯穿在游戏过程中, 增加学习者的学习兴趣, 提高学习效果。学生可以通过玩游戏的方式进行Java编程知识的学习, 它既提高了学生学习的趣味性, 也提升了教师教学的效果。
关键词:编程教学; Java; 教育游戏; 软件;
Abstract:Considering the psychological characteristics of most students be kind of game, combining the educational games theory with the realistic needs of programming teaching, with the study for all kinds of current games' mode, a game software witch for the Javalanguage teaching is designed and implemented.It makes the users can learn Javaby playing the game.The programming knowledge is showed and tested in different game scenes.This education game software increasesthe learners' learning interests and improves learning efficiency.Students can learn Java programming language by playing this game.It cannot only improve students' study interest, but also promote the effect of teaching.
Keyword:Programming teaching; Java; educational game; software;
教育游戏是教育信息化时代出现的一种寓教于乐的新方式和全新的教育理念, 是一种用寓教于乐的高效学习方法, 它利用人“爱玩”的天性, 让学习者在“玩”中学习, 从而充分调动学习者的学习兴趣, 使学习效果得到极大提高。教育游戏的提出是在现实教育需求下产生的。教育游戏既满足学生“玩”的需求, 又让他们在玩的同时顺便“学”到一些知识。虽然市面上出现了若干游戏模式的编程教育软件, 但要么是针对低龄儿童, 要么功能较为单一, 场景、模式和角色较为单调, 对中学、大学等年龄阶段的编程学习者来说吸引力不够。因此, 本项目准备借鉴各种爱好者众多的知名游戏的游戏模式, 综合运用到本项目所设计的软件当中, 真正使用户既能享受到游戏的乐趣, 同时能得到编程知识、编程思想以及编程技能的训练。该游戏教育软件的实现, 将可很好地辅助传统的Java语言编程教学以及考核, 提高学生的学习兴趣, 提升教学质量。
1、系统设计
一款较为成熟的游戏软件的开发本身工作量是比较大的, 本项目需要完成的内容相当多, 主要内容如下。
(1) 整理总结Java核心语法和知识点, 将其转换为可以在游戏中学习和考核的形式。
(2) 综合应用现有游戏中的关卡、场景等, 将程序设计知识贯穿在游戏过程中的各环节里面, 让学习者在游戏任务中完成贯穿于其中的知识性学习任务和考核。
(3) 借鉴游戏中的奖惩手段, 通过生命值、积分、扣分、头衔等手段, 实现游戏的挑战性, 激发学习者的学习动力。
(4) 实现防止虚假的挂机时间、虚假的对战胜利积分、防止他人代做练习与考核等功能, 提高学习成绩的可信度。
(5) 实现多种游戏模式在本软件中的应用, 提高软件的趣味性, 提升学习者的学习兴趣。
从技术上而言, 现在的游戏设计技术众多, 本项目的一个突出特点是希望能综合应用多种游戏模式, 借鉴射击、RPG、手游、页游等各类游戏模式, 以及包括通关、射击 (枪击、飞机坦克射击) 、寻宝、场景、对战、角色扮演等各种形式, 而不局限于某一种模式, 将学习与教育的内容和过程呈现为游戏形式, 增加游戏的趣味性和挑战性。综合应用多种游戏模式和实现形式, 并在此基础上创新, 使得游戏既保持其整体的协调性, 又能有超出一般单一模式游戏的趣味性。
2、关键技术
2.1、核心思想
本游戏主要实现的在一个登录页面可以登录不同类型的游戏, 所以在登录的后会对各个场景进行半独立化, 即要实现各个场景之间不相互影响, 但是在数据方面又具有关联关系。故此, 我们会采用多种游戏模式, 场景方面也会设计不同的风格以便可以满足更多人的喜好。故本游戏主要运用的是unity3d游戏引擎, 进行游戏设计与编码, 使用mysql对数据进行处理与存储, 使用3dmax对模型进行设计, 使用ps进行美工方面的设计。本游戏主要是使用的计算机高级语言有C#和Java Script。对于使用软件各版本有此解析:unity3d使用4.6版本, mysql使用5.6版本, 3dmax使用2014版本, ps使用cs6版本。
2.2、用户接口设计
在软件的登录界面设置有注册入口和忘记密码入口, 用户第一次使用该软件时, 需进入注册页面填写注册信息, 并经过管理员审核同意之后方可使用该软件。账号激活之后, 即可登录游戏。登录信息有误, 系统则会以对话框的形式提示用户。若用户忘记密码, 则可通过忘记密码入口进行重置操作。
用户进入游戏之后, 会进入角色展示页面, 在该界面中会展示当前用户所有已创建的角色, 如若是新用户则会提示创建角色。完成这些之后, 用户即可开始闯关冒险。用户游戏过程中, 系统会在每一个关键处设置有引导提示, 引导用户操作。
2.3、UI接口设计
在UI设计这块主要使用的是NGUI这个插件, 首先需要在Hierarchy穿件一个UI, 在创建Panel面板, 同一层的东西要放在同一个UIPanel上, 其他元素放在该面板下。
如在Panel面板添加一个血量条, 需要先创建精灵图集, 再为血条添加前景和背景, 在设计前景在背景显示的长度就可以计算血条的血量。
2.4、Http接口设计
软件在发起Http请求时, 为了不阻塞主线程 (UI线程) , 所有的网络请求、文件读取等费时的操作均采用异步请求方式, 从而给用户更好的体验。
2.5、块接口设计
会员信息模块点数据字段如表1所示。该模块主要是记录用户的必要信息, 同时实现用户账号的登录验证, 用户通过客户端使用POST或GET方法提交请求时, 如果HTTP的响应是布尔值, 返回响应TRUE, 说明账户成功通过, 返回响应的是FALSE, 则说明账号或密码有误, 或者已经在线无法重复登录。另外, 用户可以根据该表记录的注册时设置的密保问题进行密码重置操作。
表1 用户信息表
获取关卡客观题和主观题的模块点数据字段如表2和表3所示。该模块主要是记录游戏关卡中出现的主观题和客观题。当用户到达某一关卡之后, 系统将会自动根据当前关卡的难度调取相应的题目给闯关者, 答案正确则给予通过。用户的提交历史将会记录在另一个表中, 字段如表4所示。
表2 客观题表
表3 主观题表
表4 提交历史表
成绩记录模块则是设计用来记录用户闯关过程中各个关卡所得成绩 (数据字段如表5所示) , 根据这里的数据, 可以设计一条根据各个关卡及题型的难度来计算用户总分比重的公式, 按照这条公式计算所得的分数则是用户的当前总分, 该总分会记录到用户信息表 (表1) 的Record字段中。
表5 关卡成绩表
排行榜模块则是记录游戏中所有的用户排名情况, 数据字段如表6所示。
表6 排行榜表
2.6、数据解析
本软件最关键的一点是对用户提交的主观题代码进行在线自动判题, 针对这点, 系统使用了当前流行的开源OJ框架搭建自己的在线审题系统, 当用户提交代码的时候, 游戏系统则会将用户的提交发送请求给审题系统进行批改, 游戏进程通过审题系统返回的状态码来判断用户是否提交成功。
3、总结
通过编写测试用例对系统的各个模块进行了单元测试、模块测试、集成测试后, 解决了所发现的一些小问题, 系统部署到服务器上运行, 并提供客户端软件供校内师生下载安装使用, 经过一段时间点试运行, 整体上稳定可靠, 得到了广大用户的认可。本项目克服了传统的编程学习练习过程中需要教师人工改题的麻烦, 改用当前流行的开源OJ框架对用户的代码进行judge, 同时使用游戏的方式引起学生的学习兴趣, 提高了学生学习的效率, 有效提高了教学效果。
参考文献
[1]尚俊杰, 肖海明, 贾楠.国际教育游戏实证研究综述:2008年—2012年[J].电化教育研究, 2014 (1) :71-78.
[2]王庆, 钮沭联, 陈洪, 等.国内教育游戏研究发展综述[J].电化教育研究, 2012 (1) :81-84, 89.
[3]李海峰, 王炜.基于具身认知理论的教育游戏设计研究——从EGEC框架构建到“环卫斗士”游戏的开发与应用[J].中国电化教育, 2015 (5) :50-57.
[4]李馨.融入“适应性”的教育游戏结构设计模型及实验研究[J].远程教育杂志, 2015 (2) :97-103.
[5]安福杰.基于需要层次理论的教育游戏激励机制研究[J].中国电化教育, 2013 (3) :96-100.
[6]史忠翠.教育游戏的理论研究与应用[D].北京:北京交通大学, 2009.
[7]曹晓明, 朱春莺, 李晓华.三维情境式教育游戏软件的设计与案例研究[J].现代教育技术, 2009 (7) :78-81.
[8]王玉龙.基于体验式学习的教育游戏软件设计模式构建[J].中国教育信息化, 2012 (12) :76-78.