Rajin. games & software. developer. Fall 2018

2 months






Key Skills
  • Optimization
  • 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
Tools Used
  • 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.

contact: rajin@rajinshankar.com copyright Rajin Shankar, 2020