keskiviikko 21. huhtikuuta 2010

Naali on the Nokia N900

If your not a big reader skip to the bottom and at least check out the video!


I bought a Nokia N900 phone recently. It's a great device and has a lot of potential with the linux based Maemo5 OS and the processing power. First I made some simple small application in Qt to test how it's done and learned a lot. The thing was that these application didn't do or show anything that could be useful for anyone.

Hmm... why not build Naali for that thing? Is it too heavy to run, what about the 3D rendering? What about building Ogre and all the other dependencies? Only way to find out is to give it a try. I had a 4 day easter holiday (extended weekend) coming up so I started the home project then. I made slow but steady progress during these days. Building ARM versions of Ogre and all the deps were the biggest challenge for sure.

Naali itself didn't need that much work, just disabling some modules and I got myself the first build. As an end result I had Naali that started from the terminal and opened a QMainWindow that had ogre rendering to it. The UI was not showing, the window was just black. Oh... I also had one pissed girlfriend for not spending the holiday with her. She watched/listened me swear and curse on the computer for days, thanks Susanna for putting up with me ;)

On the next workday I showed this "thing" to my co-workers. Didn't get that good of a welcome as... well it didn't do anyting. So next few days I worked on actually showing something and doing a login. I made a simple timer into rexlogic to blast a hardcoded login away when Naali was done loading. And what do you know, it went in and showed me a bringht yellow Audi world. As I later discovered it was the EnvironmentModule doing this, it also crashed the viewer every time terrain was fully loaded. So I disabled the module, after that everything started to load and most importantly look good with the GLES rendering. Of course the sky was black and terrain had no texture due to disabling the module, but our target world is indoors so that didn't matter at the moment.

Next I showed this thing at work and then I got some peoples interest peaking. Then it became my job to make this thing "working" and in demo shape in 1-2 weeks. I took the challenge, did my best and here is the result.

The video demos everything I've managed to do so far specifically for the Maemo platform. This includes removing the normal Naali UI and remaking a simple UI for the interactions that we were interested in, without obstructing the world view too much. Some small adjustments in the window creation. I also tweaked the input system to work with a touch screen and made some special camera controls. Probably I missed something, small changes were required here and there.

Check out the video at

Best Regards,
Jonne Nauha
realXtend developer