home page

Welcome to my new website! This is the place where you'll find all of my projects and my personal blog. Enjoy your stay.

new dive into c++ episode
21 march 2015

I’ve uploaded part 5 of Dive into C++11 on my YouTube channel.

You can watch the video here.

In this episode we’ll see various ways of implementing entity management in your games, starting with a very simple “one vector per object type” approach. We’ll consider a “polymorphic inheritance tree” approach as well, and finish the video by re-implementing our Arkanoid clone with a simple but effective component-based design.

The goal of the episode is showing the thought process behind the design and improvement of an entity management system.


delver's choice
01 february 2015

This year, me and some of my friends participated to the Global Game Jam 2015, a worldwide 48 hour game-development jam.

We made an accessible, simple and fun dungeon-crawler that can be played only using 4 numeric keys. You can try find it here!.

The game is currently work-in-progress. I’m improving the code and the balance and adding more features.

Similarly to Open Hexagon, the game is free, multi-platform and open-source. The code and the assets can be found on my GitHub page.

Enjoy! Looking forward to hear your thoughts or receive your contributions :)

new year, new tutorial video
06 january 2015

Happy new year everyone! Hope you enjoyed your holiday.

A new tutorial video is available on my channel:

Handle-based entity management experiments

In this video I experiment with entity management and storage. I show a smart-pointer cache-unfriendly approach and a more efficient (yet harder to implement) handle-based cache friendly approach.

Hope you find it interesting!

OH2.0-RC2 .deb available
22 october 2014

Andy Meyer, a Linux user and Open Hexagon fan, has packaged the 2.0-RC2 version for Debian systems.

Thanks Andy!

You can find the package here or on the projects page.

Servers are still down at the moment. I’m very busy with university and other projects - I hope to find some free time soon to work on them.

CppCon2014 video and stuff
09 october 2014

The official recording of my CppCon2014 talk, “Quick game development in C++11/C++14” is now available!

Hope you’ll find it interesting.

I’ve also added a new work-in-progress section to my site, “stuff”, where I will keep track of things I like and share them with everybody.

post-summer update
27 september 2014


I’ve recently uploaded a video on my YouTube channel to give everyone some updates about my projects and share my new experiences.

To put it briefly, I’ve had a very busy summer and couldn’t find much time to work on my main projects such as Open Hexagon or Operation Bloodshed. Many minor updates to them and to my libraries were however released.

In september I’ve also spoke at CppCon 2014 in Bellevue about game development with C++11/C++14. It was an amazing experience!

The slides are already available, the video of the talk should be released soon by the CppCon staff, along with an interview by Channel 9.

That’s it!

I hope I’ll be able to find more time to work on my projects and finally release OH2.0.

open hexagon 2.0 RC2 released
02 may 2014

Get it on the projects page!

Please report issues and give your feedback on the official Facebook page.

dive into C++11 - episodes 3, 4
05 january 2014

Hello everyone, hope you had great holidays!

I’ve finished part 3 and 4 of my C++11 tutorial series, Dive into C++11.

They’re available on YouTube.

Part 3 talks about C++ variable lifetime and manual memory management. Part 4 explains what smart pointers are and how to use them.

I’ve also uploaded a new operation bloodshed devlog.

Hope you find the videos interesting!

(I’ve also added links to the Open Hexagon 2.0 release candidate in the downloads page. 1.92 servers were shut down so that version may have issues starting as the IP address does not exist anymore. 2.0 RC1 should be playable.)

new tutorial - dive into C++11 [2]
01 december 2013

Let's expand our Arkanoid clone and our C++11 knowledge.

Learn more about `constexpr` and uniform initialization, and how to deal with FPS and framerates.

Watch on the TUTORIALS page.

new tutorial - dive into C++11 [1]
24 november 2013

Let's build an Arkanoid clone from scratch in 40 minutes, using C++11 and SFML 2.1!

Watch on the TUTORIALS page.

moved to new host
05 november 2013

Many, many thanks to Daniel Porter!.

operation bloodshed
07 october 2013

I’ve been working on a new project lately, operation bloodshed, an attempt at the creation of a spiritual successor to Operation Carnage, one of my favorite childhood games.

operation bloodshed

Operation Carnage is a 1996 abandonware arcade game with a very simple but addicting and fun gameplay. It has a very interesting shooting/strafing mechanic that is easy to learn but hard to master. Unfortunately, it also has some design flaws that I’ll try to solve in my game.

operation bloodshed

The gameplay is very fast-paced, a typical feature of overhead retro-shooters. I worked on persistent blood particle effects and used my custom pseudo-physics engine, SSVSCollision, to deal with collisions and enemy movement. It works quite well so far.

operation bloodshed is very work-in-progress, but I’ve recorded some video devlogs that you can watch on my youtube channel.

Here is devlog #13 showing some gameplay!

The project will be free, open-source and crossplatform.

I’m also trying to maintain an updated devlog here on TIGSource.

ludum dare 27 - 10corp
26 august 2013

I’ve finally participated in Ludum Dare 27, a 48 hour game-development competition.

My game is 10corp, a reflex-based, frustrating, puzzle platformer.


The game is written in C++11, using only SFML2.1 and JsonCpp as external dependencies. It is written using my personal “SSV framework”, written from scratch, which is free, open-source and available on GitHub.

I couldn’t manage to polish the game as much as I wanted to. There only are 7 playable levels, no gfx options, no key rebinding, et cetera.

Still, being my first Ludum Dare, it was a very interesting and learning experience and I’m glad (and surprised) I managed to create something (in my opinion) worth playing that could become a fun little game with additional polish.

Hope you enjoy my entry!

Gameplay #1 Gameplay #2

Also, Open Hexagon news:

09 august 2013

After adding discount to my static website generator, I was unsatisfied with the C code introduced in my project:

