0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将经典射击游戏移植到芯科科技MG24 Matter开发板

Silicon Labs 来源:Silicon Labs 2025-11-30 10:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Silicon Labs(芯科科技)热衷于突破嵌入式系统的极限和创新。在先前成功将一款经典游戏-雷神之锤(Quake)移植到基于EFR32MG24无线SoC的Arduino Nano Matter开发板之后,我们迎来了新的挑战:将另一款经典第一人称射击游戏-毁灭公爵3D(Duke Nukem 3D)的完整体验带到我们的超低功耗平台MG24的开发板上,以实现包括游戏音乐、多人连线模式等完整的游戏玩法。

为什么选择毁灭公爵3D

毁灭公爵3D于1996年在Quake之前发布,是互动玩法的里程碑。虽然在图形上不如Quake先进,但它提供了:

可移动的墙壁和区域

与物体交互以及可破坏的环境

高级功能:镜子、安全摄像头、脚本控制和混响效果

这些特性使它成为一个完美的参考设计,用来展示嵌入式性能和游戏体验的完整性。

硬件限制与游戏特性

我们希望代码能运行在去年为Quake移植开发的同一款开源硬件上,也就是“The Gamepad”,它基于Arduino Nano Matter板,搭载基于芯科科技MG24 SoC的MGM240S无线模块。

939d3d84-cb68-11f0-8c8f-92fbcf53809c.png

The Gamepad硬件规格:

无外部RAM(仅使用MGM240S内部的25kB)

外部闪存用于数据存储(最高 64 MB)

320 × 240 像素RGB IPS LCD,带SD卡读卡器

立体声音效

模拟摇杆和16个按键

代码库

我们选择了Chocolate Duke Nukem 3D,它是Fabien Sanglard的xDuke移植版本的精简和注释版,并支持SDL。SDL支持让我们可以在Windows上开发和优化,然后再移植到真实硬件。

我们针对内存和速度进行了大量优化,以适应256 kB RAM的限制。

内存优化

原始毁灭公爵3D需要8 MB RAM,远超我们的硬件条件,因此必须进行深入优化。主要措施包括:

根据性能分析和代码检查,优化结构体字段大小

将关卡常量数据存储到闪存,减少RAM 占用

创建分配器,仅存储修改过的对象,未修改的对象直接从闪存读取

将部分静态全局数组移到栈上

重用大型全局缓冲区(例如在关卡加载时重用帧缓冲)

优化插值算法

游戏动画渲染时,从外部闪存分块复制到RAM,再进行渲染

脚本文件预编译并作为常量数组存储在代码中

摄像机精灵(显示安全摄像头画面)临时渲染到帧缓冲的状态栏区域,因此每次渲染后必须重新绘制状态栏

优化声音引擎,减少冗余RAM 使用

将xDuke 的高级混响效果替换为原版Duke Nukem 3D 的简单混响

速度优化

为了提升性能,我们采取了以下策略:

重写部分绘图例程。原始代码是高度优化的x86 汇编,后来在xDuke 中通过自动工具转换为C,导致代码难以理解且性能下降。

由于墙体和精灵是逐列绘制的,我们利用DMA在当前列绘制时从外部闪存加载下一列,实现加载与渲染并行,减少等待时间。

基于802.15.4无线连接的多人模式

我们采用芯科科技的RAIL库构建了一个轻量级协议:

异步节点发现:在初始阶段,所有节点选择一个随机地址,并通过“问候”数据包进行广播。一旦其他节点接收到这些数据包,网络就形成了。

同步的类令牌环通信:当所有玩家都确认准备好比赛后,协议切换到同步模式。在此模式下,地址最小的节点被选为主节点。主节点每隔25毫秒启动通信,第二个节点(地址次小)广播其数据,然后第三个节点发送,最后第四个节点广播自己的数据。协议支持自动重发丢失的数据包,以确保可靠性。

93fec75c-cb68-11f0-8c8f-92fbcf53809c.png

工具与脚本

我们使用了一个Python脚本来转换GRP文件,使其满足以下要求:

所有MIDI文件转换为Type 0格式

VOC文件转换为更易处理的 WAV 格式

GRP文件必须存储在SD卡中。通过在开机时按下特定按键组合,文件会被复制到外部闪存。Atomic Edition需要2×32MB闪存芯片,而原始版本只需2×16MB芯片。

性能亮点

超频情况下:30–50 fps

未超频情况下:18–30 fps

由于引擎更简单,DN3D 比Quake更快

结论

此移植展示了芯科科技MG24无线SoC的强大性能与灵活性:

在受限硬件上运行完整功能的经典复古第一人称射击游戏

支持多人模式、音乐、存档/读取以及控制台功能

高效的内存管理与性能调优

我们希望这能激发开发者探索嵌入式平台的更多可能性——无论是游戏、可穿戴设备,还是下一代物联网

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    6118

    浏览量

    113130
  • 芯科科技
    +关注

    关注

    1

    文章

    469

    浏览量

    17097
  • Matter
    +关注

    关注

    1

    文章

    321

    浏览量

    7030

原文标题:上手开发-将经典射击游戏移植到MG24 Matter开发板

