Raspberry Pi Project

February 2023

Quick Facts \\\

Time: 

  • Nov. 2022 - Feb. 2023

  • 8 Weeks

Key Details:

  • Solo Project

  • Custom tech project

  • Done in C++

  • Runs natively on a Raspberry Pi 4b

What I Did \\\

I created an endless runner where the title, visuals, and obstacle placements are randomly generated, making each playthrough unique. This was my first proper game project, built with OpenGL ES 3.1, where I implemented a basic rendering pipeline with flat shading and occlusion culling. I developed an asset management system that loads game objects and graphical models separately, and I integrated Bullet Physics to handle movement and collision filtering, which was my first experience working with an external physics library. Both the models and physics colliders are instanced.

Problems & Solutions \\\

  • For a while I suffered with memory limitations. My game would crash when it exceeded the maximum limit of 76 megabytes of VRAM. This limitation forced me to go over my work and redo how I handle asset loading. Though annoying to get working the first time round, once the models were instanced, the memory issues disappeared. I ended up doing the same for the colliders.

  • Debugging shaders initially was difficult. OpenGL ES 3.1 was the latest supported version of the Raspberry Pi at the time. Which unfortunately did not work with the GLSL plugin I was hoping to use with my IDE. After some googling, I found out that I can read the full log by querying shaders and printing the results. This sped up my productivity noticeably.