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.


dive into C++11 - episodes 3, 4
5 january 2013

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]
1 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
7 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.

10corp

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:


cppdiscount
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);
fclose(f1);
fclose(f2);

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>
// ...
discountcpp::getHTMLFromMarkdownFile(mdPath);

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

      #!/bin/bash
      pactl load-module module-null-sink
      pactl load-module module-loopback
      pactl load-module module-loopback
    
  • Launching the stream itself

      #!/bin/bash
      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
7 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
9 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
6 march 2013

Download on the projects page.

Thanks Łukasz Magiera! :)


open hexagon v1.7 released
3 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
1 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!