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.

Sunday, March 3, 2013

I want to learn game programming #1

So you really want to learn game programming, and you are asking where to start. I've been on the receiving end of this question so many times, that I tend to answer in autopilot. Let's get the scare talk out of the way first: making videogames is neither glamorous nor will it make you (or me) rich, it just so happens to be our passion.

It's hard work, there's a ton and more knowledge to build up on the technical side before even trying to attempt making a very simple game, and, after that, there's a lot more to learn about how to interact within a game team, with colleagues coming from different nationalities and working in different fields (from programmers to artists to producers to... managers). Work hours are long, depending on where you ended up they are even longer, the dreadful promise of crunch time in the hope that the game will be shipped on time is an always looming menace, with the little solace of the faint hope of a bonus at the end of the project (that practically very rarely or better never materializes). Speaking of money, game programmer is a very low paid job compared to other engineering fields.

If you are here to make money, move away. There's lots of good blogs on the web that teach you databases.

Are you still around?

Next question to answer is: what programming language do I learn?

Quick answer: not C++. Pretty much anything else is fine, but if I have to choose, I'd go for either Python or Ruby, two high level, dynamic languages that take most of the gritty details out of the way while you build up your confidence in writing code. At the beginning especially, you need to focus on learning how to solve problems in a simple manner and how to manage complexity: programming is hard, programming is a blend between engineering and art, programming is a creative and artistic endeavor. Mastering the Art of Programming, being games or any other engineering field, requires years of practice and not everyone will likely succeed: Keep It Simple must be your mantra.

Why not C++? Because it's a bloated, difficult, over complicated, extremely powerful language that will keep you bogged down forever in details that are completely irrelevant to learning programming. You will have to master it one day, but that day is not today.

... to be continued

Wednesday, February 27, 2013

VFX protest

VFX ProtestMaking visual effects for a movie is surprisingly similar to making a videogame: the workflow maps very closely, both need graphics engineers, modelers, animators, technical artists, producers, more or less the same process. Historically there has also been a fairly consistent exchange of professionals between the two in the last ten years. I've always looked very closely at the VFX industry to gauge what might happen to the Game Industry, for this reason the news of the VFX protest struck me pretty hard: it's about time there's a protest!

To cut a long story short, many of the visual-effects makers of Life of Pi, who made the creative vision of the award winning movie possible, were let go without compensation for them or their families.
These people are not cheap, they bring with themselves years of technical and artistic expertise that is extremely hard to build up, they work hard, long hours, weekends after weekends with the promise of a bonus after the project is done; a bonus that very rarely materialize. More often than not they are trimmed at the end, by a very competitive industry that is not sustainable in the long term.

Rings a bell? Yes, the same happens in the Game Industry.

Like the VFX industry, the Game Industry is very badly organized, with lousy project management demanding crunch time after crunch time even when all evidence accumulated in a hundred year of research on the matter suggest that it is counterproductive. And like in the VFX industry, workers are let go easily at the end of the project.

People working in the VFX industry and in the Game Industry need to draw a line in the sand, organize themselves and demand sustainable business that rewards who give life to the next Life of Pi or the next LA Noir.

How? Give me some feedback.

Sunday, February 24, 2013

XNA is dead - Oh noo!

Actually it's been dead for few weeks, but it took me some time to get over my mourning for what has probably been one of Microsoft's best ideas. The API was well thought, clear, nicely designed and, most of all, simple yet pretty versatile.

So they killed it.

I used to teach XNA Studio at the University back in Germany, my students loved it, I loved it because I could visually show interesting game programming concepts in a very slick environment that could target Windows, Xbox 360 and Windows Mobile, with some very good assets management for small games thrown in the mix. it was a great tool to learn game programming.

So they killed it.

I bet they needed resources to focus on Surface.

Wednesday, February 20, 2013

Playstation 4

And so Sony announced the Playstation 4. The first thought is that the cell processor wasn't that revolutionary after all. The second thought is that indeed the cell processor sucked precisely as foretold years ago. In fact they announced a PC.

The actual show was very much underwhelming, set aside Alex Evans who is always a sexy beast: Alex, I miss you and our late coding evenings and our chats at the hairdresser in Guildford, my man... I don't miss the english rain though.

But the really scary thought is that my Macbook here will outperform this PC, i mean, this console. My iPad will almost as well.

I must not mention Apple on this blog... I must not mention Apple here...

My biggest hope is that Sony doesn't go bankrupt after launching the PS4, cause I have almost 10.000$ invested in Sony photographic gear: I love my A99V and my Zeiss lenses, please Sony, don't die.

Monday, February 18, 2013

In a galaxy far far away...

... I moved to California to work for Apple more than a year ago, which partially explains the total lack of content in the blog for quite a long time. It also means I don't make games anymore, so writing about games making hasn't felt so pressing for a while. This begs the question: what am I working on now? I can't tell you. Apple wouldn't be Apple if I could happily spill my guts on any blog and tell you exactly what I'm doing. All I can say about my job (aside the fact that it is by far the best job I've ever had) is that my office has no window. Nada, zero, not a single ray of light can penetrate inside (or come out, what interests the most whoever designed the building).

On top of changing job, country, continent, I got married last year with an awesome woman, +Lina Mosashvili.

Better photographic proofs of the event are available on request, including a video that shows my skills in dancing traditional georgian dances. Quiet a feat.

After such a plethora of information that have nothing at all to do with game programming, the second burning question of the post is: will I keep writing about making videogames? Most probably not, but changing the name of the blog is not an option (too lazy), but I can probably still write about software engineering in a more general, and synthetic, way... and, no, I will not write anything about Apple.

One more thing, I opened, together with my better half, a Fine Art Print online store with a collection of my best photographic work: having been a graphics programmer for so long, I wanted to remain somehow in the field. Somehow. Click on the photo and give it a look, there's some good stuff.