extern "C" 
    #include <mkdio.h>
// ...
FILE* f1 = fopen(mdPath.c_str(), "r");
FILE* f2 = fopen(mdResPath.c_str(), "w");
MMIOT* in = mkd_in(f1, 0);
markdown(in, f2, 0);

I looked for alternatives, but I couldn’t find any native C++ Markdown library or any C++ wrapper for C Markdown libaries. So I decided to create a C++11 wrapper for discount, called DiscountCpp. It currently implements very few functions from Discount, but offers a very easy-to-use interface to quickly convert Markdown to HTML.

The updated code looks like this:

#include <DiscountCpp/DiscountCpp.h>
// ...

Now I can sleep in peace.

P.S.: I also implemented syntax highlighting on the site thanks to highlight.js.

markdown and more
07 august 2013

I added discount to my static website generator.

Writing blog posts is now much easier!

ffmpeg, twitch.tv

I’ve also started occasionally streaming myself code on twitch.tv. It was painful to set up, but these are the commands I use:

  • Setting up loopbacks to record both microphone and pc audio

      pactl load-module module-null-sink
      pactl load-module module-loopback
      pactl load-module module-loopback
  • Launching the stream itself

      KEY="<your twitch.tv key here>"
      ffmpeg -f x11grab -s 1920x1080 -r 20 -i :0.0+1680,0 -f alsa -ac 2 -i pulse -c:v libx264 -preset ultrafast -pix_fmt yuv420p -s 1920x1080 -threads 4 -acodec libmp3lame -ar 22050 -qscale 3 -b 712000 -bufsize 512k -af aresample=44100 -f flv "rtmp://live-ams.twitch.tv/app/$KEY"
  • After launching the stream

      pavucontrol # to set up loopbacks redirection

school finals results

After the last blog post my exam score was announced: I graduated with 100/100 cum laude!

This is a great achievement for me. I am already looking forward to start computer science in university in a few months.

done with school finals
11 july 2013

Today was the last day of school finals. I'm very happy about how my exams went and even happier that I finally have a lot more free time!

I've also been working on Open Hexagon 2.0, which will be a big gameplay update with new levels and mechanics. Check the beta out on the official Facebook page.

open hexagon v1.92 linux release
22 june 2013

Finally, a multi-architecture (both 32 and 64 bit) .tar.xz archive is available!

Download on the projects page, as usual. :)

open hexagon v1.92 released
15 june 2013

Friend list and key customization added. (minor update)
If you're using the auto updater to update, delete 'config.json' from your folder first!

open hexagon auto updater v1.1 released
15 june 2013

Rewritten from scratch... opening the way for cross-platform updating.

two new video tutorials available!
11 june 2013

I've created two tutorial videos where I explain how to speed up collision broad-phase detection using a 2D grid spatial partitioning algorithm.
Check them out in the tutorials section!

reinventing the wheel + etc
10 june 2013

In the latest months I've been mostly working on my libraries that you can find on GitHub.
I've "reinvented" the wheel by creating my own cross-platform filesystem and my own template system (similar to CTemplate). You can find both of them in SSVUtils, on my GitHub page. Pull requests and comments are greatly appreciated!
I am happy to announce that the newest version of this website is generated using those libraries, without any Boost or CTemplate dependency.

Other news: real life is taking a lot of time away from programming. I will have my finals this month, and then I'll get into computer science education as soon as possible.

I've also added a donation button to the website: since I'm currently unemployed every donation would be really helpful, especially in paying the server. Consider donating if you like my work :)

Hopefully I'll find the time to make some new tutorials/youtube videos before my finals. Stay tuned!

back to work, update
07 may 2013

Hello everyone, I've been on vacation for a week and I'm back at home now. I'm very busy with school (final exams are in about 1 month), but I will use most of my spare time to work on my projects.

Current development is on Open Hexagon updates, but also on my libraries and on experimental prototypes. I've also added a donation button to the site, which you can use if you'd like to support my work.

I will try to keep you updated in the following weeks!

open hexagon v1.91 released
09 april 2013

Server improvements.

open hexagon v1.9 released
29 march 2013

A brand new level pack and an auto updating system!

open hexagon v1.84 released
15 march 2013

Security and performance update.

Download on the projects page.

open hexagon v1.83 released
14 march 2013

Security update.

Download on the projects page.

open hexagon v1.82 now available for linux
12 march 2013

Thanks to Lukasz Magiera (deb port) and Ethan Lee (tar.gz port), Open Hexagon v1.82 is now available on Linux.

Download on the projects page.

open hexagon v1.82 released
11 march 2013

Bugfix and minor improvements update.

Download on the projects page.

open hexagon v1.81 released
10 march 2013

Bugfix update. Scores have been unfortunately wiped for security reasons.

Download on the projects page.

open hexagon v1.8 released
10 march 2013

Online functionality update! High scores, leaderboards, version checking. Also, a lot of bug fixes and improvements.

Download on the projects page.

.deb packages for OH v1.7 available
06 march 2013

Download on the projects page.

Thanks Łukasz Magiera! :)

open hexagon v1.7 released
03 march 2013

Brand new 3D effects, a circular level, a lot of bug fixes and code cleanup. Download it and share your creations :)

Update trailer

Update: Linux port released! Thanks Ethan Lee!

"tutorials" section created
12 february 2013

I added a new section to the website where I will share my tutorials and my articles. Check it out!

open hexagon v1.6 released
14 january 2013

Bug fixes, custom sounds, and other small changes. Download from the projects page.

open hexagon v1.52 released
01 january 2013

Fixed some annoying bugs. Download from the projects page.

blog under construction
29 december 2012

When the code that generates the blog entries is ready, the blog will be displayed right here, on the home page. Stay tuned!