为什么推荐 CHIP-8
这个项目 不 需要 HTTP、数据库、Web 前端、3D 图形渲染的知识,只要你了解基本的计算机组成原理并且熟悉位操作就可以完成
非常适合刚看完 The Book 想找项目练手,但是又不想写 CRUD 的同学
这个项目的规模不大,利用空闲时间做的话应该不到一周就能完成
CHIP-8 的架构非常简单,只有 35 条指令,不仅有丰富的资料可以参考,并且周边的测试套件相当齐全,可以非常方便测试出哪条指令没有正确实现
CHIP-8 相当于模拟器开发领域的 Hello World,如果做完后对这一领域感兴趣想更加深入,还可以尝试实现 Game Boy、NES 等平台的模拟器,或者加入 r/EmuDev 看看大家都在鼓捣什么
我的 CHIP-8 实现:RSC8
https://github.com/jerryshell/rsc8
RSC8 使用 Rust 编写,测试表现与 chip8-test-suite 期待的一样
RSC8 主要分成了 2 个部分:
rsc8_core
: 零依赖 no_std 的 CHIP-8 核心实现rsc8_tui
: 使用 ratatui 实现的 TUI,主要有 3 个作用:屏幕绘制、接收用户的键盘输入、根据 tick_rate 推动rsc8_core
的步进
rsc8_core
本身就是一个数据驱动的 lib,未来打包成 WASM 放到浏览器中,或者移植到 Bevy Engine 都是可以的