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!


I’ve also started occasionally streaming myself code on 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 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://$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.

RSS Feed