daveruiz / doom-nano

A 3d raycast engine for Arduino
289 stars 62 forks source link
3d arduino c engine game performance raycast shooter

doom-nano

A 3d raycast engine for Arduino

See it in action:

Just experimenting with an Arduino Nano I bought some time ago. This chip is very limited in process and memory: 16Mhz, only 32kb for program memory and 2kb of RAM, of which 1kb is entirely used for the screen. Most of problems I´m facing currently are about memory. CPU clock might be a problem too, but can be more or less avoided having more memory for calculation shortcuts. Despite of all those limitations it´s capable to run at up to 14 FPS. Probably can be optimized and structured much better. Will try to keep learning and improve it.

To be clear. This is not an actual Doom game, just picked some sprites from it (and simplified a lot). The rendering engine is more like a Wolfeistein 3D. The Doom idea came because I started this building the fancy melt-screen effect (included in an early version, but not anymore).

Hardware I used:

Resources:

Current status:

(I'd like) To do:

Simplified version (using an Arduino UNO, built-in pull-up resistors for buttons and a buzzer):

Wiring:

More screens (outdated):