27 05 2008

Indiana Jones meets Marty McFly?

Category: Hubris

Apologies in advance: the following is not even remotely on-topic, but that’s what blogs are for, right?

Having just seen the latest installment in the Indiana Jones series I couldn’t help but notice that a certain part of the film felt awfully familiar. In the segment, Indy climbs inside a lead-lined fridge to escape an imminent nuclear explosion. The bomb goes off, throwing the fridge into a dizzying spin. After the dust settles, Jones climbs out of the scorched refrigerator relatively unscathed.

Surely no other action epic has used such an extravagant plot device before? Well, not quite, but almost. You see, the original script draft for the 1985 blockbuster Back to the Future called for a time machine built out of — you guessed it — a Philco refrigerator. Operating the time machine required quite a lot of power — 4200 rads to be exact — and the only thing producing that much radiation back in 1949 was a nuclear explosion. To get back to his own time, Marty takes the fridge/time machine to a Nevada nuclear test site and climbs inside. The bomb goes off, throwing the fridge back to the future, and moments later Marty climbs out of the melted Philco with hardly a scratch.

Well, I’m glad that Back to the Future didn’t end up like this. There’s no denying that a Delorean is way cooler than some crummy refrigerator. Still, you have to wonder how a very similar plot sequence ended up in the Kingdom of the Crystal Skull.

Post a comment

10 04 2008

Winter

Category: Hubris

05 04 2008

Epic Graduation

Category: Hubris

My master’s thesis just got accepted, making me a graduate of the Degree Program on Information Engineering at the University of Oulu. The work, titled A Mobile Vector Graphics Quality Analysis Toolkit, deals with solving inefficiencies and other problems found in mobile applications that use vector graphics such as OpenGL ES and OpenVG.

1 comment

29 03 2008

CMake and Microsoft Visual C++ 2005 Express

Category: Hubris

This is just a reminder to myself and maybe others as well of how to get CMake and Visual C++ 2005 Express playing together nicely. Namely, how to get past the following error when trying initialize a project using CMake:

  LINK : fatal error LNK1104: cannot open file 'user32.lib'

The problem is that you’re missing the Windows Platform SDK. But just installing it is not enough. Microsoft has the details, but in short you have to:

  1. Install the Platform SDK.
  2. In VC++, add the following paths to the Tools | Options | Projects and Solutions | VC++ Directories page. Be sure to click the checkmark button to verify the paths.
    • Executable files: C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin
    • Include files: C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include
    • Library files: C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib

With that, the linker error should go away.

2 comments

18 03 2008

Flying the Beaver DHC-2

Category: RC

Here’s a video of the Beaver DHC-2 RC plane we built in flight.

Read more

Post a comment

09 03 2008

Building a Beaver DHC-2 RC plane

Category: RC

Here are some pictures from the construction of a Beaver DHC-2 radio-controlled airplane. The plane is made from a type of insulation foam called depron, which is light, durable and a particularly unattractive shade of gray. It took us three days to build the plane, and hopefully with the right kind of weather, we might also actually get to fly it soon.

1 comment

20 10 2007

Frets on Fire 1.2.512 released

Category: Frets On Fire

A fresh version of Frets on Fire is out. This time around we focused on general bugfixes, performance improvements and making the game run more smoothly, especially on older computers. Only a few new features were introduced, most notably the support for importing songs from Guitar Hero Encore: Rocks the 80s.

If you used the Windows installer package of the previous version, please uninstall it before using this latest release.

Here’s a more complete changelog:

  • Graphics performance improvements
  • Effects optimization
  • Font rendering optimization
  • Miscellaneous bug fixes
  • Added import support for Guitar Hero 80s
  • Translation updates
  • World Charts standing is now reported after each game
47 comments

15 10 2007

What’s happening with Frets On Fire?

Category: Frets On Fire

As you might have noticed, it’s been awhile since we’ve put out a new version of Frets On Fire and generally things have been a little dormant around the project. I hope to somewhat clarify the situation with this post.

Well, first off, rumors about the death of the project have been greatly exaggerated. We have a new version in the works and at this point it is nearly finished. This time around the focus has been on performance optimization and general bug fixes, so no major new features are being introduced. Hopefully we’ll have the new packages up later this week.

That said, in the long run our intention is to gradually move Frets into a maintenance mode and concentrate more on our next game project. It’s been a blast working on Frets On Fire, but at the same time all these other awesome game ideas have been fighting for attention in our respective heads. This does not mean that we are abandoning Frets completely; the only implication is that major new features will probably not be implemented by us in the near future.

I’ll try to write something more about the new game as it materializes. In the mean time, you might want to check out this General Games Podcast, where I’m interviewed by Justin Amirkhani about all things Frets On Fire.

14 comments

29 09 2007

Old scores are now purged from the Frets On Fire Charts

Category: Frets On Fire

Lately our web host has been somewhat concerned about the database load generated by the Frets On Fire World Charts web application. While the app does employ a number of caching schemes, it executes some pretty large queries in the process, which are reportedly hindering other users of the system. Given the choice of shutting down the service or mitigating the load, we opted for the latter by adding a process that removes old scores from the database.

The charts now list the best 50 scores for each song and expire all others that are at least three weeks old. The expired scores will disappear from all views, including the personal player pages. This is a pretty aggressive scheme, but it is needed to keep the amount of data bounded. Note that instead of deleting the scores, we are simply moving them to an offline table.

Next we’ll monitor how well this scheme performs in practice and tune it accordingly. Please post your questions and suggestions in the comments below.

13 comments

24 07 2007

OpenGL ES for Maemo

Category: Graphics, Maemo

Lately I’ve been toying around with the idea of adding OpenGL ES support to the Nokia N800 internet tablet. As you might know, OpenGL ES is a slimmed down version of the desktop OpenGL standard. An open source software implementation called Vincent exists for Linux and Windows CE. Porting it to Maemo, the Debian-based software environment for the N770 and N800, was just a matter of creating a package for it.

But a library is not much fun without some supporting software. I started by adding OpenGL ES support to SDL, a popular game programming library. With the patched SDL, getting an OpenGL ES context up and running is just a matter of

    SDL_SetVideoMode(800, 480, 16, SDL_OPENGLES);

GLUT is another widely used high-level library for dealing with OpenGL. An OpenGL ES version of GLUT called GLUT|ES exists for Windows CE. I took that and ported it back to Linux.

Finally, Teemu Haapoja had made an OpenGL ES library for Python in the spirit of PyOpenGL. Originally his library was for Symbian, but now he has ported it to over to Maemo.

So here’s what I have so far:

  • libvincent: Vincent OpenGL ES engine
  • libsdl: SDL with OpenGL ES support
  • libglutes: GLUT with OpenGL ES support
  • python-egl: EGL library for Python
  • python-opengles: OpenGL ES library for Python

I’ve set up a Maemo repository for these packages. You can get the packages with these settings:

  • Name: Muksuluuri
  • Url: http://muksuluuri.ath.cx/maemo
  • Distribution: bora
  • Components: main

The repository also has some additional packages, like Mesa for full OpenGL support. You can find the source code at my darcs repository.

The libraries still have some minor kinks to iron out. For some reason, Vincent renders everything upside down (I said minor, didn’t I :) . The OpenGL ES version of SDL also depends on the full OpenGL libraries due to some braindamage in the patch. I hope to have these sorted out soon, along with a new utility library to ease porting OpenGL programs to OpenGL ES.

Oh, I almost forgot the mandatory screenshot. Here’s a Python version of glxgears running on the N800:

OpenGL ES on N800

Here’s the same thing in motion:

10 comments

« Previous PageNext Page »