Polymer Engine

 -> 

Overview

My gradually growing personal game engine that serves as a learning environment to figure out how parts of game engines work and as a testbed to try out less common approaches to options. I'm currently still focusing on establishing core features that are shaping the overall architecture, before starting development on a proper game that will dictate what features are needed. I'm trying to develop the engine with high scalability across a variety of hardware (not just the latest and greatest) and reduced iteration times through hot-reloading for assets and C++ code.

Demo

Demo showcasing shader + module hot reloading working for development builds

Demo to showcase my platformer prototype using Blender as a level editor. The scene is exported as a glTF, which is loaded and converted at runtime into a playable level. Collision shapes are defined as empty boxes, parented to the mesh in Blender

Demo of an example glTF model having been converted into meshlets and rendered in a single draw indirect command (see image below) that is populated by a compute shader that applies cone view culling. The cone view culling currently has a few issues with negative vectors, but allows you to see the individual meshlets being culled

alt

Xcode GPU debugger view of the draw indirect command rendering the meshlets of the same model above. Even with the faulty culling, this approach yields a ~60% decrease in frame time (on my M1 7-core GPU), with more future culling strategies likely to decrease this even further for more complex scene scenarios

Demo showcasing physics + barebones 3D rendering driven by the ECS

Technical Sheet

Tools that I used whilst working on this project:

Helpful Resources