文章出处:【微信号:SiliconLabs,微信公众号:Silicon Labs】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于科技信道探测开发板的PC桌面锁定示例

    本文的实际应用示例说明如何运用Silicon Labs(科技)EFR32xG24 SoC的信道探测(Channel Sounding)开发板
    的头像 发表于 10-30 16:07 283次阅读
    基于<b class='flag-5'>芯</b><b class='flag-5'>科</b>科技信道探测<b class='flag-5'>开发板</b>的PC桌面锁定示例

    科技2025年Works With开发者大会深圳站Matter技术专场前瞻

    设置Matter技术专题培训!来自科技的技术专家介绍Matter协议最新进展、关键特性、Matte
    的头像 发表于 09-30 09:38 595次阅读

    如何移植EtherCAT Igh--基于米尔RK3576开发板

    本文介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞微RK3576开发板)的移植E
    的头像 发表于 09-26 08:04 9427次阅读
    如何<b class='flag-5'>移植</b>EtherCAT Igh--基于米尔RK3576<b class='flag-5'>开发板</b>

    基于DE1-SOC开发板的太空射击游戏

    今天继续常春藤名校之一——康奈尔大学的FPGA课程ECE 5760典型案例分享:基于DE1-SOC开发板的太空射击游戏
    的头像 发表于 08-04 10:47 3451次阅读
    基于DE1-SOC<b class='flag-5'>开发板</b>的太空<b class='flag-5'>射击</b><b class='flag-5'>游戏</b>

    如何选择合适的科技Wi-Fi开发板

    您正在寻找适用于超低功耗物联网应用项目的Wi-Fi 开发板吗?本文介绍Silicon Labs(科技)推出的所有SiWx917 Wi-Fi 6和低功耗蓝牙5.4解决方案的Wi-F
    的头像 发表于 07-09 09:15 2258次阅读

    使用MG24开发板测试天线分集

    Silicon Labs(科技)的EFR32MG24MG24)多协议SoC支持IEEE 802.15.4协议下的天线分集功能,这是一种通过使用两根天线来克服家庭环境中潜在射频问题
    的头像 发表于 07-04 16:47 1387次阅读
    使用<b class='flag-5'>MG24</b><b class='flag-5'>开发板</b>测试天线分集

    科技亮相2025 Matter开放日和开发者大会

    2025年Matter开放日(MOD)和开发者大会(MDC)在上周6月12-13日圆满成功举办,Silicon Labs(科技)延续一直以来倾力支持
    的头像 发表于 06-18 14:22 980次阅读

    下一代物联网:科技和Arduino借助边缘AI和ML简化Matter设计和应用

    Silicon Labs(科技)和Arduino宣布建立合作伙伴关系,旨在通过Arduino Nano Matter开发板(基于
    的头像 发表于 05-19 11:15 549次阅读
    下一代物联网:<b class='flag-5'>芯</b><b class='flag-5'>科</b>科技和Arduino借助边缘AI和ML简化<b class='flag-5'>Matter</b>设计和应用

    科技MG26 SoC支持先进的物联网应用和Matter

    Silicon Labs(科技)宣布其MG26系列无线片上系统(SoC)现已通过科技及其分销合作伙伴全面供货。作为业界迄今为止最先进
    的头像 发表于 03-06 14:53 1323次阅读

    倒计时8天! 免费开发板申领即将截止|2025 Matter 应用开发比赛

     倒计时8天! 2025 Matter应用开发比赛 免费开发板申领即将截止   “让你的智能设备能无缝接入苹果、谷歌、亚马逊的生态系统,而这一切只需一个协议——这就是Matter的力量
    发表于 02-21 14:56 366次阅读
    倒计时8天! 免费<b class='flag-5'>开发板</b>申领即将截止|2025 <b class='flag-5'>Matter</b> 应用<b class='flag-5'>开发</b>比赛

    科技Web-BasedFlash工具助力优化Matter开发流程

    Silicon Labs(科技)独家提供Matter开发流程(Matter Developer Journey)设计资源,以作为其不断努
    的头像 发表于 02-20 09:52 904次阅读

    如何安装模拟器玩nes小游戏-基于米尔瑞微RK3576开发板

    本篇源自:优秀创作者 小手凉凉本文介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞微 RK3576开发板)的安装模拟器玩nes小游戏
    发表于 02-08 12:10

    成功案例分享 — 科技助力涂鸦智能打造Matter over Thread模块,简化Matter设备开发

    涂鸦智能使用科技的MG24 SoC打造Matter over Thread模块
    的头像 发表于 01-09 16:39 887次阅读

    Matter占用传感器强化智能家居自动化

    的Arduino Nano开发板构建的,这大大简化了开发和集成过程。项目核心是强大的 Silicon Labs(科技)MG24 SoC及
    的头像 发表于 12-24 09:50 1088次阅读

    Arduino Nano Matter开发板正式上市

    Silicon Labs(科技)和Arduino在近日共同宣布Arduino Nano Matter开发板现已正式上市。这是延续今年3 月
    的头像 发表于 12-10 13:50 1418次阅读