Published on
Project Duration: Dec 6 2025 – Present

QuestFarer Game Engine


QuestFarer is a C++ game engine built around OpenGL. Development started in December 2025 and has gradually expanded from basic rendering into a collection of systems for running a 3D game.

The engine sits somewhere between a general-purpose engine such as Unity or Unreal and a game-specific engine such as the technology used for Minecraft. It is not intended to support every possible type of game, but it is also not tied completely to a single fixed game or mechanic.

Its current focus is on real-time 3D games with character-based gameplay, animation, physics, combat, AI, and voxel-based environments.


Overview

QuestFarer has been developed incrementally, with new engine systems being added as different requirements have come up.

Because of this, the architecture has changed several times during development. In particular, entity management, physics, animation, and gameplay systems have gone through multiple iterations as they have been combined into a common runtime.

The engine is still under development and is not intended to be a finished general-purpose engine.


Entity and System Architecture

QuestFarer uses a custom Entity Component System (ECS) for managing entities and their components.

Components contain data for systems such as:

  • Physics
  • Character control
  • Animation
  • Health
  • Combat
  • AI

Systems operate on these components independently. The exact organisation of the ECS has changed during development as more systems have been added.


Rendering

The renderer uses OpenGL and currently supports both conventional 3D models and voxel geometry.

The rendering side includes:

  • OpenGL rendering
  • GLSL shaders
  • 3D model rendering
  • Materials and textures
  • Skeletal animation
  • Texture atlases
  • Voxel rendering
  • Chunk-based terrain rendering
  • Debug rendering

Different types of content use different rendering paths. Animated characters, for example, use skeletal animation, while voxel terrain uses its own meshing and atlas-based rendering.


Asset and Model Loading

QuestFarer includes model and animation loading for the assets used by the engine.

The current pipeline supports:

  • 3D models
  • Textures
  • Skeletal meshes
  • Animation clips
  • Multiple animation states

Imported model data is converted into the structures used by the runtime.


Animation

The engine has a custom animation system built around skeletal animation.

Current features include:

  • Skeletal animation
  • Animation controllers
  • Animation state machines
  • Blend trees
  • Directional locomotion
  • Root motion
  • Inverse kinematics

The blend tree system is used to combine different locomotion animations based on movement direction and speed rather than selecting a single animation clip for each case.

Animation states are also connected to gameplay systems, such as jumping, locomotion, and attacks.


Inverse Kinematics and Character Animation

QuestFarer includes inverse kinematics for adjusting animated characters based on their environment.

This is mainly being used for character and terrain interaction, allowing animation to account for things such as uneven ground rather than relying entirely on the source animation.

This work is still being developed alongside the character controller and animation systems.


Physics and Character Controllers

The engine contains custom physics and character movement systems.

Current functionality includes:

  • Gravity
  • Collision detection
  • Character movement
  • Jumping
  • Hitboxes
  • Kinematic movement
  • Physics-based interactions

The character controller is responsible for translating movement input into character state and movement, while the physics system handles the physical side of that movement.


Combat

QuestFarer currently includes a prototype combat system used to test the interaction between gameplay and the underlying engine systems.

Current features include:

  • Attacks
  • Health
  • Hitboxes
  • Damage
  • Knockback
  • Attack animations
  • Combat reactions

Combat is implemented using the same entity, animation, physics, and rendering systems as the rest of the runtime rather than as a separate system outside the engine.


AI and Navigation

The engine also contains AI functionality for non-player entities.

Current work includes:

  • AI-controlled characters
  • Navigation
  • AI movement
  • Integration with character controllers

AI is being developed to use the same movement, animation, physics, and combat systems as player-controlled characters.


Voxel World

QuestFarer includes a voxel-based world system alongside its conventional 3D model rendering.

Current voxel functionality includes:

  • Voxel terrain
  • Chunk-based world storage
  • Greedy meshing
  • Texture atlas rendering
  • Voxel interaction
  • Chunk generation
  • Chunk streaming

Terrain is generated and processed in chunks rather than as one large mesh. Chunk generation can also be performed asynchronously, with generated meshes uploaded to the renderer incrementally.

The voxel system is one of the more game-specific parts of the engine and is intended to support the type of environment currently being developed for QuestFarer.


Engine Scope

QuestFarer is deliberately somewhere between a general-purpose engine and a game-specific engine.

A general-purpose engine such as Unity or Unreal needs to provide tools and systems that can support a very wide range of games and workflows.

At the other end of the spectrum, an engine can be closely tied to one game. Minecraft is an example of this kind of approach, where the game and its underlying technology are closely connected.

QuestFarer currently sits between those two extremes.

The underlying systems are intended to be reusable across projects, but the engine is being developed around a fairly specific type of game and therefore does not attempt to provide every feature that a general-purpose engine would.


Technical Details

Language: C++ Graphics API: OpenGL Architecture: Custom ECS Build System: CMake Rendering: OpenGL, GLSL, 3D models, voxel rendering Animation: Skeletal animation, animation state machines, blend trees, root motion, IK Physics: Custom physics and collision systems AI: Navigation and AI-controlled entities Gameplay: Combat, health, hitboxes, knockback, reactions World: Voxel terrain, greedy meshing, chunk generation and streaming


Project Status

QuestFarer is still in development and is not finished.

The engine currently contains working implementations of a number of interconnected systems, while others are still being expanded or changed as the project develops.

The architecture is expected to continue changing as more gameplay and engine requirements are added.


Development Period

December 6, 2025 – Present

Ongoing development