Les Imbroglios d'Alexis Breust

De l'impro sans bugs et du code lâcher-prise.

La plupart des articles techniques (en anglais) concernent le développement du moteur de jeu open-source lava que j'ai mis en place, avant tout, comme un challenge personnel pour me former sur différents algorithmes et technologies.

Game Programmers and the C++ collapse

Everyone with little experience will tell you: if you want to program your own game engine, C++ will allow you to get the performances you need. Indeed, C is missing high-level quality-of-life features, and there are no other practical choices.

Well, that state of mind is changing among game developers.

Let's focus on why C++ is slowly digging his own grave.

Game engine: Frustum culling

When you want to draw a big 3D scene with lots of contents, you want to minimize the number of draw-calls. One of the very first technique to implement is called Frustum culling, which consists of removing things that the camera cannot see.

This is the first part of a series of articles on 3D scene optimizations. More to come!

C++ enum to string: the Macros Way

Ever now and then, I find myself looking for a way to log an enum. Fun fact is, even if it is easy to actually log it, it is hard to maintain. Having to keep a switch instruction in sync with code content, or generating a new file during a pre-build step, is not exciting. We can do better, right?

Le Risque et l'Impro

J'entends régulièrement, à l'approche d'un spectacle, des remarques du style :

Je ne me sens pas prêt pour ça.

Et je dois dire que ça m'arrive souvent de me dire ça aussi. Mais, l'improvisation étant un domaine risqué par nature, et le public le sait, pourquoi continuer à craindre une catégorie particulière ou la peur du ridicule ?

Deep Deferred Renderer

lava's render engine (namely magma) is meant to be recent standards efficient and, secondly, innovant. For the end-user, the renderer details are completly hidden. This small article explains what's behind an experimental renderer: the deep-deferred render.

Design Patterns: pimpl in C++

lava uses multiple design patterns, but any usage of those are driven by two core principles:

  • do not show more than needed ;
  • keep performances in mind.