Omniscient

Celeritas Devlog #1

Published: Last updated:

3D Game Engine written in Zig.

Is what you will see on the projects page of this site. However, I'd like to go into a bit more depth in this first devlog.

What is Celeritas

Goals

Some goals of this personal project are:

  • Learn
    • Zig
    • Low-level programming in general
    • How interop between languages work
  • Explore stylised art styles, and...
  • How to ease the cost of asset creation and importation
  • Create an engine that allows me to very quickly experiment with new rendering techniques
  • Provide a testbed for Snap UI

Principles

  • Modularity
  • Simplicity (readability of code)
  • Prioritise feature development over optimisation
  • Optimise for developer experience i.e. optimise for quick prototyping and workflow turnaround times

The Current State of Celeritas

Progression of Celeritas (thus far)

The bulk of the work that I've done so far occurred in June last year, and loosely follows https://learnopengl.com up until the Model Loading chapter.

First triangle First Triangle

Loading a texture from an image Textures

First 3D object - the cube!

Basic Ambient, diffuse, and specular lighting Ambient, Diffuse, Specular

Loading an OBJ model Teddy OBJ

Specular highlights on Axe mesh (multiple meshes in one model)

Next Time (Roadmap)

In the next devlog I'll go into detail on the roadmap for the Celeritas engine.


Thank you for reading,
Omniscient