This program was an assignment centered mostly on optimisation, multithreading and Data Oriented Design being the central focuses of the project.

This assignments basic setup would first be about making a scene with a bunch of moving circles, and they all collide with a line randomly spawning every second. There were several different techniques used to optimise the project and increase its performance.

Techniques such as lookup tables, optimised sorting algorithms, optimised collision detection, multithreading, and various DOD approaches to coding.

The example to the left is the base version, the only optimisation implemented was limiting collision detection, as shown by the lines coming from the spheres.

This new example was the final version of the project, with 3D implemented and optimising the if statements into if defines, multithreading was implemented and both merge and bubble sort were implemented which works with the multithreading.

Details

Software used:
  • TL-Engine – Engine/Rendering
  • Visual Studio – IDE

  • Techniques used/learned:
  • Bubble, Merge, and QuickSort
  • Compile-Time optimisations
  • Line to sphere collision
  • Multithreading
  • General collision optimisation

  • Other details:
  • Language – C++
  • Duration ~ 50 hours
  • Grade – 1st