home page

Welcome to my blog.


Welcome back, SFML enthusiasts! This article is a follow-up to my previous deep dive into my fork of SFML.

If you want to know how I managed to draw 500k sf::Sprite objects at over ~60FPS compared to upstream’s ~3FPS, keep on reading!

Here, we’ll explore two new significant features in my fork:

... read more


In November 2021, motivated by a desire to contribute to the growth and modernization of a library close to my heart1, I joined the SFML team2 after volunteering to lead modernization efforts3.

Over the past few years, significant time and resources have been invested in the 3.x branch, targeting C++17 and modernizing both SFML’s implementation and API.

I greatly appreciate the contributions of everyone involved in the project. However, I felt that a different approach would better align with my vision, which is why I decided to create my own fork: VRSFML.

... read more


By now, it should (hopefully) be common knowledge that the term “zero cost abstraction” is a lie. To be fair, it’s more of a misnomer – had the term been “abstraction likely to result in zero runtime overhead after optimizations” then it would have been much more honest, but I can see why that didn’t fly…

Most C++ developers tend to accept the fact that “zero cost abstractions” provide zero runtime overhead only with optimizations enabled, and that they have a negative impact on compilation speed. The same developers tend to believe that the benefits of such abstractions are so valuable that having your program perform poorly in debug mode (i.e. without optimizations enabled) and compile more slowly is worth it.

I used to be one of them.

... read more


It felt wrong to not participate in the Wordle craze, and what better way of doing so than by creating a purely compile-time version of the game in C++20? I proudly present to you… Wordlexpr!

(You can play Wordlexpr on Compiler Explorer.)

Carry on reading to understand the magic behind it!

... read more


A few months ago, I finished implementing the replay and secure leaderboard system for my game Open Hexagon, and it has worked very well so far. I’ve used a few interesting techniques and tricks to (1) achieve deterministic gameplay, (2) prevent cheating by slowing down time, and (3) prevent cheating by modifying game files which I am going to talk about in this post.

If you want to know more information about the replay system and the server/client implementation, check out the two previous devlogs here and here.

At the end of the article, I’ll also share some major milestones I’ve reached this year.

... read more


Keeping my promise and motivation up… here’s the second installment of the Open Hexagon leaderboards devlog. I have made quite a lot of progress in the past few days, and have implemented the following features:

  • Headless mode with replay validation

  • Bought a Arch Linux VPS on Linode for the server

    ... read more


Hello everyone!

This is going to be a DevLog about the implementation of one particular feature for my game Open Hexagon: online leaderboards.

open hexagon

First of all, what is Open Hexagon?

... read more


RSS Feed