Thursday, October 20, 2011
Games (and their backstory) for your N9, N900 and N950
Gaberln (N950, N9 (+Symbian): Ovi Store, N900: Maemo Talk)
This game is a simple soccer ball juggling game - developed using QML, in collaboration with Tim Samoff, who did the great artwork (and who also did the Mong artwork) - we still have to add some more features, and Tim has already done the graphics for a special hacky sack mode, let's hope we get around to finishing it at some point :)
qw The Game (N950, N9 (+Symbian): Ovi Store, N900: .deb on request, @qwgame)
This game is similar to Qix, but has its own style, and the enemies are a bit different from Qix - but it basically is an area filling game. The reason why the game is called "qw" is because it started out as a small Python hack (qw.py) during the Super Gamedev Weekend 2010, and qw were the first two letters on my keyboard. A nicer explanation is that it can be spelt (in German) like Cuvée and a reference to the different blend of different photos (flowers, places, animals) that you have to play through. The photos have been done by vogelvau, the menu structure is done using QML and the gameplay itself uses a QGraphicsView-based drawing engine.
That Rabbit Game (N950, N9, N900 (+Symbian): Ovi Store, @thatrabbitgame)
This is my first game to be published in Ovi Store; it's a "inverse duck hunt"-style game where you control the flying rabbit head, and have to get yourself shot by approaching the crosshairs and keeping steady. Flapping the wings is done by touching (the strength depends on the duration of the touch) and moving left and right is done using the accelerometer. The initial version of this game was developed in Java as an Android game for an OpenGL ES course at our University (PDF). The game for Maemo, MeeGo and Symbian is a complete rewrite in C++/Qt with the artwork taken from the original game, which I did myself in Inkscape. There is also a webOS port using OpenGL ES.
Tennix (N900, N8x0: Extras)
This one is quite old, and is actually based on a really, really old codebase of a school project from 2003. In 2007, I decided to port it to SDL for Desktop Linux, Mac OS X and Windows, and since SDL is available on Maemo as well, I then ported it to Maemo 4 in January 2008. A special "2009 Edition" was created for the N900, with updated controls and a Python-based AI enemy (using the CPython API / libpython). What about Harmattan you ask? Well..
Some of these games are just free and closed source for now. I do, however, definitely plan to release them as open source in the future. The problem is having used non-free artwork in the early prototyping stages (i.e. getting "something" visible in the engine) before replacing them with my own artwork, so I'll have to make sure to remove these things from the repository history before publishing the source. Also, code cleanups need to be done ;)
Download and enjoy the games - I'd be grateful if you could leave some feedback (either via Ovi Store, Maemo Talk, comments here or e-mail).
Tuesday, August 11, 2009
Multiplayer Tennix coming to your tablets soon
Last Tuesday, I have started working on adding network-based multiplayer support to Tennix (a free 2D tennis game for Linux, Mac OS X, Windows and Maemo). In addition to two players playing on one computer (which already worked a long time ago), we now support playing Tennix over the network on two tablets (obviously, playing a tablet-versus-PC game will also work).
Currently, this network play runs over UDP, so WiFi connectivity is needed when you want to play tablet-versus-tablet. I might be able to add Bluetooth support later on, but the BlueZ API seems way more complicated than SDL_net's API which I currently use. Let me correct myself here: There's no real documentation for the BlueZ C API that I could find.
A small library with a clean API that abstracts Bluetooth, WiFi and maybe some other connectivity options and provides an easy way to establish a transport between two hosts/tablets would surely help boost developer interest in creating multi-player games and cross-tablet applications.
A video demoing the controls on two tablets can be found on YouTube.
Friday, April 24, 2009
Tennix 2009 for Maemo
The updated version of Tennix, the open source tennis game is now available in Maemo Extras for Chinook, Diablo and Fremantle (anyone with Fremantle hardware care to test if it works correctly? Thanks!). The 1.0 release has been announced to the public in February already, but I have only now had time to create a proper package for Maemo. It plays fine with stylus or the D-Pad.
Here is a gameplay video if you can't wait to download it onto your tablet.
Sunday, February 8, 2009
Optimizing Tennix for Maemo
As I promised some weeks ago, here are the results of our take on optimizing a SDL game (Tennix) for the Maemo devices. All other platforms on which Tennix runs obviously also profit from these optimizations. The presentation with all the details is available here: Optimizing an open source game for mobile devices (PDF). I also have two videos for you: Tennix running on a tablet before and after the optimizations.
Conclusions: Do profile (using oprofile or gprof) your applications to find bottlenecks. Look at callgraphs (using graphviz) to determine function usage. Most of the time, small code changes result in big performance boosts. Some Maemo-specific hints for SDL development are available in Game development in the Maemo Wiki.
The optimized release of Tennix (0.7.0) is available in Maemo Extras already. Go get it! :)
Tuesday, January 13, 2009
Optimizing the code of a SDL game
Maybe you have tried it already: Tennix has been available for Maemo for quite some time now. The current version still has room for improvement (performance-wise), and the gameplay part runs a bit slow. That's why our team uses it as an optimization target for a course at the uni until the end of January.
Two benefits: You get a playable, fast tennis game for your tablets, and we get a bit more proficient in writing more efficient code and making better use of the current hardware. This will obviously also benefit the Desktop version of Tennix, as both use the same codebase.
I hope to be able to draw some conclusions and give you an overview of what we were able to do in a few weeks. Until now, try out Tennix and get used to its (relatively slow) speed, so that you feel the improvements when the optimized release is out :)