Llamathrust, the beginnings
- Pablo Narvaja

- Oct 9, 2019
- 2 min read
What drive me to create my own engine?. First I wanted to do my own physics engine and integrate it into blender game engine but blender had a bad source code and I couldn't find the way to do it. When doing my game engine I felt the need to see what I was doing so I asked my self "How 3d drawing works?" and that got me into 3d rendering and game engines!.

First I needed to choose a graphics API, in my case I choosed opengl because of the amount of tutorials, easy to use and portability. Once I had my 3d scene looking nice and the hability to walk around it I started to make the code more generic and reusable so i had my shader class, mesh class, texture class and so on.

At that moment I was using assimp to import my fbx models to test skeletal animation (this feature was never finished) but I was getting tired of having troubles with the library and it was to big for something so basic at the moment so I had the idea of making my own model file. This isn't a good idea when you want to make your own engine since is a large project but I thought "hey, i will need my own binary file long after why dont start with the basics now?" and I base my file in xml and made an exporter in blender which is awesome since now I am more familiar with blender api than ever before.
But I was forgetting something, everytime I changed something of opengl to adapt my new mesh format the screen went black and I had no way to see the error since the code looked okey but the parameters were not, I was forgetting the debugging environment!!.
So that's when Llamathrust development started. First we need a logging system that don't block the main (rendering) thread, a async logger! (spdlog). Second we need opengl to tell me if an error ocurred, I use the opengl error callback since i use opengl4. And recently I was in the need to draw fast wire objects like aabb's, lines, etc. So I now use glampert's debug draw. From now on I was able to keep developing my engine with easy troubleshooting.

That's all for this post, folks. Bye!

Comments