Posts mit dem Label qw werden angezeigt. Alle Posts anzeigen
Posts mit dem Label qw werden angezeigt. Alle Posts anzeigen

Samstag, 19. April 2014

My N9 apps and games now self-hosted and on openrepos.net

As the versions of my apps on Nokia Store grow more and more outdated, I've decided to remove the apps from there and instead self-host them on my web page and/or put them on OpenRepos.net instead. A handful of apps stay on Nokia Store; those are mostly S40 apps or apps for which a Symbian version also exists.

Here's a list of my N9 apps that you can now get for free ("deb download" is as of posting this, for new versions visit the webpage or openrepos.net):
And here's a list of my N9 games that you can now get for free (again, "deb download" is as of posting this; new versions on the webpage or openrepos.net):
Of these, the "greatest hits" and most useful apps/most fun games are (in my opinion): Billboard, Volume+ As Camera Button and chro.mono, but also give qw The Game and Petals a try :)

A list of all my apps on OpenRepos.net is also available.

Please note that unless otherwise noted, do not copy the .deb files and distribute them yourself, please always link to the project webpage (the page, not the file) or the openrepos.net page - this makes sure users can always download the latest version and from a known-good source (always be careful when downloading and installing .debs from random webpages). For end users who want to stay up to date and install the packages comfortably, the Warehouse client for OpenRepos.net is recommended.

For some of these apps (not games) that are not open source yet, I plan to clean up and publish the source at some point in the future, so interested developers can have a look, add features and/or port it to new platforms.

Samstag, 30. Juni 2012

Impressions from the BlackBerry 10 Jam Event in Berlin

I was visiting Berlin this week for the BlackBerry 10 Jam World Tour, as a few other Maemo folks were also going, and I saw it as a good opportunity to meet up with some good old community members, and visit Berlin once again (my last visit to Berlin was in 2008 for the Maemo Summit 2008). Cosimo organized a meet-up at the c-base (same location as for the Maemo Summit 2008) the night before the Blackberry Jam. Before I get too much into details, you can have a look at all my photos from Berlin.

PreJam. The meetup on Wednesday at the c-base was great, meeting old community members and discussing.. erm "recent events". Meetups like this also provide a nice opportunity to meet the faces behind nicknames in the online community. While we were sitting outside, the Google I/O event was streamed in the c-base. The Blackberry guys also joined the party and talked with us about apps and the supported development approaches (web, native, Android, Flash/AIR).

BB10 Jam. The BlackBerry event itself was held at the Spreespeicher on Thursday. After a short breakfast, the event was kicked off with a keynote - no filming or photography was allowed for the whole duration of the event in the presentation room. A few presentations (web or native in parallel tracks) later, Lunch was served and then there were a few more presentations outlining the whole developer story and focusing on mobile development itself. Having done some mobile development on other platforms myself already, the only interesting parts were the Blackberry-specific content items: How packaging and publishing works, how to load apps onto the development device, etc.. At the end, Dev Alpha devices were given out to developers and drinks and snacks were served to finish off the event.

Developing on BB10. Andrew already described the porting procedure for pure-QML apps (e.g. from Harmattan or Symbian) to BB10. After registering with Blackberry, and requesting a debug certificate (which takes at least 2 hours to get a reply back), the registration procedure for the device can be carried out, which will set everything up, so that you can deploy apps to the device. It seems a bit weird having to get everything signed by Blackberry servers before being able to sideload apps to the device (with Android and MeeGo at least, you could just take any device, switch it into developer mode and deploy - without having to "ask" anyone for permission). The Eclipse-based SDK does help with all the steps that are required to set up the device, so it's not too difficult, but annoying fir the first time (after it has been configured, the debug certificate has to be renewed regularly, but you can just deploy the app locally without a network roundtrip). Not counting all the web-based registration process and requesting the certificate, it probably took me about 30 minutes to get everything set up to build qw The Game for the BB10 Dev Alpha - including device-specific modifications to the code. That's quite neat :)

