Game Design From Outer Space

I’ve started studying C++ through openFrameworks. Here’s why I’m doing it and why everyone interested in making things should too.

About Opening Our Minds: Why I’m Learning openFrameworks

I’ve started teaching myself openFrameworks for a week now. OpenFrameworks is a library for C++ that lets you write code in a fast and easy way. It’s maintained by a great team, among which stands out Zach Gage, one of my favourite artists and designer.

Why I chose to do that?

After all, here in Urustar everybody is putting a great effort in mastering Unity and adding another tool to our arsenal, right now, can sound like it’s not the best idea.

But I did it anyway.

I strongly believe that good game designers should learn as much as they can every single day. That’s why I also started to draw again. Here the goal is not to become the best at coding or making art. But you surely need to be able to fiddle as much as you can to everything enables you to express your ideas.

And coding is a great enabler. After all it’s the tool we use to build worlds and experiences. And for me coding is just that. Not an end. Not a way to explore technology in itself, but rather a tool that lets me better express myself as a designer.

Sure, I’m still learning C# and adding C++ (even with the great help of a framework) could look like biting more than you can chew. But I kinda fell in love with openFrameworks and with its simplicity.

First of all, the library is not that different from Processing, another code library (which you should check out, because it’s awesome!) at least at a surface level. Being a Processing user and lover, making the jump was not that difficult.

Secondly, just like Processing, openFrameworks has a great deal of add-ons that let you connect with sensors such as Kinect or Arduino microcontroller. This is so great for experimenting and to create very diverse games, involving new control systems, sensors and so on (see the incredible works of Kaho Abe for example).

And third, as a library, it looks more solid and less prototype-oriented than Processing. I feel with openFrameworks I could be able to deliver a finished product (and some awesome games, like Vlambeer‘s Ridiculous Fishing are made with this library).

Just a moving ball

It may seems trivial, but when you’ve coded it you realise it isn’t.

The scary thing? All this means I need to learn C++ which somewhat gives me goosebumps. I know I just wrote about how learning code is awesome and stuff, but it’s still a bit scary. Especially when you start encountering character like this one: *, The Dreaded Asterisk of Doom™ which means that you now have to deal with pointers and probably get an headache in a matter of minutes (now, I’m hearing my coder friends yelling at me with despise).

But I can cope with it. And plus, if games have taught me one thing, is that challenge is always a great thing, because that’s what makes you grow as a person and learn.

Some hardcore programmers will tell me that’s not the way to go. That I should start from crude code, without the aid of frameworks. That frameworks themselves are kinda limiting. Well, I understand their point of view. It has to do, like I said, with considering technology an end rather than a mean. I guess we’re just different beasts, here. To me, this is the best way to get to learn some more coding. And I think it’s the right way for someone who wants to become a great game designer.

So, if you’re curious like I was, you can run to the openFrameworks page, downloading all the stuff and start making something out of it. I’m doing it right now and it’s the usual exciting adventure.

Remember: everything you learn day by day keeps your mind open and makes you a better person. Do it. Teach yourself everything gets you curious, and never, never ever stop. It’s completely worth it.