17| 9
|
[项目] 【花雕动手做】Scratch 创客版 ESP32S3 可编程游戏机开发板 |
开发故事 本人(空想君)从小就热爱玩游戏,并从事游戏开发工作十多年,自2018年开始接触到Scratch少儿编程,一开始只是完成由游戏开发者到少儿编程教育工作者转型。由于工作关系接触到了开源硬件micro:bit, 偶然发现micro:bit V2加上LCD屏幕可以使用MakeCode Arcade图形化工具来开发游戏。任何人真的可以通过图形化的工具给自己制作开发游戏还可以下载到游戏机里面去玩。接触这个软件后对我一个传统游戏开发者来说是非常震惊的,于是立马淘宝上买了一个回来玩,玩了一阵子后,职业的原因让我发现了一些用户体验问题,MakeCode Arcade编程所有的游戏场景,背景,元素全部在一个主程序里面,并且控制器都要依赖游戏机本身的硬件,这样导致游戏程序的编写难度偏大。别说是小朋友和新手用户,就算是我这个游戏开发多年的人来说都感觉有点绕,MakeCode Arcade还是有一种程序员在做游戏开发的影子在里面。相比而言Scratch游戏编程就显得简单很多,常用图标,声音元素可以直接使用自带的或者电脑上传,不需要全部靠编程去实现。不同角色可以独立模块化编程,无论是编程框架还是编程思想,用户都能很容易理解。我在实际教学应用中也验证了这点,教学难度Scratch远低于MakeCode Arcade。 随着工作的深入了解,发现国内大部分少儿编程机构使用的教学软件和大家熟知的编程平台比如mind+,openblock,mblock……大都是基于原生Scratch做的二次开发。早期用户也几乎都是通过Scratch开展少儿编程教学发展起来的,还有国内Scratch普及程度非常高。MakeCode Arcade在国内用户就显得少了。于是我就萌生了一个想法,是否可以开发一款可以运行Scratch游戏的编程游戏机呢? 带着这个想法我开始做了如下尝试: 首先我想到的第一个方案是找直接运行Scratch原生格式的硬件,但是很快发现一个问题,其实原生Scratch是非常吃硬件CPU和内存的,即便是在树莓派上这样配置的设备上去运行原生Scratch也不是非常流程,那么选择能运行Linux带UI系统的硬件(比如全志/RK方案),但是最低成本也到了200RMB。显然这个方案就像把scratch放到了移动端来运行一样,虽然可行,但是硬件成本过高,但是做出来无论是价格上还是优势并不明显,还不如做手机APP来得简单。 很快我又构思了第二个方案,就是设备上不需要去执行原生Scratch应用软件,参考Scratch源码写一个类似可以解析运行sb3格式的程序。但是这里又有问题,原生Scratch除了执行程序外还有很多元素,图标等资源文件,这些资源文件大概有几十兆得先内置到硬件里面,如果上位机增加修改了资源文件,那么下位机就必须升级固件才能同步。并且同样对硬件内存依然也还要求比较高,且编写这个软件难度真不小。 通过前面两次思考论证,我重新总结需求,做了一些调整,把核心需求列出来: 硬件最好是现在主流开源硬件,硬件BOM成本控制在100内,方便制作和复刻,兼容性要强,方便开发固件,扩展功能等。 其实大家喜欢是Scratch编程方式,比如mblock,mind+,编程猫……这些类似Scratch方式大家都能很快适应。那么我们只需要尽可能地保持Scratch编程方式,不必执念一定要去运行原生Scratch格式。 有了前面得总结,很快我在MakeCode软件里面micro:bit主板模拟器里找到了灵感,Scratch舞台本质上也是一个模拟器,想通这一点,我的硬件运行的游戏就不需要是原生Scratch的sb3文件,我可以自己定义游戏运行方式,再在Scratch软件重写一个对应我硬件的模拟器替代原本的Scratch舞台。这样Scratch软件只有舞台相对于原生的有些变化之外,其他几乎一摸一样。 为了实现这些想法,我重新创建了一个新的Scratch框架(原生的Scratch框架不在适合做扩展,所以我从头搭建了一个新的框架)——我称之为BlockCode框架。当时手里有一块Pico:ed(基于RP2040主控)主板硬件,于是我在BlockCode框架里面做了可以模拟Pico:ed按键和显示功能: ![]() |
历时半年基本实现了基本功能,但是还是觉得这个不像游戏机,于是加大了LCD屏幕,改成了游戏机模样,最后就是大家见到的开源的样子。好了其实在整个开发验证过程中花费时间一年半,有非常多的技术细节,也遇到了非常多的技术挑战点,大致有如下: 编程方式要原封不动兼容原生Scratch然后用模拟器替代舞台 游戏运行流程程度,在单片机的主控上LCD屏幕刷新速率 联网功能,录音功能,播放声音功能也要在游戏机上实现 目标要能打开sb3游戏格式 为了致敬MakeCode Arcade和Scratch这两个经典且强大的平台,于是本游戏机叫做—— Scratch Arcade 上一代开源版 项目连接 立创开源硬件平台: https://oshwhub.com/blockcodelab/arcade_lite GitHub: https://github.com/BlockCodeLab/arcade-lite Gitee: https://gitee.com/blockcodelab/arcade-lite ![]() ![]() |
本帖最后由 驴友花雕 于 2025-8-17 17:29 编辑 Scratch Arcade 创客版 ESP32S3 可编程游戏机开发板的核心优势: 1、强大主控:ESP32-S3 支持 AI 加速、Wi-Fi 和蓝牙双模通信,适合边缘计算与联网应用。 2、图形化编程:支持 Scratch Arcade、Blockly 等图形化编程环境,降低编程门槛。 3、游戏交互设计:内置方向键与功能键,支持自制街机风格游戏或交互式动画。 4、物联网扩展性:可连接传感器、LED、蜂鸣器等模块,轻松构建智能硬件项目。 5、教学友好:适配课堂教学,支持项目式学习与创客课程,激发学生创造力。 ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed