课堂电子游戏《鸦片战争》的设计与实现
1、引言
俄罗斯方块、超级马里奥、星际争霸、帝国时代、愤怒的小鸟……,游戏伴随着八十年代以后的人长大,却未曾变老,反而越来越强大。曾几何时,玩电子游戏和网瘾一样深受有识之士的痛恨,游戏者被人们认为是不学无术,玩物丧志,老师家长防之如防贼,但是前段时间,剧情峰回路转,电子竞技被列为大学专业专门研究学习,最近甚至被国家列为体育项目。也许我们可以忽视这些理论性的东西,可是身边的30岁以下的朋友,有谁没玩过电子游戏?不得不承认,电子游戏已经成为年轻一代不可取代的娱乐方式,尽管它有很多负面的影响,但不妨碍它产生的积极作用,面对潮流,逆流而行不是明智的选择,利用好潮流反而能更快更好地达到我们想要的目的。
游戏在教育中的利用价值慢慢开始受到各方重视,目前使用得最多的案例应该是在早教方面,大量的早教app能够在手机和平板中运行,虽然目前尚未有明确的统计,但是随着智能手机和平板的发展,这一类型的app发展势头越来越猛,数量越来越多,质量越来越好却是不争的事实。利用app早教,让婴幼儿能够在尚未有自主行动能力和自主保护能力之前就能安全、生动地认识到这个世界,不用亲临一条毒蛇身边去观察就能了解到蛇的习性,难道不是很好的事吗?
当然,游戏app不仅仅利用在早教方面,在基础教育方面也能很好的利用,虽然目前尚未成型,但是我们应该以发展的目光去看待这个趋势,这样才能走在行业的前列。游戏不一定是血腥暴力,也不一定要天马行空,只要充满乐趣,有吸引力,又有传播知识功能,就是一款好游戏。例如最近几年让游戏开发者一夜暴富的《愤怒的小鸟》、《涂鸦跳跃》、《割绳子》等游戏就几乎不存在暴力画面(游戏有些破坏的场景总是免不了的)。可以前瞻的是未来要发展的VR(虚拟现实技术)将能够大量运用于教育行业,这些VR的内容和技术来源都与当下的游戏技术一脉相承,而不是另起炉灶。有了这些先进的信息技术,在课堂上,“上九天揽月,下五洋捉鳖”都不是难事。当然,这些技术虽然已经出现,但是离普及到校园还需要一段时间。
但是,我们现在可以利用已有的成熟技术来探寻这样的一条路——怎样才能充分利用游戏的特性,吸引学生积极自主地学习。在智能手机出现之前,我们的教学也是随技术发展的,从最初的纯黑板与粉笔,发展到幻灯片,到展台,到电脑和投影,到现在ipad进课堂后,那从最初的文字与图片发展到视频,再发展到游戏也是必然的事了。
基于以上的认识,笔者萌发了开发教育类游戏的念头,第一个游戏是模仿品,主要是模仿当时最流行的手机游戏《愤怒的小鸟》而作。主要是从两方面来考虑,一方面是考虑到游戏的趣味性,因为这是当时最流行的游戏,趣味性就不言而喻了,这样就省去一部分的设计时间,而把时间主要集中在第二方面的设计,这就是游戏与课堂知识的集合。在原有游戏性的基础上修改出带有课堂知识的情节和场景,就是这个游戏的焦点。以下是游戏设计开发的主要过程:
2、游戏剧情
因为《愤怒的小鸟》这款游戏是利用小鸟作为炮弹去打击绿猪。由炮弹想到战争,由战争自然就想到中国近代史中的第一次主要战争——第一次鸦片战争。第一次鸦片战争以清政府的战败告终,对近代中国产生深远的影响,期间出现了大量的英雄人物,比例林则徐、关天培、葛云飞等,这些人物正好成为我们的游戏主角。游戏以虎门之战为背景,大量的英军带着降落伞从天而降(降落伞当时并没有用于战争,但是考虑到考试并不会把这个作为考点,为了游戏性,适当增加虚构的物体),左侧是我国的虎门炮台,右侧是大量的英军前赴后继冲向我炮台,英勇神武的林则徐站在炮台后面,镇定自若地指挥着炮台不断发出炮弹击退一波波英军的疯狂攻击,少量清兵偶尔出没,围剿漏网靠近炮台的英军。到底能不能在战争中扭转历史败局,就要看玩的人了。
3、游戏设计
游戏场景设定为虎门之战,所以虎门炮台是不可缺少的,虎门炮塔可以360度转体,根据英兵所在的高度和距离击落,为了增加难度,设定离炮台最远处的最右侧为射击触摸区,在该竖条触摸发射区内可以凭感觉上下选择瞄准。另外,还应该在右侧加上一条船来表明英军是从海上登录。
而在人物设计上,林则徐是一个身着清朝官服的官员,清兵手提大砍刀的是步兵,躲在最后面,偶尔放冷箭的是弓兵,英军兵种则比较单一,主要是伞兵变步兵。
在情节上,要加上炮弹数量限制,如果没有这个难度就少了很多游戏性,另外还要时不时提醒虎门告急,请求增兵,可以加上学生关于第一次鸦片战争的地点记忆。随着时间的推移和关卡的增加,英军数量会越来越多,此时可以通过杀死英军来收集超级炮弹,一旦超级炮弹技能解封,就可以全屏击杀所有英军,为清兵赢得休息机会。当然最后输赢的结果还要描述一下,如果赢了,就总结为虽然赢了局部战争,但无能的清政府选择投降,签订了《南京条约》、《望厦条约》、《黄浦条约》 等一系列的不平等条约。如果输了就因为闭关锁国,武器落后,最终签订不平等条约。
这样就在游戏设计中把“第一次鸦片战争”的部分重点内容嵌入到游戏设计中,让学生在娱乐的同时记住了所有知识点。甚至会勾起学生去自己找资料学习这段历史的兴趣(如果他想知道,真实的历史中,到底是输了还是赢了)。等学生不想玩这个游戏的时候,他已经记住了这些重要的知识点。
4、技术实现
4.1、常见游戏技术介绍
1、人工智能技术
说起人工智能,可能马上想到的是最直观的博弈游戏,如五子棋、围棋等。实际上,游戏中涉及到的人工智能,及需要人工智能提高的地方数不胜数。比如人物自动寻路的寻路算法、NPC行为的有限状态机。目前游戏的不少AI都是定性人工智能的行为,表现具有确定性和可预测性。虽然编程简单,只需编写大量明确行为代码即可,但这样会影响游戏的可玩性。这个子系统,是根据wiki对游戏引擎的定义添加的。也是笔者认为未来游戏引擎中比较重要的一块系统。
2、物理引擎
主要是模拟牛顿力学模型,即是计算在质量、速度、摩擦力、空气阻力等因素影响下的物理状态。直观点的理解,游戏中出现的碰撞、跳跃、飞行等,都需要依赖物理引擎。
游戏中比较常用的场景是碰撞检测(断两个或多个对象是否产生交集),比如子弹是否命中目标?赛车前端是否发生碰撞?这里也是游戏的一个安全风险点,即是穿透外挂。由于引擎接口是公开的,外挂很容易知道哪些接口负责处理碰撞,从而能快速定位到对应代码,然后修改碰撞检测逻辑实现无敌(无法攻击命中)、穿墙(能 穿透障碍物)等功能。
4.2、本游戏用到的主要游戏技术
4.2.1、碰撞检测
碰撞检测是指检测游戏里面任何两个物体时候有边缘重合的地方,一旦重合,应该如何处理。本游戏多次用到碰撞检测的游戏技术,例如炮弹与英军士兵的碰撞,碰撞之后会产生的效果就是英军掉落地狱(死掉了),而炮弹消失;清兵与英军碰撞则同归于尽;英军与清兵弓箭碰撞则英兵掉下地狱。如果英军攻过来,杀进清兵炮台,则每一次英军与炮台碰撞,炮台生命点都会减少1,直到炮台生命值为0,清军失败。
4.2.2、物理引擎
本次炮弹和英军两个角色均用到物理引擎中的重力牵引部分,炮弹从炮口射出,并非直线冲天飞过去,而是以抛物线的形式,呈倒U型线路移动,直到与英军碰撞或飞出界面。而英军则从顶上以一定的速度下落到地面,检测到英军与地面碰撞后停下了。
5、结语
《鸦片战争》已经开发出来好久,但是一直没有机会放出来,而且作为一个试验品,它主要是实现了对一个想法的验证,在设计和开发过程中,仍然有很多的漏洞和不足之处,这既有客观的部分,也有主观的部分。客观的原因在于技术的难度,和个人对知识的了解不够全面,如果能与历史老师一起做,一起讨论实现的过程,讨论如何在内容与技术之间取舍,应该会做得更好;而主观原因在于笔者认为用太多时间去实现一些细节的东西,去把方方面面做完美得不偿失,因为做游戏的最终目的还是为了学习知识点,而且每个游戏都有其寿命周期,只要达到了学习的目的即可,不必花太多精力去把每个细节做完美。