johnlayportfolio

Just another WordPress.com site

Category Archives: OpenGL

WebGL and Windows XP

Developing on a Windows XP machine requires a extra bit of work to get things going due to hardware acceleration in Chrome being blacklisted on XP because of hanging and system crashes. But it can be ignored, (at your peril) like this:

From the taskbar or start menu, right click on the launch Chrome icon and select properties. From the dialog box, add –ignore-gpu-blacklist to the end of the target string.

Not all graphics cards support WebGL but you can test your browser at the link below:
http://doesmybrowsersupportwebgl.com

Here’s a run down of the spec required to run WebGL:
http://www.google.com/support/chrome/bin/answer.py?answer=1220892

Additionally, here’s a handy list of those Chrome flags:
http://peter.sh/experiments/chromium-command-line-switches/

Node js

I watched an interesting seminar on Node js today. It has a single threaded non-blocking architecture; which for all intense and purposes allows it to act as a multithreaded process, (handling multiple concurrent or otherwise requests), but is super cpu efficient.

I think it has great potential for web based gaming,  but the only drawback is its immaturity, specifically a lack of database drivers.

I will continue to follow its progress closely and hope to include it in something good soon. JavaScript has come a long way in the last few years!

Choosing a WebGL framework

Having skimmed past the deprecated Google o3d, I’ve taken a good look at scenejs, three and glge as potential frameworks.

Scene is primarily used for creating 3d scenes and uses the JSON data format for all its 3d data, which is great for parsing the 3d data super fast. But I don’t think it’s aimed at games.

I honestly didn’t spend too much time with three, but did find a couple of great reads concerning three and other WebGL frameworks here, as well as a comparison of the three (below):

three vs scene vs glge

Anyway, I went with GLGE. It has great examples, great documentation and uses an easy to use xml based scene graph as well as an easy to learn code base.

Here’s a couple of good starting points for glge:

Additionally, here’s a handy tool for inspecting a WebGL app, used in a similar fashion to inspecting a website with Firebug. (for chrome): http://benvanik.github.com/WebGL-Inspector/

Also here’s something special to aim for – a port of Quake II right in the browser. (http://code.google.com/p/quake2-gwt-port/)

WebGL

Unfortunately my work with OpenGL ES stuttered for Android and I didn’t get time to start anything significant.

But I’ve recently stumbled across a new technology which is a little closer to home. So taking my revised interest with 3d graphics, and everything I learned from OpenGL for Android, I’ve moved onto something new.

As my core skill set resides in Web development, I think the new WebGL technology could be a very good fit.

Learning WebGL (http://learningwebgl.com/blog/?page_id=1217) has a great set of lessons to get everyone started with WebGL and contain familiar ports of the NeHe tutorials. But as I found moving to a framework as soon as possible worked well with OpenGL ES, and with my background in 3d graphics, I’m currently reviewing a range of differenct WebGL frameworks.

Android Phone

Pick up a cheap Android phone today – I’ll hopefully begin development on an Android game/app as soon as I have some free time.

Lib GDX

I’ve started working with a great framework, libgdx. I intially started looking for a framework to allow me to get around having to work without an Android emulator.

This framework provides this and allows a write once deploy anywhere approach to app development.

It also has a great implementation of the box2d physics engine as well obj and MD2 model support.

This fantastic library can be found below:

http://libgdx.badlogicgames.com/

 

OpenGL for Android

3d graphics programming is hard. But I do have experience with DirectX with C++ and C#, and I have a good grounding on the principles of the rendering pipeline as well as the maths involved in 3d programming. (vectors, radians, etc) With this knowledge I’m jumping in the deep end with Open GL.

I’ve been following these tutorials: http://blog.jayway.com/tag/opengl-es/ on the Jayway website.

The tutorials are detailed, have great diagrams and explain everything really well – they’re pretty much ports of the beginner tutorials from NeHe but the extra explaination and diagrams go along way to making a complicated subject accessible.

The major drawback of working in Android, (if you don’t have an Android phone) is that the emulator takes a long while to load up, and you have to do this everythime you build your app.

Getting Started with Android

With a little free time I wanted to take a look at Android development. Having not touched Java in a few years I was surprised how easily it all came back and had a hello world program running in no time. The documentation on Google is great and I particularly like the way they use xml as a manifest – this has great potential for localising games if, say, I wanted to seperate the text from the logic, and then develop my app in multiple languages.