易于编程的复古游戏机是向任何人(尤其是孩子)介绍视频游戏开发的绝佳方式。其中之一是 Gamebuino,一款预组装的手持复古游戏机。它有点像打了鸡血的 Arduino,配有诺基亚 5110 手机显示屏(84x48 像素)、LiPo 充电器和 LiPo 电池、SD 卡读卡器以及装有大量游戏的 SD 卡。 MAKERbuino,基本上是一个 Gamebuino 套件,你需要组装和焊接在一起,这对我来说似乎更有趣。

opensource.com
MAKERbuino 的创建者 Albert Gajsak 与 Gamebuino 的创建者 Aurélien Rodot 合作,以确保设备兼容,并且 MAKERbuino 可以运行 Gamebuino 的游戏。MAKERbuino 甚至使用了 Gamebuino 的引导加载程序,该程序可在 GitHub 上获取。
Albert 还公开了原理图,并且PCB 设计也已公开。有了这些资源,理论上,你甚至可以提前一步,创建自己的印刷电路板 (PCB),或者甚至创建具有不同物理布局的设备。
组装 MAKERbuino
我 10 岁的女儿喜欢编程和游戏,并且已经有一些焊接经验,所以我给她买了一个 MAKERbuino 套件让她组装。MAKERbuino 的网站上有非常详尽的在线组装手册,并且包含所有零件,所以她只花了四个小时就完全组装好并使其进入工作状态。

opensource.com
在享受了构建设备和玩内置游戏的乐趣之后,我们想编写自己的游戏。由于 MAKERbuino 与 Gamebuino 兼容,我们能够使用它的游戏库来创建我们自己的游戏。
编程 *buino
MAKERbuino 的编程方式与 Gamebuino(以及其他所有 Arduino)相同,都是使用 Arduino IDE 和 C++。首先,将游戏库安装到 Arduino IDE 中,然后你就可以开始编程了。
Arduino IDE 和库对于非英语母语者来说是一个巨大的障碍,比如我的女儿,她说德语(并且在学校学习法语)。虽然 IDE 本身已本地化,但所有的语言结构、库和文档都是英文的。这个障碍很快就阻止了她对该项目的热情。
有一个类似 Scratch 的环境可以使用 Ardublocks 编程 Arduino,但它尚不支持 Gamebuino 库。(此外,这个项目看起来已经被放弃了。)我一直在研究将 Gamebuino 库添加到 Ardublocks 中,但这并非周末可以完成的事情。
尽管如此,如果你了解 Arduino 编程(和英语),那么编程 MAKERbuino 相对简单。
例如,这是一段发射激光并检查是否击中外星飞船的代码。
#include <Gamebuino.h>
Gamebuino gb;
[..]
void setup() {
gb.begin(); // Initialize the *buino
gb.titleScreen();
}
void loop() {
if (gb.update()) { // update screen etc
[...]
gb.display.setColor(GRAY);
if (gb.buttons.pressed(BTN_UP)) {
gb.display.drawLine(x+4,y-1,x+4,0);
// check if the laser hit the alien ship
hit = gb.collideRectRect(x+4,0,1,y-1, alienX,alienY,8,8);
}
if (hit) {
gb.sound.playNote(40, 20, 0);
gb.sound.playNote(10, 20, 0);
gb.sound.playNote(30, 20, 0);
}
}
}
代码在 Arduino IDE 中编译,就像任何其他 Arduino 程序一样。
要测试代码,你可以使用允许大量交互的模拟器。我一直在使用 Simbuino4Web 上的那个。它工作得很好,但有时在上传后卡住时需要完全刷新页面。

opensource.com
要在真实设备上测试你的代码,你可以将串行转 USB 适配器连接到 MAKERbuino 并通过 USB 上传,或者你可以创建一个二进制 HEX 文件并将其放在 SD 卡上。要在 SD 卡上创建 HEX 文件,请在 Arduino-IDE 中使用 Sketch->Export compiled binary
(而不是 upload
)。
一次很棒的 DIY 体验
MAKERbuino 和 Gamebuino 都是很棒的复古游戏机,但组装和自行焊接的过程使 MAKERbuino 更像是“你自己的设备”。而且,正如我们的经验表明,即使在 4K 电视上 70 fps 游戏的时代,复古掌上游戏的体验仍然很棒。
2 条评论