johnlayportfolio

Just another WordPress.com site

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/

Advertisements

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.

Other Remakes

After doing some research I’ve found 2 noticeable Fan projects set in the SD universe.

  • Memories of Mana Set a year after the events of SD3, a quality fan game using the RPG Maker XP engine, with enhancements developed using the Ruby Game Scripting System (RGSS)
  • Return to Mana Set 42 year after the events of SD2, this ambitious project aims to allow multiplayer gameplay using Valve’s SOURCE engine.

It’s nice to see other people working on ambitious titles with the Return to Mana project; and the Memories of Mana project is a great example of a game seen throught to completion. (It also has a sequal)

Development Decisions

Appearance

Enhanced Remake I’ve chosen this path as I believe it allows me practice my 3d modelling skills without setting exceedingly high expectations on the quality of the demo. I avoided the lazy port option as from the outset “Improving my 3d modelling skills” was a goal of the project.

Development

Microsoft XNA Framework I’ve carefully chosen this development environment as I believe it will yield the best results. Although I am pitching the appearance of the game at a relatively low level, I feel it would be prohibitive to have to work with limited resources, with optimised models that require several iterations to get them running on the DS. I think the development process would be sped up by having slightly higher-poly models running with ample resources than having to rework the models for the limited resources of the DS.

I think the XNA Framework is a slightly more welcoming development environment, as well as not having to work with the constant memory and resource management of the DS.

Audio

To familiarise myself with the audio for the game, I’ve been listening to the OST (downloaded here)