Valkyrie Engine

I originally wanted to write a general purpose rendering engine that I could use in a few project ideas, so I decided to write boilerplate code in C++ and GLFW3. Prior to this, I had written a few other engines so I used that experience to write something more robust.

I wanted this engine to also implement a scene graph to make loading multiple objects clean and easy. I took this oportunity to learn more about PBR pipelines and so I wrote a PBR shader for it as well.

Before I knew it, I had gotten very immersed in the project and started adding more features, like a scripting language that you can use to load models at runtime and so on. I chose to use Wren for the scripting language because the syntax was a lot cleaner and arguably more powerful than lua. Initializing it was also more straight-foward.


Fig.1: Part of a wren script used to add a model to the scenegraph.

As time went on, it started to become more like a game engine. I decided to implement Google's flatbuffers as a means to store load-time configuration info and such. I got the inspiration to use flatbuffers from the modern Pokemon game engine. When the engine starts up, it reads a scene flatbuffer and loads base assets, then the main wren scripts run.


Fig.2: Light object that gets compiled to flabuffer and loaded into the scenegraph.

I've begun writing more data structures like QuadTrees and various generators like perlin noise, since I want to start moving towards procedural planet generation.

C++ OpenGL Wren OpenGL Shading Language (GLSL)

Contact

Photo of Adam

I am eager to join your team and contribute my diverse expertise, tenacity and passion.

Find me at:

Let's connect