The good parts. The Dev Alpha is a nice device, with hardware specs that are up to date. The SDK is available for Windows, Mac OS X and Linux (that's how you do it, developers should be able to use the host operating system of their choice!). The SDK uses Qt by default, but you can write against pure OpenGL ES, too if you want - and according to the developer docs, an SDL port is also available. Some folks are working on a Python port to BB10, which will allow developers to easily port PySide-based applications (gPodder?) to BB10.

Improvement suggestions. You don't have root on the device. While it's okay to have a consumer device locked down, it'd be great if there was the option to have root on the developer device, if just for looking around the QNX system. Another problem is that - as far as I know - there are no UX guidelines published. Harmattan has them. Android has them. iOS has them. Publish UX guidelines and provide good example applications (not just "widget galleries" or "cookbooks") - ideally something that will look and behave like stock applications. It would be great if instead of having the PlayBook Tablet UI on the Dev Alpha, they would have provided a barebones BB10 phone UI just so that developers get a better feeling for how everything behaves.

All in all, BlackBerry has done a great job with the BB10 Jam World Tour, and I really enjoyed my time in Berlin - it was great to meet up with Maemoistas and see what they are up to these days :) Hopefully I'll get the chance to see you guys at some future events. Keep on hacking!

Sonntag, 24. Juni 2012

qw The Game ported to Android

I decided it's time to port qw The Game to Android, as a way to see how the publisher story works on Google Play compared to Ovi Publish and also to see how mature the Qt port to Android is.

For my port, I used Necessitas alpha 3 update 4, which you can download from the project website. Necessitas already includes both the Android SDK (that's the SDK you use in general, and contains all the Java APIs, etc..) and the Android NDK (that's used if you want to do native C/C++ development), so no need to install anything else. You can start Necessitas Qt Creator using "QtCreator/bin/qtcreator" in the Necessitas installation directory, but Necessitas also creates a launcher icon if you shy away from command lines.

The assumption is now that you have an existing Qt project with a qmake project file (.pro). Just open that .pro file in Necessitas Qt Creator and let it create the Android scaffolding. You can now try to build the project and run it - either in the Android emulator, an actual Android device or your N900, N950 or N9 running Nitdroid (the N950/N9 port is actually quite nice these days, and can be installed alongside Harmattan by flashing an open mode kernel with Android patches, replacing some init files and placing the Nitdroid rootfs inside /home/nitdroid/).

When you first start a Qt-based application on Android, it will redirect you to Google Play to download Ministro, which will take care of downloading the Qt libraries and storing them in a central, shared place, so that all Qt-based apps can use the same Qt libraries (which means that you can do closed-source apps, because they are dynamically linked to the LGPL'd Qt, and it also means that apps are smaller, because Qt doesn't need to be shipped with each app). One disadvantage is that the end user experience is not seamless on first startup, because your users will have to install Ministro first and wait for the Qt libraries to download.

Anyway, now you got that far and got your application running - or not. If you are missing libraries, and your application doesn't start, open the "Projects" tab in Necessitas Qt Creator and click on the "Run" tab for the Android target. There, open "Package configurations" and click on "Libraries" and check all Qt libraries that you need. When you compiled your application, there's a button ("Read information from application") that will analyze your binary and check the right Qt libraries. You can also add "Prebundled libraries", which are dynamically-linked shared libraries that will be shipped with your application. You can also check out the "Manifest", "Application" and "Permissions" tabs and configure it to your liking.

Protip: You can build the Android package on the command line using "ant" as soon as you have used Necessitas Qt Creator to create the initial scaffolding. The "android" folder will be created inside the folder where your .pro is located, and there you will find a build.xml.

Now to some code-level customizations that I had to do for my game, qw:
  • QtMultimediaKit was not found - I had to comment out sound effects for now
  • Automatic screen rotation - My game is landscape-only, and I had to tell the Android system in the AndroidManifest.xml file
  • Qt.labs.particles was not found - Again, I simply commented it out for now; I guess these QML plugins should be easy to add to Necessitas, but I didn't bother to find out for this first try
  • Screen resolutions! - Don't assume 800x480 (in case of the N900) or 854x480 (in case of the N950 and N9); make your app scale properly to the screen resolution at hand. Test this by creating a non-fullscreen window on your Desktop in different sizes, and see if the content looks right. For a quick'n'dirty first try, use QGraphicsView::scale
