Rendering Bug of 2015


This was a bug I ran into on the S3 Galaxy Mini while putting the final hand on the first release of MULE Returns for Android. The bug took me quite a while to find. The game loaded up fine on most devices, but on this one, all I ever I only got was a black screen.

I never got any errors back from OpenGL and changes to parameters in order to for example clear the screen to a different colour always worked.

It turns out the problem was this line of code in the renderer

glDrawElements(GL_TRIANGLES, numIndices , GL_UNSIGNED_INT, 0);

I apparently didn’t read the documentation for glDrawElements well enough, as OpenGL ES 2.0 only supports GL_UNSIGNED_BYTE and GL_UNSIGNED_SHORT, while the standard OpenGL version supports GL_UNSIGNED_INT. Of course, most devices actually supports GL_UNSIGNED_INT as well, so I didn’t see this bug until I was fortunate enough to run into a device that conformed to the standard 🙂

The Values of The Global Game Jam

The Global Game Jam is the world’s largest multi-site game jam. We are gearing up towards the 2016 edition, and at the time of writing 449 sites from 80 countries have signed up. If that trend continues, we’ll definitely beat last year’s record of 517 sites once the jam begins in a month’s time.

As a founder, the core value for me about the Global Game Jam is not the size, but the values of sharing, collaboration and experimentation that it was founded upon. Those values have largely been inherited from the Nordic Game Jam, which I co-founded together with Jesper Juul and Henriette Moos.

Unlike other well-known jams such Ludum Dare and Molyjam, participation in the Global Game Jam require jammers to be physically located at one of our many sites.

In fact, not only are jammers required to be at one of the sites, but they are are also highly encouraged to join a team. We strongly believe that ideas get better as they are bounced back and forth between team members. Additionally, a big part of game dev is learning to work in teams with people with complimentary skill-sets and ideas. The Global Game Jam archives provide several ideas for group forming, based on experiences at the Nordic Game Jam.

An important part of any jam is to show off what you have created to the other jammers. Jams are a great place to get feedback from your peers. The Nordic Game Jam took this idea further and required jammers to not only upload an executable, but also all the assets and source code needed to rebuild the game from scratch. At the Nordic Game Jam, we believed it was important that jammers can learn not only from and discuss each others’ ideas, but also discuss and learn from implementation details. Later on, this idea became a core part of the Global Game Jam as well.

All games uploaded to the Global Game Jam website are licensed under the terms of the Attribution-NonCommercial-ShareAlike 4.0 International Creative Commons licence. In human speak that simply mean that anyone can share and modify your game as long as they attribute the original creators and don’t earn any money from it. Just as importantly, the original creators retain the commercial rights to the game and assets, and can develop the game further in private without violating any license terms.

An important reason d’etre of game jams is to provide a safe space where ideas can be generated and tried out without having to consider the usual day-to-day restrictions of game production such as target demographics, deadlines, hardware, programming language and tool restrictions, etc.

In fact game jams are becoming so established as idea generators, that companies have started integrating them into their culture. Bossa Studios, Media Molecule and Double Fine are examples of this.

The Global Game Jam always has a keynote video as well as a theme, both of which are distributed to all sites and used among other things to instil the importance of experimentation in the jammers. By keeping the theme secret until the last possible moment, jammers are forced to use their creativity to come up with ideas on a short notice.

As a founder, I strongly believe that one of the stand out things about the Global Game Jam is that it is based upon a set of values; we actively promote sharing, collaboration and experimentation in  game dev across the globe. Of course,  I am also not blind to the fact that it is the world’s largest game jam in terms of number of participants, countries involved and games that makes our message that much stronger.

In closing I have to say that seeing approximately 30,000 people from 80+ countries put aside their differences for 48 hours to focus all their creativity on the same task, is an extremely heartening feeling.

Game Jams and Hobbyists

Game Jams and Hobbyists is a talk I did at Aalto University in Finland in December 2013. Since this was a university talk, I felt it was important to do something academically substantial and so did a lot of research on the history of collaborative design as well as history and evolution of game jams. I hope you enjoy the slides and/or the videos of the presentations linked below.

This was the teaser for the talk (original link)
Finnish game industry has strong roots in demoscene. You know, people making non-interactive pieces of real-time, audiovisual art. Demoscene still exists, but it may not be the main recruiting channel for game industry anymore.

Now creative and productive people are focusing on games. Weekend-long game jams have been around for many years. But it was Global Game Jam in 2008 that started the boom. Now there are thousands of games made in hundreds of places all around the world in a single January weekend when the Global Game Jam happens. Game Jams are definitely Games and Now!


Videos of the talks

Video 1/3 (questionable quality)
Video 2/3
Video 3/3


Making A Game Engine Is Easier Than You Think

This blog post is long overdue. Back in July this year (2015!), I gave a talk at the Develop Conference, entitled “Making A Game Engine Is Easier Than You Think”.

Granted this rather cheeky title is not to be taken at face value, but was meant to provoke all the nay sayers out there. It is a an attempt at making a balanced talk on when it makes sense to create your own technology, and what it takes to get you there.

To be clear, most of the time, my advice is to go with an existing engine. There are some amazing and battle-proven engines out there, such as Unity 3D, Unreal, CryEngine and Game maker. Besides that, there are also a swath of less known engines which might be just as good options such as PlayCanvas, DeFoldCocos2D-X and many more. Which engine you pick, should really depend on a lot of factors such as the skills of your team, the requirements of the game you want to make and which platforms you plan to publish on.

I don’t want to repeat all of my advice in this blog, as you can also find a lot of it in the slides embedded below. I have a lot more to say than what went into the slides, so I hopefully one day, I’ll be able to elaborate a bit more.

GDC 2014 Mobile Programmers’ Roundtable

I made two proposals for GDC 2014 and one of them got accepted! So, I am arranging a mobile programmers’ roundtable at GDC. There will be 3 different roundtable sessions, each on a different day and with a different theme; iOS, Android and Cross-Platform Development.

A bit more info on the different talks can be found through this link on the GDC page.

If you work in mobile, I would be super interested in hearing what you would like to discuss  or share at a roundtable session.  Even if you cannot attend GDC, I promise I’ll do my best to take your feedback with me, and I’ll make a writeup of the sessions here, after I come back. Please leave a comment or use the contact form below to send questions, feedback, etc.

I hope to see you there!

Global Student Game Developer Competition Keynote

I am very proud to have been a judge and keynote speaker for the 2013 Student Game Developer Competition. This is my first time ever giving a keynote, either in person or as via video, so I was a bit nervous.

The competition was online and available to everyone, but arranged by a team from Iran. I am so happy to see at least virtual border beginning to come down. Hopefully the real ones will disappear soon as well.