I honestly wouldn’t possibly remember how Geek Hero started. In March 2008, at some point, I must’ve felt like shifting from reading comics to making them. My favourite was XKCD, and so it played a huge inspiration role. The main Geek Hero character, Randie, is named after the author of XKCD. Geek Hero wanted to be a comic that talked about a geek, and how geeks have a big heart. It wanted to be a way to tell the world that there’s a little hero inside every geek.

Since I had never drawn anything before, Geek Hero started really simple. And since XKCD was a big muse, Geek Hero started as stick figures! There are 10 unpublished strips, the first 10, which are basically black and white stick figures, something between XKCD and Cyanide & Happiness.

This is probably the first drawing of Randie hacking:

It was really hard, at first, not having any previous experience drawing comics, to find the right technique. And gee, did I google the hell out of the Internet! I experimented a lot of possible ways to draw it, but very, very soon, something clicked. I’m a programmer, I’ve been coding since I was 9. This means that my whole mindset is kind of shaped around programming concepts. I would say that the most influential ones are a very strict logic, the urge to optimise everything, and the impossibility to keep myself from automating repetitive tasks.

See, someone whose mindset is completely revolving around programming paradigms, finds pretty normal to answer “Yes” to questions like “Would you like an apple or an orange?”. And he would use punctuation marks just like I did in the previous sentence. And he can’t, absolutely CANNOT keep his fingers away from CTRL+C and CTRL+V.

After experimenting with the drawing a little be, my process was as follows. First I would draw on an A4 paper sheet, then I would scan it, then I would try to automatically trace the bitmap to vectors. For the first strips it kinda worked for me.

But very soon I couldn’t do this anymore. The desks were always the same, why would I want to draw them all the time? Also the characters were always the same. I needed to refactor it, optimise it.

In the meantime I got better with Inkscape, and I had more skills to work with, so I started building a sort of clip-art collection, that I could use to build each comic strip. And that’s how the first coloured Randie came to life.

And there it was. Coloured, vectorized, barely shaded, and could breath only through his mouth! The arms and legs were sticks, and his single curved hair looked thicker than them! At this point, the storyline started already to evolve into a plot centred around Randie’s ego. In the beginning I wanted him to be cute and nice, but he was too geeky for that. He probably appreciates a good compiler more than a good friend, and is offended to death by ridiculous programming languages, such as Visual Basic!

So Ross was born, out of pure odds. He already appeared before, as the CEO’s assistant, but I liked his afro hair so much, that I wanted him to become one of the leading characters of Geek Hero. So now he’s the ex Visual Basic programmer trying to learn C and steal Randie’s job, because he thinks he’s finally be cool, if he’s a good hacker.

This style worked for lots of strips, but then another paradigm of the programmer’s mindset kicked in: if something works, it’s time to break it and improve it! I had been reading a lot of other articles about making comics, and stuff about lighting and shading. Geek Hero was ready to evolve. I got hold of my clip-art collection and started working on it. I wanted to have something a bit less rudimentary, with more of a free-hand touch (at least something that looked like it) and better shading. I got this:

And again, these worked pretty well for a while. But then, something kicks in again, and I need to experiment some more. What I was unhappy with, was the fact that these characters didn’t really have many postures. I would change their facial expression usually by the means of just adjusting the mouth, then I would move the arms and legs, and zoom them in or out, and have them interact with each other. But have you ever seen them from the back? Or from direct front? Nope. I knew that I couldn’t achieve the same visual effect manually drawing them each time, and anyway that would take forever, so I started experimenting with Blender:

Creating the characters was a really long work. The 3D mesh had to be modeled and rigged. Rigging is the process of creating a skeleton for the character, and assign the single vertexes of the mesh to the bones, so that moving the bones would give new postures to the character (you don’t want to alter the mesh geometry each time).

The first renders weren’t so great. I was trying to achieve the same identical look that I had in the old style, but that proved to be almost impossible. I got pretty close, tho, but it wasn’t the same.

In the end, I tried to take the best of both worlds, drawing on top of the rendered scene. Unfortunately, though, it’s a really long process, and I can’t afford to do it all the times, now. The 2D style had nicer and crisper colours, and the readers liked it more, so we’re back to it again!

Concluding, being a programmer has a lot to do about the way you end up authoring a comic. The urge to optimize will overtake the art, and the need to experiment will take you in weird places. But after all it’s been a great adventure so far!