As far as the publishing experience goes: You have to pay a one-time fee of $25 to be allowed to publish to the Play Store (compare this to a one-time fee of 1 Euro for Ovi Publish and a yearly fee of $99 for the iOS App Store). What I found interesting is that there's basically no QA (apart from automated checks that are very helpful and give guiding error messages) and an application uploaded is published in a matter of minutes. I also like the fact that you can add a YouTube video link to the Play Store submission, so users can get a preview of how the experience is like. I published the app for free, and the UI warned me that it's not possible to convert a free app into a paid one in the future, which doesn't matter for me, but it might be a useful hint for other publishers.

qw The game is now available on Google Play for free. It's also available in Nokia store for free. Go play!

Sonntag, 4. Dezember 2011

This weekend's releases: Tap Tap N950, qw.py and the IP Address Widget

Over the weekend, I've pushed out some code for your enjoyment: First up is the incomplete but maybe interesting QML source code of the Tap Tap N950 prototype. I probably won't find time to work on this, but it would be sad to let the small piece of code rot - maybe someone wants to pick up the development of it. I'll answer any questions related to the code in the thread :)

Next up is the open source release of the qw prototype "qw.py", which has been developed during the Super GameDev Weekend 2010 at the Metalab Vienna last December (the next one is at the upcoming weekend; stop by if you are in Vienna!) - nearly 1 year ago. This is not the same as qw The Game in Ovi Store, but it's an earlier version, which still contains multi-player support (4 players on one PC keyboard), and it's written in Python, so it should be easily hackable.

And last but maybe not least is the IP Address "Widget" for Harmattan. This small hack (which is inspired by the earlier Calenderr calendar icon hack) makes use of the fact that the Harmattan UX reloads the icon of an application whenever the .desktop file or the icon file itself changes. The details (and a .deb for easy installation) can be found on the website - basically it shows a way to have semi-interactive "widgets" on the app list on Harmattan. I'm sure that creative readers can come up with some cool ideas :)

Donnerstag, 20. Oktober 2011

Games (and their backstory) for your N9, N900 and N950

I've recently been asked again about the games I wrote for mobile devices, so here it is: The post with an overview of the games, with some not-so-well-known backstories and information on where to get them for different devices. Plus a little teaser hidden somewhere.

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).

Donnerstag, 1. September 2011

qw The Game 1.5.1 is here - for MeeGo and Symbian

Control the white ship to fill areas.
Last December, I started to work on a new game: qw ("cuvée"), an area filling game similar to Qix. Since the tech demo has been released, I've been working on a fancy QML menu, a balanced scoring system, nice rendering effects for enemies and the player's trail and obviously some more levels, which results in this new release, version 1.5.1, with 13 high-definition images that are waiting for you to get their colors back.

The game is now available from Ovi Store for N950 and N9 users, and also for Symbian devices - the advantage of the MeeGo version being that it has higher-resolution artwork (it fully utilizes the higher screen resolution) and sound effects (for some reason Qt Mobility's QML SoundEffect has its problems on Symbian). Both versions use the feedback motor of the device for feedback when you draw, fill or die.

Here's a gameplay video of the first 3 levels, so you can get a feeling of how the game plays:

Mittwoch, 29. Dezember 2010

qw 0.1 is now available for Maemo 5

My second new game this year - qw - has been released for Maemo 5 today. Version 0.1 (a tech demo, not a proper final release) gives you a sneak peek on the gameplay with 9 different levels and four-player support (if you hook up an external USB keyboard or get together really close for some N900 keyboard multiplayer action). The gameplay is simple: You need to control your player cursor (either via touchscreen gestures or keyboard) and enclose areas of the game with lines in order to fill them with a colored image. Beware of the enemies, as they will destroy your lines and split your points in half. If you enclose one or more small enemies, your points are multiplied.

A .deb for Maemo 5 is available from the qw homepage and packages for Symbian are also available. Try it out and send some feedback :) Enjoy!