Data orientated design and optimizations

This was an assignment where I was asked to generate a scene of a minimum of 10k circles or spheres (2D or 3D respectively). The assignment asked that we use our knowledge of Data Orientated Design within the games industry and to show the importance of optimizations within games. Furthermore, for the purpose of the assignment multi-threading was a must within the scenario along with other optional optimizations techniques. These were: Quad/Oct Trees for spatial partitioning down the area, using correct sorting functions due to time complexity, K-D trees for spatial partitioning again, circular buffer for outputting data due to C++ std::cout having a large overhead.

Project With Arrays, Project With Vectors, Project Report