# Clutter for game GUI

I'm pretty new to game development, having only written a simple 3d game for a class project, but I'd like to get started on a bigger project.

I'm writing an MMORPG to run in both the browser (WebGL) and natively (OpenGL ES 2). In choosing a GUI toolkit, I'm trying to find a style that work work natively and would be simple to emulate in WebGL.

I am considering using D or Go for writing my game, so interfacing with C++ libraries will be difficult, if not impossible. Of course, the language isn't the end goal here, so if using C++ will save considerable time, I'll bite the bullet and use that.

In order to reduce the amount of code I'll have to write for the browser, I'm considering using something simple like Clutter for basic abstractions, which I think will be pretty easy to emulate (layered canvases maybe?).

Does anyone have experience using Clutter for a 3d game?

Note:

I haven't used any game development libraries, and I only have limited experience with GUI libraries. I do have HTML+CSS experience, so maybe librocket is a viable solution?

Edit:

I'm also trying to be cross platform, so Linux/Mac/Windows.

• "Having only written a simple 3d game for a class project", "I'd like to get started on a bigger project", "I'm writing a MMORPG" Well, that escalated quickly! – Gustavo Maciel Dec 12 '12 at 4:37
• Yes, yes it did. I'm not expecting anything jaw-dropping for at least a year, just something to keep myself out of trouble. – beatgammit Dec 12 '12 at 4:50
• I added the c tag to show that I'd really prefer a C library. – beatgammit Dec 12 '12 at 18:44
• There is a book about using Impact JS for HTML5 game dev (requires you shell out an additional \$100 for an Impact license) – bobobobo Dec 12 '12 at 19:53

I'm working with libRocket myself right now and one thing to keep it mind is that it is not an implementation of HTML5 and it uses OpenGL (via custom renderers) as opposed to WebGL. For those you'll want something like Awesomium or Berkelium. The former is not open source (free for companies making less than 100K a year if I recall).

It sounds, however, like you intend to write two separate clients for your game one javascript (WebGL) and another in some language with OpenGL bindings. In that case, if you are comfortable writing the GUI twice AntTweakBar is a nice choice. There are several other discussions on gamedev, here here is a good example.

Unsolicited suggestion - something you might consider is writing a WebGL game (perhaps using the three.js library) and then distributing it natively using Awesomium which supports WebGL as of 1.7.

• AntTweakBar looks promising. I like how it supports C instead of C++. – beatgammit Dec 12 '12 at 22:41
• @tjameson why do you prefer C so much against C++? – Gustavo Maciel Dec 13 '12 at 1:06
• @GustavoMaciel - Because of name mangling, C++ is hard to call from other languages, whereas nearly every language can link in C code. If I use a C++ library, I'm locked to C++ (and maybe an embedded language like Lua), whereas with C, I can write in whatever makes my life easier. – beatgammit Dec 13 '12 at 6:43

I recommend you take a look to libgdx. Applications using it can run on HTML and Desktop (plus Android) and used OpenGL ES 2 with Java.

• It looks like a fine library, but I really don't want to write my game in Java. – beatgammit Dec 12 '12 at 18:43