Category Archives: Rants

Personal rants

Back In Business

It seems like the interval between posts is getting longer and longer, this time I am back writing after nearly five years. In my last post I wrote about starting to work and the lack of spare time. In fact I have neglected the blog during all this time but I am making an effort to take a bit more care of it.

First of all a brief summary of what happened in the meantime, I have joined the game industry in the UK, I presented at the GDC (albeit in a sponsored session), I visited some very important game studios, I am working as an engine programmer… We can say that most of my dreams came true, nevertheless I will keep the blog tagline. ๐Ÿ˜‰


Back to the blog, I made some small changes as to refresh the contents. I have updated the about page (now featuring a legal disclaimer at the end ๐Ÿ˜€ ), updated the blogroll, removed some widgets from the sidebar and written some words in the empty top level pages.
I have also retired the My Computers page and confined it in the Old section. The main reason for this is lazyness, I bought plenty of devices in those years and keeping track of them would be cumbersome: I got some new Android devices (phone, tablet, set-top box, smartwatch and tv), some Windows 10 based (fancy ultrabook, second tablet), an Odroid-C1 and even a PlayStation 4, my first console. ๐Ÿ˜€

There is also another news, last but not least, which is about a project I started nearly five years ago that I recently decided to release publicly on GitHub. I will not say anything more at this time but the wait should be short. \o/

Fourteen months after

Yeah, fourteen months have passed since my previous post, that’s a lot of time.
A time apparently spent doing nothing, if you just look at the activity here, but in fact I was quite busy in real life.

Exactly fourteen months ago I found a job in the game industry, as my LinkedIn profile can testify, and now working on video games is what I do every day. Having the job of your dreams brings satisfactions (like being on MobyGames, the IMDb of games ๐Ÿ˜‰ ), but it also brings, as many other jobs, a constant lack of spare time.
If you want to have part of it back you have to focus and careful organize your time, something I’m beginning to understand and practice lately.
A proof of this is in one of my latest Google+ posts, which unfortunately is not public. ๐Ÿ˜›

Yeah, Google Plus. In fourteen months we have seen many things happen, like the birth of this new social network (for which I already have a profile), the release of Linux 3.0, a new major number kernel with no major features ;), but also my switch, after years spent on Gnome and NVIDIA, to KDE and AMD. ๐Ÿ˜ฎ
Don’t worry, this applies only to my new netbook, which have also stolen the title of fastest OpenGL device at my disposal from my Optimus One Android smartphone. ๐Ÿ˜›
Photon is still alive and kicking of course, but it is not in the city where I work, so they are now my developing machines: the first allows me to even test GL4/D3D11 features, while the other is used for mobile programming.

Last, but not least, the site have been revamped and now everything is handled by WordPress.
This is far more easy and effective than having a separate Drupal site with the hassle of maintaining it but without exploiting any of its powerful CMS capabilities.
Now I have got to go, see you in another fourteen months. Just kidding. ๐Ÿ˜›

Spring Updates

Just like I did the past summer, I’m writing this update post to summarize the latest goings-on. ๐Ÿ˜‰
First of all the Episode One of the IndieVault Podcast (Italian) is online, and that is important because I will be one of the voice you are going to hear in every episode. ๐Ÿ˜‰
One of its topic is the IndieVault Conference at Gamecon 2010, held on April the 30th at Castel Sant’Elmo in Naples.

I have participated as a Lowpoly Studios coder but my presentation (Italian) was equally covering my internship experience as well as the indie one.
You can find all the episodes (yes, there is an Episode Zero too ;)) on iTunes.

Going back for a moment to Lowpoly Studios I have got to point out the last M3xican post on our official developing blog (
A new graphic style…
) along with a new video (The Undergrounder: Level Editor BETA 4 + New graphic style).

Talking about new releases, I was going to forget that PacStats 0.1 is out!
Have also a look at its new Freshmeat, GnomeFiles and Softpedia pages.

Last but not least, while I still don’t have the time and the patience to make a complete source release, I have made the first step publishing a couple of videos from my internship activity at Raylight: the first one (YouTube | Vimeo) has been taken from the final demo, while the other (YouTube | Vimeo) is a simple yet nice test that I’m pleased to show.

Summer summary

This post tries to address the recent lack of blog updates presenting a summary of remarkable dates occurred during this summer. ๐Ÿ™‚

Summer Collage

  • 3rd June – I registered a Twitter account, you can read about me and gamedev at a faster pace.
  • 1st July – Me and M3xican announced the development of the independent game Evolution War and registered the Lowpoly Studios domain.
    Check also the related Twitter accounts: EvolutionWar and LowpolyStudios.
  • 22nd July – I got a Bachelor’s Degree in Computer Science with higher marks and honours from the “Federico II” University of Naples, Italy. ๐Ÿ˜€
  • 3rd August – The Khronos group announces the release of OpenGL 3.2 specifications at SIGGRAPH 2009, at last it comes with different profiles support!
  • 10th August – I bought the “10 Top Indie Hits” on Steam: great games at a great price!

A long presentation…

The professor of the computer graphics course at my university was continuosly annoyed by my protests and comments during her lectures..

I’m sorry but I just couldn’t stand some claims like: “Phong shading is never used in interactive applications because of it being computationally too heavy”… ๐Ÿ™‚
Fortunately she gave me the opportunity to give everyone a small technological update. ๐Ÿ˜€
After about a month, my presentation was born.
Made entirely with LaTeX Beamer, VIM, Dia and GIMP, it deals about what modern GPU are capable of, showing some GPGPU applications, along with traditional ones (videogames ๐Ÿ˜€ ), and some shader examples together with commented code.

I discussed it yesterday in a couple of hours, I was all shook up at first but then I advanced smooth and plain. ๐Ÿ˜‰
It is in Italian, of course, but I published it anyway: Le Moderne GPU.

