tougao1@chinaitedu.cn
生活·技术·探索
设计一个多人互动游戏
“赛龙舟”为例——以
利用编程软件和开源硬件制作的人机互动游戏案例已经越来越多,但是多人互动的游戏却很少见,因为这需要网络的支持。掌控板是一款使用物联网芯片开发的开源硬件,具备了连接网络的功能,如何运用类似掌控板之类能够联网的开源硬件,设计可以多人互动的游戏,成为我们研究的新方向。
赛龙舟是我国的一个重要习俗,是一项典型的集体竞赛活动。将这项活动搬入室内,甚至是搬入课堂,以一种全新的形式呈现出来,肯定挺好玩。掌控板自带了加速度传感器,可以感知“划桨”的动作,再结合物联网技术,将大家的动作统一呈现在一个屏幕上,为“赛龙舟”的游戏设计提供了技术上的保障。
● 多人互动游戏的技术分析物联网(Internet of Things,简称IoT)是借助互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通
74
中国信息技术教育
谢作如 浙江省温州中学陆雅楠 上海师范大学
的网络。MQTT是常见的物联网通系统运行流程如图2所示。
信协议,采用主题(TopicID)来实时● 开发工具准备发送和接收(订阅)消息,使用起来1.Mind+
非常简单(如图1)。
Mind+是开源硬件企业掌控板支持MQTT协议。本DFRobot推出的IDE工具。其支持游戏案例为人手一块掌控板,设置两种编程模式,一是实时交互模掌控板连接Wi-Fi,然后利用掌控式,二是离线下载模式。实时交互板的加速度传感器感知晃动幅度,模式类似普通的Scratch程序,离即划桨的动作,接着上传到MQTT线下载模式则是指给Arduino、服务器。Mind+软件也连接MQTT掌控板写程序。Mind+可以直接
服务器,订阅物联网信息,再用不同的龙舟角色呈现不同掌控板的前进速度,就完成了这一互动游戏。
图1
图2
涉及学科:艺术、数学、信息技术
访问MQTT服务器,和其他接入试如图3所示。
MQTT服务器的智能硬件进行交2.掌控板
互。基于Mind+的MQTT简单调
一个游戏用户需要一块掌控
板。根据赛龙舟的活动特点,制作一个船桨,将掌控板安装到船桨上采集真实的“划桨”数据。注意,掌控板要加电源。图4中的掌控板加了带电源的扩展板。
图3
3.SIoT服务器SIoT是一个跨平台的标准MQTT服务器,不需要经过复杂的配
图4
置,一键启动即可使用。SIoT也是一款开源软件,是“虚谷物联”项目的核心软件,根据操作系统下载相应的版本即可。
● 代码编写1.物联网环境准备
图5
双击运行与系统匹配的SIoT运行文件,屏幕会弹出一个黑色的CMD窗口(如图5),确保在配置中此窗口不关闭。
图6
运行Mind+
tougao1@chinaitedu.cn
技术与应用
软件,并在拓展中选择“网络服务”并添加“MQTT”,如图6所示。
2.掌控板代码
掌控板的代码使用Mind+的“下载模式”编写,参考代码如下页图7所示。首先,掌控板设备与服务器建立连接,在服务器上能够实时反馈数据。其次,设置变量g1与g2,分别代表玩家一次划桨的前后加速度(可通过读取一次划桨前后桨上掌控板不同位置的加速度获取),从而计算桨的晃动幅度,然后上传到MQTT服务器。
“MQTT初始化参数”设置:服务器地址设置为SIoT服务器的IP地址,TopicID(主题)设置为“项目ID/名称”(如下页图8)。不同的掌控板设置不同的TopicID,如“longzhou/0”“longzhou/1”“longzhou/2”分别代表三块掌控板。
3.Mind+代码
Mind+的代码在“实时模式”下编写,需要设置一个河水的背景,然后添加龙舟角色,根据掌控板的数量添加多个角色,龙舟角色的参考代码如下页图9所示。同样在“MQTT初始化参数”中设置
“longzhou/0”“longzhou/1”“longzhou/2”这三个TopicID。
通过不同玩家控制的掌控板传来的顺序,一一对应到各自的角色(龙舟)上,不同晃动幅度龙舟的前进速度不同。
● 游戏测试
每名玩家手持装有掌控板的
SEP 2019 NO.17
75
技术与应用
tougao1@chinaitedu.cn
船桨一柄,每名玩家代表一条龙舟。当掌控板出现数值就表示连接MQTT服务器成功,就可以开始游戏了。Mind+软件会准确计算出每名玩家的划桨幅度并将其呈现在龙舟的前进速度中,最终玩家们根
图8
据龙舟触边先后决出胜负。其测试效果如图10、图11所示。
● 结语和展望
通过实践,笔者认为这款游戏还可以继续改进,如:①可以通过添加音效使得游戏更加真实,玩家体验感更好;②在背景画面上可以添加动图效果,制作出龙舟比赛时水流的特效;③可以思考设计团队模式游戏,三人一组划一条龙舟进行竞赛。
结合SIoT和掌控板,可以设计
图7
更多有意思的多人互动游戏,也可以设计一些真实的应用,如网络投票。在一些集体活动中玩这样的互动游戏,不仅有趣,还能够培养学生的集体意识。希望本案例能抛砖引玉,有更多的教师带领学生做类似的研究。
图9
图10图11
基金项目:本文为2018年度温州市中小学校科技创新项目《〈物联网与科学探究创意实验〉课程的开发》的阶段性成果,项目编号:2018ZXX01。
76
中国信息技术教育
因篇幅问题不能全部显示,请点此查看更多更全内容