Carlos Correa
← Work

VenRadworking title

My graphics engine, written from scratch in C++ and OpenGL: a renderer, an entity system and worlds loaded by zones.

Status:
early stage
Built with:
C++, OpenGL, GLSL
Source:
private, happy to walk you through it

The idea

I want to understand how an engine works on the inside, and the best way I know is to build one. I write every piece myself: from how a triangle reaches the screen to how everything that moves in a world is organised.

In the long run, this engine is the base for a zoned fantasy world that simulates itself. That’s the vision, not what exists today.

The pieces

RendererLights, materials, a skybox and thousands of instanced objects on screen.See how it works → Cave generatorRooms that grow on their own, connect to each other and end up as 3D walls.See how it works →
Zoned worldEach zone is generated once and isn’t rebuilt when you come back.in progress
Entity systemWhat keeps track of everything that lives and moves.in progress

Where I am

Done

  • Directional, point and spot lights
  • Static and dynamic instancing
  • 3D model loading
  • Smoothed cave walls
  • A controllable player on top of the entity system

Now

  • Better lighting
  • Shadows
  • Normal maps

Next

  • Cave floor and ceiling that follow the walls
  • Frustum culling
  • Procedural sky
  • Saving and loading