GDC 2014 Slides Compilation

Edit: I think the GDC Vault has been updated with all available content, so you may want to go there instead. See you next year!?

Get’em while they’re fresh! If you know of stuff missing here, please tell me about it on Twitter @TheJare. You can also check industry sites like Gamasutra, Polygon or Develop for ongoing coverage, and hopefully a lot of these materials will show up in the GDC Vault soon.



Production & Biz


Firedemo 20th anniversary

It’s been nearly 20 years since we released that old fire effect and the demoscene turned out to love it. I have ported it to HTML5 to celebrate!

It all started when we bought a math coprocessor for our 386/25 and I started playing with fractals and plasmas. A few programming mistakes later, this thing came out and looked neat, so we slapped JCAB’s VT player and released it. Eternal gratitude to Jester of Sanity for unknowingly lending me his fantastic ‘Elysium’ mod – it didn’t take me long to learn that such acts were VERY badly frowned upon.

You can check out the source code on github if you are so inclined. The comments are slightly better this time! This version runs rather slowly on Chrome, and I don’t really know why, but IE, Firefox (Win and Android) and iOS Safari work great.

GDC 2013

It’s that time of the year again, when everyone else is partying and having fun (or maybe not – WTF IGDA?) at GDC in San Francisco. I’ll try to collect any links to lecture materials I come across. If you know of stuff missing here, please tell me about it on Twitter @TheJare. You can also check industry sites like Gamasutra, Polygon or Develop for ongoing coverage, and hopefully a lot of these materials will show up in the GDC Vault soon.

Edit: also check out eXile’s awesome and better organized compilation (focused on programming & rendering).

Constantly updated…


Back in my 2nd year in college (1990), I took a half year course on functional programming. Back then, having several years of heavy duty Z80 assembly videogames programming, and being recently introduced to high level languages via Pascal and Modula 2, my brain was very fresh and open to new paradigms and ideas. Structured languages like Pascal and C were a great way to remove some of the tedium and bureaucracy of assembly, but functional was mindblowing. I already understood the idea of passing functions around as parameters, since we did a lot of that in our semi-OOP approach to game character behaviour. But when you create your first infinite list, wow, that’s a moment to remember!

Continue reading


Yesterday I had the honor to give a presentation at the SpainJS Javascript conference in Madrid, on the topic of Videogames and Javascript. I wasted a lot of time preparing a dynamic HTML5 page for my deck of slides, which was my excuse to play with CSS 3d transitions and fancy formatting. You can see the dynamic deck (which needs Chrome/Firefox or a similarly decent browser), the static deck (should work everywhere), a PDF I converted using wkhtmltopdf, the Speakerdeck, or the video. Enjoy!


A few months ago I created a Github account to see what it’s all about. Even if you use it yourself without all the nice features of a distributed version control system, it’s a great way to manage & publish your open source projects!

I put up there some of my old C/C++ code, and a few experiments I’ve toyed with in my (now scarce) spare time, mostly related to JavaScript. Feel free to check them out!


cdoral in another post mentions node.js. I have been following this project for a while so I thought I’d write a little blurb about it and include a few links for further and more in-depth information. Coincidentally, the Node Summit was held this week in SF, so there may be interesting and fresh material coming from there soon.

First things first: I have played with node.js for little experiments but haven’t yet found an opportunity to put it to real, production use. Version 0.6 addressed some of my questions about its capabilities and performance, and it is already being used on production servers for many traffic-heavy sites like eBay or LinkedIn, so it’s clearly gone beyond the experimental stage. If you are building a web service today, node.js is a technology you should consider.

Node is a stand-alone executable that will run a JavaScript file passed on the command line:

node app.js

Your JavaScript program can use the standard JavaScript libraries (Math, etc) and a bunch of node-specific libraries. In most cases, your program will enter an infinite event loop and start receiving, processing and responding to network requests.

Continue reading

Unity3D 3.5 Developer preview is out

And it includes a fancy exporter to Flash11 / Stage3D. All of a sudden, the best way to author advanced Flash content is Unity, not Flash. Considering that Adobe makes their money from Flash tools rather than the plugin, it’s a really odd situation. With the current outlook of Flash after the ‘Flashmageddon‘, it’s hard to say how relevant this will be in the long term, but it’s an impressive feature! And the obligatory cube to celebrate it:

Continue reading


Our little one loves to grab anything shiny, but is especially attracted to LCD screens of any type. He loves the netbook, the MacBook, my desktop’s dual monitors, and of course the big TV, but most of all he loves the iPhone. I often activate the camera in reverse mode and let him play with it, but there’s always been a problem: while he manipulates the phone, he will push some control or other and stop the camera, go to the desktop and start pushing random icons. I was wishing for some sort of ‘baby mode’ where something neat would be happening on the screen, but controls would be disabled.

I decided to use the Sunday morning to dust off my Canvas, CSS and JavaScript skills to code, with Alba’s design input and feedback, a little BabySaver that could keep his attention with bright colors, and be impossible to quit for him. Click here to see its current form. Click on the “Endless” button to enable interactions, otherwise any clicks will take you to my homepage. Continue reading