Big news! Our latest game, The Rainbow Machine Air Edition, is currently leading the catalogue of most popular games in Airspace, the store for LeapMotion games. Needless to say, we’re very happy to see the outcome of hard work, commitment and perseverance. We love the LeapMotion device and so should you Regardless of the times of code scavenging and bug hunting, overall development of The Rainbow Machine Air Edition has been a journey full of joy and learning. And coding doesn’t stop. In the upcoming days we’ll have important news about the game we’re currently working on: NagiQ 2. Meanwhile, thanks to everybody for your support!
Great, great news! Today is the launch day for the widely anticipated touchless technology, Leap Motion. And our game, The Rainbow Machine, is one of the 75 launch titles. We are very, very happy to see our game in the launch portfolio It has been a long (and winding) road: sleepless hours of bug hunting and UI redesign. We have to thank the Leap Motion test team for their continued guidance and their patience. Please, take a look at The Rainbow Machine in Airspace. It’s available for both Windows and Mac. We hope you like it
Good news! A few months ago we developed The Rainbow Machine Air Edition, a version of our game The Rainbow Machine tailored to harness the incredible capabilities of Leap Motion devices. Our game is now available for free in the Airspace Beta program, so if you’re a Leap Motion user with access to the Beta program, please take a look at our game here. All your comments are welcome!
Essentially, The Rainbow Machine Air Edition uses Leap Motion’s gesture detection and motion tracking device and API to offer a novel play experience. As our game is based on LibGDX (using LWJGL as backend for desktop) integrating the Leap Motion API was a pretty straightforward task, which allowed us to release the game for both Windows and Mac OS X. Regarding the gameplay: in The Rainbow Machine Air Edition you use your fingers (or “tools” like some chopsticks or pencils) to control and position a bar. In each of the game’s 140 levels, once the bar is set, a blue ball will automatically fall down and if you have properly placed the bar then the ball will bounce and reach the treasure chest of the level!
Do you want to know what’s the most important part about The Rainbow Machine Air Edition?… That we had a lot of fun creating our Leap Motion game! And we hope everyone who plays The Rainbow Machine Air Edition will also experience a fun time. By the way, it’s been a great pleasure to work with the Leap Motion team: support is prompt and complete, they gave useful feedback, conducted an exhaustive testing of the game, and provided a flawless guidance throughout the process. A pleasure to work with them, indeed.
Now we’re looking forward to the official opening of Airspace. Stay tuned! And thanks for reading!
Of course, this art has been created by our fantastic artist, XKlibur.
Measuring a programmer’s productivity is a difficult chore mainly because analyzing the final output of a programmer’s activity (software, usually) can be a very challenging task. Furthermore, what are our guidelines for identifying good software? Speed of execution (or of development), needed space, conformance to requirements, being readable, battery consumption…? All of these and even more? During my college years I remember taking a course on Assembly language. Our teacher used a simple scoring method: the best program (and thereby the program receiving the maximum grade) would be the one with the smallest count of lines of code, and of course the program would also have to generate a correct output. Well, the lines-of-code scheme is a simple, direct measuring system, but it’s rarely effective. I was reminded of this college course by this text I read today at computerhistory.org:
When the Lisa team was pushing to finalize their software in 1982, project managers started requiring programmers to submit weekly forms reporting on the number of lines of code they had written. Bill Atkinson thought that was silly. For the week in which he had rewritten QuickDraw’s region calculation routines to be six times faster and 2000 lines shorter, he put “-2000″ on the form. After a few more weeks the managers stopped asking him to fill out the form, and he gladly complied.
Needless to say, another proof of Bill Atkinson‘s genius.
We’re working on a new game: DragonScales: Chambers of The Dragon Whisperer. Further information, including genre and platforms, will be progressively released. For the time being, we’d like to share the game’s logo and main screen designed by our artist.
We’re working hard on this new title, and we look forward to publishing additional information in the following weeks. Meanwhile, thanks for passing by!
March 11, 2013 – IKIGames releases The Rainbow Machine, a physics-based puzzle game available for PC, Mac, Linux, Android tablets and iOS (iPad). Game play is based on directing a sphere towards treasure chests to retrieve the pieces of the stolen Rainbow Machine. You will have to solve 140 tricky puzzles and also defeat the burglars: a wicked bunch of kleptomaniac rats!
Key features of The Rainbow Machine:
- 6 islands amounting to 140 playable levels of increasing difficulty.
- Colorful story scenes.
- Retrieve 16 pieces and materials of The Rainbow Machine.
- Find 6 hidden trophies.
- Collect coins for buying items: Rebounder Improvements, Initial Impulse and Invincibility.
- Helper items to reach treasure chests.
- Achievement stars to rate your play.
- Mischievous bosses are awaiting for you at the end of each island.
- Unlock new islands by defeating bosses or rising your score.
- Play a fun Jackpot stage at the end of some levels to win extra coins.
- Tricky puzzles based on:
- Bouncing marshmallows
- Breaking blocks with bombs
- Avoiding saws and monsters
- Bouncing off moving platforms and oranges
- Sliding ice blocks
- And many more game actions.
The Rainbow Machine for Windows is available in English, French and Spanish. The other versions are available in the English language. The game is priced at USD 9.99 for PC (on the game’s website), USD 6.99 for Mac (via Mac App Store) and Linux (via Ubuntu Software Center), USD 0.99 for Android (on Amazon) and USD 3.99 for iPad (on the App Store). Free demo versions are available for try out before purchase (Windows, Mac, Linux, Android). Further information and review copies of The Rainbow Machine can be obtained by contacting IKIGames (@superikigames).
IKIGames is an indie game company focused on development of educational, thought-provoking and family-friendly games for desktop and mobile devices.
Release Date: March 11, 2013
Platforms: PC, Mac, Linux, Android (tablets), iOS (iPad)
Available: via IKIGames’s website (PC and Linux), Mac App Store (Mac), Ubuntu Software Center (Linux), App Store (iPad), and Amazon (Android).
Demos: Windows, Mac, Linux, Android.
Press Kit: The Rainbow Machine’s Press Kit.
The author of LibGDX has just published an excellent and reflective post: THE JVM – A VIABLE PLATFORM FOR (MOBILE) GAMES?. A thought-provoking reading. Our humble answer to this question is yes. But things could be better, much better. For instance, as we all know, the approach to port your LibGDX game to iOS, albeit effective and a victory of cleverness, is notoriously contrived. It feels like we are working with fine porcelain which could break anytime, anywhere. Even for the desktop, Java game development and distribution can pose unexpected challenges. For instance, bundling your jar for distribution on Windows can face surprising hurdles:
- We cannot provide further details because of NDAs, but there are some DRM wrappers which don’t interact well with launch4j outputs.
- Bundling has to take special care to handle the “Missing msvcr71.dll” problem (Java 6. For Java7 your problem will be msvcr100.dll). Take a look at this.
On Mac OS X, things might get even harder. You’ll have to use the AppBundler, work through several configuration files, and even compile your own JRE.
Regarding mobile deployment, well, if you’re using LibGDX, Android is your most natural mobile target. iOS is possible too, but it’s not that natural mostly because Java is not a first-class citizen there. Blackberry devices, which allow for Java development, are not possible at the moment with LibGDX because BB has no JNI support. For Bada you’d use C++. For Firefox OS you’d use HTML 5. Tizen is based on HTML5 (may support Java too). Play Station Mobile requires C#. Windows Phone 8 allows C++, C# and Visual Basic, I think.
That said, we’re not big Java fans. Honestly, we’d rather work on C++, or Python, or C#, or even PROLOG, and we really don’t care that much for the other languages that target the JVM. We’d rather work on Vim with a bunch of makefiles. However, after completing our first game, NagiQ, a word game for desktop, we wanted to be able to deploy our next titles on mobile devices, specifically, Android devices. As Google insists on Java as your first language of choice, we followed the Java/LibGDX route. The great part here was LibGDX. Java is a good language, but what we really enjoyed was using LibGDX: its design is very, very good. What we want from a framework/SDK/library is good abstraction layers and cross-platform capabilities, and LibGDX excels at offering both. Furthermore, you can go lower level if needed, and you can browse and alter the source code if needed. That’s wonderful. We are much less interested on tools. Our dream: LibGDX in C++, coding with Vim, having a set of makefiles for automagically creating versions of our games for desktop and several mobile targets (Android, iOS, BB, PSM, etc). A dream. Just a dream.
Our feeling is that the JVM is getting behind. C# is becoming the preferred managed solution out there on mobile devices. For the time being, our plan is to stick to LibGDX. And as LibGDX is based on Java, we’ll keep using Java.
More than 1 year after releasing NagiQ, I’d like to share a few bits of our experience with NagiQ, and of course, with the engine we used to build it: RenPy. First, we want to express our gratitude to RenPy’s author, PyTom, and to all of the RenPy contributors, including the kind people of the RenPy forums, who are always ready to provide useful feedback and answer our questions.
RenPy is a wonderful engine. What I like the most about RenPy is its robustness and cross-platform wonders. It feels like it might run anywhere and without ever crumbling. In fact, we released NagiQ for Windows, Mac and Linux, and deployment was incredibly easy: RenPy smoothly abstracted the differences among operating systems, and the game runs and behaves exactly the same way on all these 3 platforms. Besides, I think that several games built with RenPy have found their way into Steam and Google Play. I especially recommend RenPy for people creating its first game (NagiQ, developed in 2011, was our first title), because RenPy allows you to focus on what really matters for your game (gameplay, spaces, visuals and story.) As suggested, abstraction is a key concept for RenPy: abstraction is everywhere, it’s high-level and indeed powerful. For instance, right now I’m thinking of RenPy’s ATL, which is a very powerful way for showing displayables and applying several visual transformations (rotation, zoom, etc.) to them. And that’s sweet, really sweet. More so if you’re submitting games to publishers for the first time.
I don’t know of an engine better than RenPy for creating visual novels, and generally speaking, games in which pairs (image, text) are first-class citizens for scene design. NagiQ isn’t a visual novel, but a word game. As a word game, NagiQ is mostly based on simple images and strings. Handling images and strings with RenPy is a breeze. And not just strings. In RenPy you can show images and play music with a single line of code. A single line. You work fast, and you work safe. Further on, you might apply a tiny bit of ATL for achieving a richer presentation.
As RenPy is open-source, you can browse and study its code. You’ll end up learning quite a lot. Furthermore, knowing how things are done internally will allow you to find pathways for implementing any specific feature you might need. For example, several publishers require special handling of the quit message (Alt+F4 on Windows, CMD+Q on Mac OS X.) By knowing RenPy internals you’ll be able to handle this message as needed.
Overall, organizing your game’s scenes in RenPy is pretty straightforward. And you can even use neat transitions between scenes with a single line of code too. Normally, you’ll want a splash scene, a main menu scene, a level selection scene, and of course, the scenes implementing your main gameplay. Several of these scenes might require a lot of UI components whose creation is a piece of cake with RenPy. You’ll have the valuable help of Screens and Screen Language, which will simplify implementation and handling of your game’s screens.
RenPy is extensible. For the levels of NagiQ we required boards made of clickable cells. For doing that, we created a custom Board class in Python. And, again, RenPy proved golden: you can extend RenPy as you wish. We coded our Python class and integrated it to a RenPy scene pretty easily.
Summarizing, RenPy promotes creativity. It’s a very flexible and dynamic system, which doesn’t impose tight restrictions on the way you show and structure your content. The powerful ATL and the Screen Language are dreamy features, an outstanding support for unbounded creativity.
In retrospective, RenPy was indeed the best choice for building NagiQ: it was such a fun experience. And that’s what really matters. Long life to RenPy.
This little post is an answer to a comment in Hacking LWJGL, LibGDX and The Rainbow Machine. By the way, please note that the workarounds discussed on such post are not needed anymore, as LWJGL team has fixed the reported issues.
LWJGL for Mac OS X (using Java 7) is still labeled as experimental. It might contain bugs. As of this writing, there is no official release yet. Thereby, please be very careful if you’re planning to use this experimental branch, and test your game thoroughly. Read this thread to understand what’s the current status of this branch.
Where to get the experimental build for LWJGL?
In the above referred thread you can find the germane links.
Using this experimental branch with LibGDX
Download the experimental branch of LWJGL as explained above. Use the latest binaries, or build it from sources. Now there are several ways to update your LibGDX. What I recommend is to download the sources of the latest version of LibGDX and build it. Before building, update these files:
lwjgl.jar located in libgdx/backends/gdx-openal/libs/
gdx-backend-lwjgl-natives.jar located in libgdx/backends/gdx-backend-lwjgl/libs/
That should suffice. Remember, though, it’s an experimental branch. It might contain bugs.