Hello everyone!

Links are here (because new users can only put 2 links): http://pastebin.com/sCVjeYfy

Currently, the situation about games and multimedia in Go is kind of not ideal. However, I think, that Go is an awesome language for doing these kinds of things! Why? Because it’s:

Reasonably fast. Easy to make great APIs, due to interfaces, closures, methods, reflection, and so on. Great to work with, when working with good libraries, feels like a scripting language.

So, I’d say, that Go is probably not (at least yet) an ideal language for AAA 3D game development, however, it’s very suitable for lower-budget 2D (or sometimes 3D) games.

However, if you want to start developing a 2D game in Go these days, you basically have these options:

SDL2 - first link in pastebin - these bindings give a full-featured access to SDL2, which provides graphics, audio and everything. However, SDL2 is C. And it feels like that in Go too. OpenGL - second link in pastebin - for windowing use GLFW. Well, this is even harder to use than SDL2. Also, I haven’t found a way (so far) to do cross-platform audio in Go without SDL2. Engo - third link in pastebin - enforces Entity-Component-System paradigm, which can be restrictive at times, and suffers the same issues as OpenGL: no cross-platform audio (doesn’t work on Windows).

So, as you can see, the situation is not great. Right now, I’m stuck with SDL2, I can deal with it, but the situation could be so much better.

How to solve this? I can see a few solutions:

Build an easy to use and powerful game library for Go on top of SDL2. (I started some work, you can find it here: fourth link in pastebin) Make a cross-platform audio library for Go and then build a game library on top of OpenGL+GLFW+thatAudioLibrary. Make a bindless native low-level graphics and audio library in Go and then build a user-friendly library on top of that.

Regarding the third option: guys at Rust have build a native bindless graphics API for Rust: fifth link in pastebin. Would it be possible in Go too?

Also, Go would be way more appealing to beginners, if it was easy to write games in it.

What do you guys think?