xiand.ai
科技

开发者自制任天堂DS 3D游戏引擎 触屏编写代码实时运行

独立开发者Carl Enlund基于C语言和libnds库,为任天堂DS掌机构建了一款可脚本化的3D游戏引擎,允许用户直接在掌机上编写并运行游戏。该引擎编译后的.nds ROM文件仅约100KB,能以60 FPS的速度运行,并在下屏提供触控代码编辑器,上屏实时渲染3D场景。

La Era

Developer Creates Scriptable 3D Game Engine for Nintendo DS
Developer Creates Scriptable 3D Game Engine for Nintendo DS
Publicidad
Publicidad

独立开发者Carl Enlund近日发布了一款名为DS Game Engine的自制软件,该软件允许用户直接在任天堂DS掌机上,通过触屏界面编写C语言风格的脚本代码,并实时在硬件上执行3D渲染。此举旨在重现早年使用TI-82计算器进行编程的体验,为掌机带来一个完整的便携式编程环境。

该引擎的核心在于其脚本解释器与硬件加速的结合,它利用DS的3D硬件能力实现流畅的图形处理,并以大约每秒60帧的速度渲染彩色立方体模型。开发者通过下屏的定制UI输入代码,点击“播放”后,引擎会逐行解释脚本,实现对模型位置、相机角度等参数的实时修改。

根据crl.io的介绍,该引擎分为三个主要部分:上屏负责利用libnds库和硬件加速进行3D渲染,支持可控的相机视角和模型变换;下屏则是一个软件渲染的触控代码编辑器,提供命令(如SET, ADD, LOOP)的Token选择器和参数输入功能。

脚本语言设计简洁高效,包含变量(A-Z)、控制流(LOOP/IFGT)和3D对象操作命令,如POSITION和CAMPOS。引擎内置了26个用户可写变量和9个只读寄存器,后者用于读取D-Pad输入和系统状态,例如自脚本启动以来的时间。

默认情况下,该引擎加载了一个功能完备的3D Pong游戏作为示例脚本,该脚本通过简单的寄存器数学运算和条件判断实现了球体运动、墙壁碰撞检测以及玩家操作控制。这展示了在资源极其有限的平台上,通过精心设计的解释器也能实现复杂的交互逻辑。

技术细节方面,整个引擎使用C语言编写,编译工具链依赖devkitPro的devkitARM交叉编译器,最终输出的ROM文件体积控制在约100KB,这对于2006年发布的硬件而言是极具效率的体现。该项目支持多达128行脚本和16个3D模型。

目前,用户可以通过编译源代码或直接下载编译好的.nds ROM文件进行测试,后者不仅可以在R4等闪存卡上运行于真实DS硬件,也可以通过浏览器中的DS模拟器进行初步体验。Enlund在Reddit上公开了讨论渠道,鼓励社区反馈和探索。

DS Game Engine的出现,是对复古硬件潜能的深度挖掘和创意应用,它证明了即使在计算能力受限的设备上,通过创新的软件架构设计,依然可以构建出具有教育和娱乐价值的完整开发工具链。

Publicidad
Publicidad

评论

评论存储在您的浏览器本地。

Publicidad
Publicidad