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