AzizBgBoss/TerrariaDS

GitHub: AzizBgBoss/TerrariaDS

由个人开发者 AzizBgBoss 发起的粉丝自制项目,旨在 Nintendo DS 掌机上重现《泰拉瑞亚》的核心沙盒生存玩法,并非官方移植。

Stars: 47 | Forks: 1

![TerrariaDS Logo](https://static.pigsec.cn/wp-content/uploads/repos/cas/86/866bb30fb201f473e1c554706e6a62a63ebb19ea7cf418b3cbb157d74f372a35.png)
[![下载量](https://img.shields.io/github/downloads/AzizBgBoss/TerrariaDS/total.svg?label=Download)](https://github.com/AzizBgBoss/TerrariaDS/releases) ***(这是所有版本的总下载量,这并不是统计下载量的准确方法,但它是衡量游戏受欢迎程度的一个很好的指标。具体每个版本的下载量请查看下方)*** # TerrariaDS 这是一款由 AzizBgBoss 制作(非移植)的、面向 Nintendo DS 的《泰拉瑞亚》重制版,于 2025 年 7 月 26 日开始开发。
我是一个沉迷于编程的 17 岁少年,我也非常喜欢《泰拉瑞亚》!我爱这款游戏给予的自由以及它所提供的无限可能。我热爱的另一件事是 Nintendo DS,这是一台很棒的游戏机,我想知道能不能把我热爱的这三样东西结合起来,所以我将 Terraria 编程移植到了 DS 上!这就是 TerrariaDS!***(更新:我现在 18 岁了哈哈)***

本项目仍在开发中,且与原版 Terraria 游戏没有任何官方隶属关系。它旨在 Nintendo DS 上重现 Terraria 的核心机制和玩法。 它的目标至少是在某种程度上复刻 3DS 版本的 Terraria,但会加入一些 PC 版本的特性,并为了适应 DS 的硬件限制而做出一些牺牲。

我正在尽最大努力忠实于原版游戏设计,但由于 DS 硬件的限制,以及这是一次重制而非直接移植,因此存在一些局限性。
另请注意:***目前***,我将功能优先于内容。我正在尝试在添加 Terraria 的内容(物品、方块、结构……)之前完善游戏的核心机制,因为没有完善的功能,你无法真正享受这些内容。

我非常乐意接受贡献和建议,所以如果你想提供帮助,请随时提交 pull request 或 issue。

如果你想尝试最新的更改,你可以自己编译项目,或者等待新版本发布。

你可以加入我的 [Discord 服务器](https://discord.gg/zfMwPhvDc4) 以获取更多更新和讨论。
### 免责声明 本项目与 Re-Logic 或 Terraria 没有任何隶属关系。这是一个粉丝自制的项目,不用于商业用途。本项目中使用的所有资产仅用于教育和娱乐目的。如果你是 Re-Logic 的一员,并且是本项目中使用的任何资产的所有者,并希望将其移除,请联系我。 ### 注意事项: - v0.2 现已发布!尽情享受吧! - 我使用 Terraria Wiki 作为游戏的参考,如果你发现任何错误,请告诉我。 - 如果你喜欢这款自制游戏,可以考虑给本仓库点个 star 或 [捐赠](https://github.com/AzizBgBoss/TerrariaDS#donate),这能表达你的赞赏和支持,对我来说也是极大的动力 :) ## 安装: 你可以自己编译游戏(用于获取每日构建版本),或者在 Releases 页面查看稳定版本。开始前请查看已测试设备部分。 ### 已测试设备: | 系统 | 功能 | 缺点 | 备注 | |----------------------------------|---------------------------|-----------------------|-------------------------------------------------------------------------------------------------------------| | Nintendo DSi (XL) (TM++) | 优秀 | 无 | 确保将启动器设置为默认 | | Nintendo 3DS (New) (XL) (TM++) | 优秀 | 无 | 只要你使用 TW++ 应该就能正常运行,因为在这个模式下它基本上就变成了一台 DSi。而且你也可以直接玩 3DS 版的 Terraria 哈哈。| | 烧录卡 (DS/DS Lite/DSi) | 尚未测试 | 尚未测试 | 你可能需要根据你的烧录卡类型(例如 R4)使用相应的 DLDI 补丁来修补 .nds rom | | NO$GBA (Windows 模拟器) | 中等 | 无法保存 + 音效卡顿 | 该模拟器不支持 DLDI。 | | desMuMe (Windows 模拟器) | 无法运行 | 游戏根本无法启动 | | | melonDS (Windows 模拟器) | 无法运行 | 无 nitroFS | 该模拟器*支持* DLDI,但在这款游戏上不起作用,也许他们会在未来的更新中修复它。但由于某些原因,NitroFS 无法在 melonDS 上运行。 | | melonDS (特殊分支) | 优秀 | 无 | 这是原版 melonDS 的一个分支,添加了对 NitroFS 和 FAT 的支持。你可以在[这里](https://github.com/AzizBgBoss/TerrariaDS/raw/refs/heads/main/extras/melonDS.exe)找到它。我是从 DS(i) Mode Customization! Discord 服务器里找到的。别担心,它应该不包含任何恶意软件。不过一旦我找到原始链接,我也会把它放在这里。 | *更多平台即将进行测试。* ## 下载最新版本(可使用 DSi Downloader 扫描的二维码) ![QR](https://raw.githubusercontent.com/AzizBgBoss/TerrariaDS/main/media/frame.png) ## 游戏玩法: - A:跳跃 - 左/右:移动 - 上/下:放大/缩小 - X/Y:切换物品 - R:打开物品栏 - Start:暂停菜单 - A+B+Y+X:调试菜单(如果你卡关了,可以使用这个来作弊,代价是你的角色名会被加上“the cheater”(别担心,它会保留你旧角色的副本)) - 点击/长按方块:与方块互动/破坏方块(当然需要使用合适的物品) - 点击敌人以对其造成伤害 ## 更新日志和功能 先别抱太大希望,但随着时间的推移,我相信这款游戏会感觉更像 Terraria。 ### 版本 0.0alpha ([![下载](https://img.shields.io/github/downloads/AzizBgBoss/TerrariaDS/0.0alpha/total.svg?label=Download)](https://github.com/AzizBgBoss/TerrariaDS/releases/tag/0.0alpha)): 包含基本项目结构的初始提交。 - 基本的方块渲染和滚动。 ***(完成)*** - 用于世界交互和物品栏交互的触摸输入处理。 ***(完成)*** - 地图生成(地形、洞穴、树木和蘑菇)。 ***(完成)*** - 地图保存和加载功能。 ***(完成。目前你可以使用 START 保存,使用 SELECT 加载)*** - 相机缩放。 ***(完成)*** - 基础制作系统。 ***(完成)*** - 添加音乐。 ***(完成)*** ### 版本 0.1 ([![下载](https://img.shields.io/github/downloads/AzizBgBoss/TerrariaDS/0.1/total.svg?label=Download)](https://github.com/AzizBgBoss/TerrariaDS/releases/tag/0.1)): - 能够保存/加载不同的地图。 ***(完成:目前你只能看到 10 个地图)*** - 添加特殊方块(需要交互且不是 1:1 的方块,比如门、工作台、宝箱……) ***(目前完成:门)*** - 添加生命值。 ***(完成)*** - 添加菜单。 ***(目前完成:暂停菜单,调试菜单(它们看起来不是最好的,但目前能派上用场))*** - 将实体(NPC、敌人等)添加到游戏世界中。 ***(目前完成:绿色史莱姆)*** - 为其他实体(比如臭臭的绿色史莱姆)添加攻击和伤害机制。 ***(目前完成:玩家可以用武器直接触碰实体来造成伤害)*** - 添加矿石。 ***(目前完成:铜、锡)*** - 修复了一些屏幕抖动问题。 ***(完成:你不应该在每一帧的循环中读取 nitro 文件,这会导致滚动更改错过 VBlank)*** - 修复了精灵图与世界坐标偏移的问题。 ***(是啊,我甚至不知道我是怎么弄出一套勉强能用的乱摊子的,现在我自己都搞不懂了,如果你能的话请帮帮我)*** - 添加简单的昼夜循环(只需变暗背景并在夜间开始生成敌人)。 ***(完成)*** - 添加音效。 ***(完成)*** ### 版本 0.2 ([![下载](https://img.shields.io/github/downloads/AzizBgBoss/TerrariaDS/0.2/total.svg?label=Download)](https://github.com/AzizBgBoss/TerrariaDS/releases/tag/0.2)): - 添加更多音乐和开场动画。 ***(完成:我没有添加太多开场,因为我绝不会再迁移到 NitroFS 了啊啊啊)*** - 添加删除世界和角色的功能。 ***(完成)*** - 添加橡子以在需要时保持世界的可持续性。 ***(~~完成~~ 多亏了 Discord 上的 Zenic 告诉我我忘了实现树掉落橡子,你仍然可以从调试菜单中获取橡子(用另一个角色把它们放在你的世界里,因为它会被命名为“the cheater”))*** - 添加挥舞动画。 ***(完成)*** - 添加不同风格的角色。 ***(完成)*** - 将生命值显示为心形。 ***(完成)*** - 添加生命水晶。 ***(完成)*** - 添加粒子效果。 ***(完成)*** - 添加更多音效。 ***(完成:我其实没加多少)*** - ~~修复 2 倍缩放时靠近世界边缘的触摸偏移问题。~~ ***(做不到:我也不知道为什么,可能与 bgSetCenter 有关,如果你靠近边缘,只需保持 1 倍缩放即可)*** - 添加宝箱。 ***(完成:目前限制为 32 个宝箱)*** - 添加更多工具。 ***(完成:铁和金的镐、斧、锤和长剑,还有一把木锤哈哈)*** - 实现动态合成配方(基于附近的工作台)。 ***(完成)*** - 添加制作站点。 ***(目前完成:工作台、熔炉、铁砧)*** - 很可能会将所有方块处理数据转换为 struct(甚至是特殊方块)。 ***(完成:这是个好消息,现在我可以使用相同的函数轻松添加各种特殊方块了)*** - 添加更多合成配方。 ***(完成:现在实现了分页)*** - 添加更多生物群落。 ***(完成:沙漠、雪地)*** - 实现基于生物群落和层级的实体生成 ***(完成:这有点复杂,但现在实体会根据时间、生物群落和层级(地表/地下)生成了)*** - 更好、更高效的世界生成。 ***(完成:现在快了一点)*** - 添加货币。 ***(完成)*** - 添加 X 轴速度 ***(完成:这允许实现击退并修复了一些碰撞 bug)*** - 可能会多加一点实体。 ***(目前完成:眼球、史莱姆、兔子、僵尸)*** - 整理我杂乱的代码并将其拆分为多个文件,这不会改变任何东西,但会让添加功能变得更容易。 ***(完成)*** - 支持高度更高的地图(目前限制为 64,这意味着分块应该在 X 轴和 Y 轴上同时进行)。 ***(完成,世界有 4 种尺寸,并与 v0.1 地图向后兼容)*** - 将所有资产移回 ROM,因为一年前我那个愚蠢的脑子以为把所有东西移到 NitroFS 可以释放 RAM,但它本来就是 `const` 的,所以没必要…… ***(完成:现在甚至比以前更整洁了)*** - 修复放大/缩小时精灵图不对齐的问题 ***(完成:是的,我仍然不明白为什么会发生这种情况,如果你能的话请帮帮我。但我只是加了更多的数学运算来抵消偏移)*** ## 未来的计划功能: - 我正在*考虑*编写一个脚本来从 wiki 抓取所有的方块/实体数据,但这有点复杂。 - 使用更多的指针来编写更简洁的代码。 - 添加更改按键映射的功能(因为许多 DS(包括我的)由于多年来灰尘积累在肩键下方,导致肩键失灵)。 - 添加猩红/腐化之地。 - 添加改进的照明。 - 多人游戏支持(根据我的经验,这绝对会是一场噩梦)。 - 可更改的风格颜色。 - 添加法力和魔法物品。 - 添加 Boss。 - 为 DS 版本提供独特的内容,让它稍微脱颖而出。 - 为 DSi 提供额外的内容和功能。 - 也许会迁移到 BlocksDS 以获得更好的性能和更多功能(我认为这应该没那么难)。 再次强调,我非常乐意接受建议和贡献,如果你有任何想法或想提供帮助,请随时提交 pull request 或 issue。 ## 自行编译 要编译此项目,你需要安装 devkitPro。你可以在 [devkitPro 官网](https://devkitpro.org/wiki/Getting_Started) 上找到安装说明(注意:据我所知,devkitPro NDS 编译仅适用于 Windows,或者一般来说适用于 x86_64 架构)。 安装好 devkitPro 后,你可以通过运行以下命令来克隆此代码库: ``` git clone https://github.com/AzizBgBoss/TerrariaDS.git ``` 然后,导航到项目目录: ``` cd TerrariaDS ``` 为了保险起见,先清理一下: ``` make clean ``` 现在,你可以通过运行以下命令来编译项目: ``` make ``` 这将在项目的根目录下创建一个 `TerrariaDS.nds` 文件。 (注意:如果你没有使用 Msys2 shell,你可能需要定义 `DEVKITPRO` 环境变量以指向你的 devkitPro 安装目录,例如 `export DEVKITPRO=/mnt/c/devkitPro` 和 `export DEVKITARM=/mnt/c/devkitPro/devkitARM`) ## 捐赠: 这款游戏是完全免费的,如果你喜欢这个项目并希望支持它的开发,任何捐赠,无论多少,我们都将不胜感激。我还是个青少年,学校和生活中其他各种事情真的让我没什么时间,所以你的慷慨解囊能激励我,让我投入更多时间继续开发 TerrariaDS 并实现功能。感谢你的支持与贡献! - USDT (TRX20): TVq9gPQP2xTybbA2QtWrXBuQgvxZSVdiXm - USDT (ETH): 0x63FCB723F9EaA3100b466f229067227EfA461Bf7 ## 游戏截图 ![Screenshot 1](https://raw.githubusercontent.com/AzizBgBoss/TerrariaDS/main/media/screenshot%20(1).png) ![Screenshot 2](https://raw.githubusercontent.com/AzizBgBoss/TerrariaDS/main/media/screenshot%20(2).png) ![Screenshot 3](https://raw.githubusercontent.com/AzizBgBoss/TerrariaDS/main/media/screenshot%20(3).png) ![Screenshot 4](https://raw.githubusercontent.com/AzizBgBoss/TerrariaDS/main/media/screenshot%20(4).png) ![Screenshot 5](https://raw.githubusercontent.com/AzizBgBoss/TerrariaDS/main/media/screenshot%20(5).png) ![Screenshot 6](https://raw.githubusercontent.com/AzizBgBoss/TerrariaDS/main/media/screenshot%20(6).png)
标签:C/C++, Terraria, UML, 事务性I/O, 任天堂DS, 客户端加密, 游戏, 重制版