- Low-level programming
- Hardware interaction
- Fully custom 3D renderer/rasterizer designed for a highly constrained platform
- Performance and memory optimizations for 3D including fixed-point number representation, quaternion-based rotations, and lookup-based transcendental functions
- Direct hardware interaction with drivers for SPI, I2C, and USART protocols
- Memory-optimized game code using only statically allocated space for infinite runner type gameplay
- C, GDB (code and debugging)
- Saleae logic analyzer (signal debugging, profiling)
- Blender (3D assets)
Created as a final project for an embedded systems programming class, Vect0r Space 2 runs on an STM32F3 Discovery board using an engine and 3D renderer written completely from scratch in C.
With a CPU speed of 72MHz, just 48KB of RAM, and 256KB of flash storage, the game and renderer had to be developed with performance on low-performance hardware as their first priority.
The engine is capable of rendering 15-20 frames per second at 128x128 resolutions with multiple models visible onscreen at the same time, and interacts directly with hardware peripherals using drivers developed for the class.