Cross-platform Engine

 

This is a game engine that works on PC and PS4 platforms, that was made as a console development class project by Nathaniel Blair, Zhehui Qian and me.

With this project, we wanted to reduce the number of duplicate lines of code and wanted a system where changing platform agnostic code would be easy. Except for the renderer, audio, and joystick input (which are platform specific classes wrapped inside a platform agnostic base class), all other components are platform agnostic. A platform switching class helped with creating the correct instance of the platform-specific classes and also had all the information about the current platform.

  • What I did:
    • Developed the rendering pipeline for PC and PS4
    • Developed APIs for platform-specific classes (RenderManager, Buffer)
    • Added in cross-platform model loading and lighting support
    • Added texture loading on both platforms
  • What was difficult:
    • Understanding the data flow from CPU to GPU on the PS4
    • Figuring how stuff works on PS4 compared to DX11 on PC
    • Designing the engine architecture before hitting roadblocks and porting both platforms’ code to this architecture