The Joyride Labs no longer actively work on this project. A lot of the information on this website is outdated. See this blog post to find out more.
Nikki and the Robots

Here we write about Nikki and the Robots development and other news. Be sure to subscribe! Visit our reddit forum and join IRC for even more info!

Posts Tagged ‘game tech’

Third Interview: Launchpad

Wednesday, May 25th, 2011

Nikki and the Launchpad

The open source project host Launchpad (we use their bug tracker) asked us a few questions which we answered in this little interview.

Previews interviews (German): Gameslabor [English], Zockerperlen [English].

Tags: , , ,
No Comments »

Game Menu

Monday, May 2nd, 2011

We are currently implementing the game menus. We tried to achieve a distinct old school look, that - while being very minimalistic - doesn't look unintentionally plain. The above image is a mockup of what we came up with. We hope, you like it!
(The new menus will be deployed with one of the next updates.)

Tags: , , ,
No Comments »

First Alpha Version just around the Corner

Thursday, February 10th, 2011
Currently, we are working on the public alpha of the open source part of the game. It will be the first public binary release, a version you can download and try out without compiling from source yourself. It will include the game itself, some demo levels and the level editor. There are still some things to sort out, though. (Currently, we are struggling with some quirks in fullscreen mode on Windows 7.) But we hope, it won't take too long. So stay tuned.

Tags: , , ,
1 Comment »

Auto Updates

Tuesday, January 11th, 2011
WARNING: This is a development post. So if you're not into programming, you might find it pretty boring...
We want to have an auto updater for our game "Nikki and the Robots". This updater will do the following things when you start the game:
  1. It will look if there is a newer version of the game available online. If yes, it will:
  2. Download the new version.
  3. Install it.
  4. Restart the game.
One rather funny problem I ran into was this: When I was done writing the basic procedure, I wanted to test and debug it. I created a testing repository containing the then current game with an artificially increased version number, to convince the updater to actually update the game. When testing the updater, I had to fix some quirks. After some testing and debugging, I got an error message, that I couldn't quite explain. I wasn't even sure, where it was raised. I tinkered around a lot, I even tried using the (often invaluable) "-xc" option (after manually chasing all the cabal dependencies that were installed without profiling support), just to find out, what part of the code was raising the error, without success. I started to feel, that I was missing something important. After some time, I realized what that was. The updater was already working correctly: It downloaded the version from the server, installed it and restarted the game. The version from the server, however, was an older version, that raised an error, which was, of course, impossible to find in the newer code.
Sometimes, I feel stupid.
(Of course, players will be able to disable the auto updater. Right now, this works with a command line option, but future releases will ask through the GUI before downloading anything.)

Tags: , , ,
No Comments »

Yeehaw! Zero Gravity!

Tuesday, November 23rd, 2010
Note: This is a development post, but it should be easy to understand for everybody.
Here's Nikki jumping among some boxes that have NO GRAVITY! Unbelievable!

This was only to test some things with the physics engine and it will not be part of the final game. But then again, it does feel pretty good... so maybe it's better not to say "not" just yet!

Tags: , ,
1 Comment »


Thursday, November 11th, 2010
Note: This is a development post. If you are not into computer graphics, this might not make a lot of sense to you. Also, it is only available in English.
One of the first graphical details for "Nikki and the Robots" that we came up with was the style of the backgrounds for the story mode. We decided to use beautifully lit skies that at the same time have an emphasized color banding effect. In the 80s and early 90s color banding used to be a rather unwanted effect due to the limitations in color depth, but we wanted to use it as a visual feature.

Now, it is quite a lot of work to manually create all the color banded backgrounds for 12 levels, especially because there are various versions each for different screen resolutions. So, a couple of days ago Sönke came up with a simple but very useful script that produces the color banding effect. We call it skybanding. Basically, what I can do now is to paint a soft sky in Gimp using various gradients and then just let the skybanding script run over it. The script looks up the source image, takes lines with the height of 1 pixel and then uses them to create bands with a specified height. It therefore produces the color banding effect while preserving the quality of the lighting very nicely. And it is also possible to create the images for different resolutions very fast.
After running the script, there is still some more work necessary to clean up artifacts (which again are due to color depth and resolution limitations), but in the end this script should save me quite a few hours of development time. Yay!

Tags: , ,
No Comments »

Source Code available

Sunday, October 31st, 2010
WARNING: This is a development post. So if you're not into programming, you might find it pretty boring...
Nikki on a sequential operator
Our source code repository is now publicly available. So, if you know Haskell and/or want to get your hands dirty, point your browser to

Tags: , , , , ,
No Comments »

Merging Tiles

Friday, October 29th, 2010
WARNING: This is a development post. So if you're not into programming, you might find it pretty boring...
When you use our level editor and place some tiles in a scene, these have to be converted into polygons and handed to chipmunk, the physics engine. If we do that naive and create a rectangle for every tile, there are lots of problems with Nikki being stuck were two tiles meet. So the tiles have to be merged together and altered in a certain way, to allow Nikki to move through the levels as elegantly as desired. I don't want to go into the details here, but I want to write about my use of QuickCheck.
QuickCheck is a test framework for Haskell that lets you check if certain properties hold for auto-generated arbitrary values. And as the tile merging algorithm is a little too complex for my little brain, that came in quite handy. So I wrote a test suite that checked, if the tile merging algorithm did the following two things:
  • return a list of polygons where Nikki can't get stuck and
  • preserve the exact area that is covered by the input polygons.
Without QuickCheck I wouldn't have fixed nearly as many nifty corner cases. Here is a picture of some auto-generated input data (on the left) and the generated polygons that would have been handed to chipmunk:
a lot of squares
(btw: The picture doesn't represent a failing test case. The generated test cases were much simpler, due to QuickCheck's great shrinking feature.)

Tags: , ,
No Comments »