glUniform1f() is working!

I faced this problem for the first time a year ago, while working for my parallax mapping demo, and I met it again these days, in which I’m busy to fine tune my depth of field demo to permit keyboard driven parameters tweaking.


The issue I’m talking about is quite seriuos, on my machine it is impossible to pass a float uniform variable to a shader, and I’m not the only one reporting it:

The first link is a forum thread from GameDev written by a girl whose applications suffer from this annoying issue, he has written a proof of concept which works perfectly on my box, i.e. float uniforms are NOT passed. ๐Ÿ™‚
But it has been the third one which made me think about how to fix the problem: it has been reported that, after calling glewInit(), glUniform*f() functions work again.

The first thing I did, of course, was to download and investigate inside GLEW sources to see what was happening inside that magic function. What it does, actually, is redefining all the GL function pointers calling glXGetProcAddress() for everyone of them, I thought it would have been a good thing to try to replicate this behaviour in my programs, and I was right! ๐Ÿ˜€

This is what I added to my sources for the incriminated function to work:

glUniform1f = (PFNGLUNIFORM1FPROC)glXGetProcAddress((const GLubyte*)"glUniform1f");

This also seems to explain why my Python shader demo didn’t suffer from all of this, I think that PyOpenGL initializes itself retrieving the addresses for all the GL functions it needs.

M3xican, the shader master came with THE solution, just add -DGL_GLEXT_PROTOTYPES to CFLAGS.
Hail to the master! ๐Ÿ˜€

Back in blog

My blog is back, at last!
I was starting to lose the hope for a data rescue and beginning from scratch (as a matter of fact I wrote the Photon post before this one), but, fortunately, it was not the case…

WordPress Logo

Our server has been down since the 31st of July for a stupid fan problem, the Mars site/wiki/bug tracker and my little blog have followed it. ๐Ÿ™
On that server, in my mailbox, I used to collect blog backups… yes, I’ve been so stupid to weekly archive database backups on the same machine running the DBMS… ๐Ÿ™‚
But now, thanks to Dekki, our great 3d artist and sysadmin, we have all the data back on a replacement server!

But, as you have probably noticed, the blog is now hosted on Netsons, a reliable and feature rich free hosting solution, which is also the home of my new Encelo’s Projectz site, now running on Drupal.

Today I’ve been busy with xml imports/exports, ftp uploads and tons of manual phpmyadmin updates, but it has been worth the effort.
I have installed the latest WordPress from scratch (welcome integrated tagging! ;)), updated all the plugins, imported the access statistics and made a and a Ohloh widget.

The blog is back and it is here to stay! ๐Ÿ˜‰

Hail to the Photon

On Thursday I assembled Photon, my brand new workstation, the day after I received also the surround speakers set and the fantastic wide monitor.

For the detailed configuration you can have a look at the page written for this purpose. ๐Ÿ™‚


The specifications are not extraordinary (except for the monitor, maybe, which is a bit larger than usual, but you all know that the display area of a monitor is never enough ๐Ÿ˜‰ ), Photon was built with the aim to be cheap but effective, no bells and whistles, but a solid and balanced platform.
Moreover, buying from the entry level segment avoid the situation when you wake up a morning and discover that your hardware is worth 25% less than the previous day…

With Photon I have the possibility to be part of the next-gen gaming era, to exploit multi-threaded programming with a real performance gain, to explore the Shader Model 4 and OpenAL benefits… and to run a heavy Compiz Fusion configuration at 1680×1050! ๐Ÿ˜‰

I’m 24 and I’m a gamedev :)

I turned 24 today!
It has been a year of studying, graphics/game programming and, of course, entertaining. ๐Ÿ™‚

The year that has just sterted will be characterized by a summer of work instead…
Working for the Summer of Code is hard, it is a real work after all, but also funny, and getting paid for enjoying writing Python (actually Pyrex) code and researching on graphics techniques is fantastic. ๐Ÿ™‚

It also legitimate my status, I’m a game developer. ๐Ÿ˜‰

The quest is over!

The quest for the lost fragment is over, at last!
Today I have returned from Athens and installed in Electron the additional ram module and the long awaited shader capable MSI FX5900XT-VTD128 card!

The first thing I’ve done was to update the Nvidia driver packages from ‘nvidia-96xx’ to ‘nvidia’, this currently means going from 96.31 to 97.55.

This is what’s new from GeForce4 Ti 4200 (NV25) to GeForce FX5900 XT (NV35):

  • The OpenGL version string is now 2.1.0
  • The CineFX 2.0 engine allows for two new anti-aliasing modes: 4x Bilinear Multisampling by 4x Supersampling and 4x Bilinear Multisampling by 2x Supersampling
  • There are eighteen new extensions available: GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_half_float_pixel, GL_EXT_blend_func_separate, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_object, GL_EXT_stencil_two_side, GL_EXT_texture_sRGB, GL_NV_float_buffer, GL_NV_fragment_program, GL_NV_fragment_program_option, GL_NV_framebuffer_multisample_coverage, GL_NV_half_float, GL_NV_primitive_restart, GL_NV_vertex_program2, GL_NV_vertex_program2_option

What follows is a series of test, actually they are exactly the same, and with the same settings, as the ones shown in the Easter gifts post:

Test NoAA, NoAF 2xAA, 4xAF
glxgears 4852.8 2678.0
Blender 9978 7927
GL_shadow 1189.4 793.0
GL_pointz 544.8 552.0
GL_blit 2006.0 1391.4
GL_smoke 449.4 402.8

Some tests perform better on Electron than on Thunder (which has a much faster graphic card and DDR RAM), this is very strange, maybe I’ve got to run these tests on Thunder again. ๐Ÿ˜‰