Wednesday, April 3, 2013

Disney Closes Game Publisher LucasArts

They made Videogames history and I have good friends working there. Worst news of the month.

Good job, Mickey Mouse, die.


GDC 2013 Mon Amour

I have a love-love relationship with the Game Developers Conference, since 2006 when I had the chance to give a talk and experience first hand the joy of talking in front of a flock of super techie people staring at me and waiting for my first slip up (and they happened). At the end of that talk I was rewarded by a guy from NVIDIA with a compliment I still cherish: "Fran, I loved how you talk, the rhythm, your pauses, that was good man". I blushed and I was too embarrassed to reply that my manner of speaking was nothing else than heavy jet-lag kicking in and making me literally fall asleep on stage every few minutes. A job well done.

This GDC was ok, mainly because I met some old good friends, from Georg Backer to +Ury Zhilinsky, to the guys at Crytek Kiev and Frankfurt: I can't say I miss Frankfurt, but it was good to see them again.

The talks I attended were ok, nothing spectacular. Clearly mobile gaming is a big big topic, but, from the purely technical point of view, being told in 2013 how blooming is implemented feels a bit old: basically mobile graphics is where desktop graphics was around 2006, it needs the big guns to step in and show these kids how to do shit. The mobile GPUs, though, are getting pretty darn fast: ARM reported that mobile GPUs are almost on par when it comes to computation power with console GPUs (again, about 5 years ago tech), but lose big time when it comes to available bandwidth: accessing external memory takes a lot of power that is a scarce resource in the mobile space. Last take away from this talk: in mobile, deferred GPU kick the proverbial ass.

That leads us to the NVIDIA talk and Tegra 4: Tegra 4 looks very powerful on paper, but it also looks like it could easily be used to warm up your cold winter nights in Europe. An immediate rendering architecture with non-unified shaders is not what you can call power efficient. But it's fast.

But enough with this technical mumbo-jumbo and let me introduce the absolute protagonist of GDC 2013, the undisputed star of the moment, the return of the king... suspense... PROJECT SHIELD.

Applause please

I thought that Microsoft Surface was a pointless device, but Project Shield wins easy-peasy the first price for pointlessness: it doesn't make any sense whatsoever, it's gimmicky, it's ugly, it's cheaply built, I had the "pleasure" to hold one and it felt as it was made of plastic. In fact, it is made of plastic. And it's butt-ugly. Opening the screen makes a weird sound as the hinges weren't properly oiled.

How they can think anyone will buy this is beyond me.

Final word about John Romero, who I met the last day while walking out of a restroom (please, no jokes): this guy rocks, he's nice, approachable, funny, and bright as the sun. He was the highlight of GDC 2013.

Tuesday, March 5, 2013

I want to learn game programming #2

I tried to scare you away from your foolish desire to learn game programming in the first episode, but if you are still here it means I haven't succeeded just yet. Let's explore, then, what resources are at your disposal if you really want to venture along these treacherous paths.

If you are an absolute beginner and you have never written a line of code before (no worries, we have all been there at some point), you can start here:

Once you get yourself acquainted with the basics and with solving little problems, you can move down the chain and look at lower level languages such as C#, Java and Objective-C, three C based languages which introduce a higher level of complexity and control over the code you are writing and the concepts you are manipulating. Very unfortunately Microsoft killed XNA, an excellent C# game framework; you can still grab the latest copy of XNA Studio and play with it. It's highly recommended:

If you are more of a Java person, you can follow the next tutorial, that will take you from absolute beginner to making Space Invaders yourself! Who doesn't love Space Invaders?

If you are coming straight from the web developing world and you dream in Javascript, there are options for you too, here's a good introduction:

And keep an eye on Lanica, these guys are creating a mobile game engine driven in Javascript, coolness all round. You can read more on Lanica's Blog

If you have a shiny Mac (why wouldn't you have one?) and think that mobile gaming is the future, download Xcode from the App Store, it's free! Xcode is a difficult environment to learn for a beginner, make sure you cut your teeth with something simpler before having a go at this beast. Once you have Xcode on your Mac, redirect your browsers to the following tutorials and code away:

Beware, here we are entering the realm of serious programming, approach with care and make sure you master the basic concepts first. Objective-C is not an easy language, it's a C dialect that will make you scratch your head several times about object ownership and such. Approach with extreme care and Keep It Simple.

Last, but not least, the rising star of indie game development is Unity 3D: it's a powerful, component based, visual editor for games that can target several platforms easily. It's been used extensively, lots of tutorials are available and scripts can be written C#, Python or Javascript. What's not to like? It takes from where Microsoft left XNA and improves on pretty much everything. It's also an absolute must if you are a visual person.

Point your browsers here now, you'll thank me later:

Everything you have learnt earlier will come very handy when you are creating your first game with Unity3D.

While you are learning, don't forget to keep things simple, focus on solving problems and learn the ideas behind what you are doing. Don't get paranoid about writing fast and efficient code now, it is not as important as many seem to preach, or, better, it is not important now for you.

But most importantly: have fun. Choose a language, choose a set of tools and create something simple you like and you know you can finish: the most important skill a programmer can possess is finishing what you started. That alone will get you a shiny, glamorous job in the Game Industry some day.