Spandex Force: Champion Rising in IndieRoyale Bundle

June 14th, 2014

Haven’t gotten yourself a copy of the superhero puzzle RPG Spandex Force: Champion Rising yet? If not, get your rear end over to! Except for my game, you’ll also get these games for a ridiculously low price:

  • Doorways
  • Ring Runner: Flight of the Sages
  • Famaze
  • Restaurant Empire II
  • Knights and Merchants
  • Finding Teddy
  • Turba
  • Don’t Move

I don’t really approve of this race to the bottom for indie / casual game prices. But there’s no denying that my Desura sales have…well…increased quite dramatically as a consequence of this. So I’m a happy camper. The revenue I get from this bundle will go towards things like financing a Steam Greenlight submission, making concept art for my next project, and give a much-needed boost in general.

Spandex Force: Champion Rising isn’t the worst-performing of my games, but it’s by far not the best either – so I’m happy to see that the bundle gave it a bit of a boost. I’m slowly writing a more thorough post mortem for the project, but I’m waiting to see how it’s performed in a few portals before I say anything definitely.

But enough of that. Go buy the bundle!

Spandex Force: Champion Rising Reviews

May 4th, 2014

So, my newest game Spandex Force: Champion Rising is out and while it hasn’t made an impact on the gaming scene in general, there are a few noteworthy articles and reviews:

IndieGameMag reviewed the game in the latest magazine, and also mentioned it in this article:

AndroGaming had an article about the Android version of the game:

Mouse ‘n Joypad reviewed the game:

It was previewed on YouTube by Tomass as well:

Another review on Indie Alt Repeat:

And one more review on Indie Love:

All in all, the reviews have praised the cynical wit, the theme and the concept itself. The gameplay has been hit-or-miss, but that’s actually expected as it does attempt to appeal to both casual and core gamers without committing to either group. But the most surprising thing for me so far is the general critique of the art! To be honest I thought the game looked pretty nice for what it is – a simple 2D puzzle RPG. But I guess one must live and learn.

A more thorough post mortem will follow, and there are more articles and reviews coming up…and the game will appear on a few distribution portals as well shortly. Not to mention that an iOS and Mac version is in the works too. Despite that, I’ve already started looking ahead at my next project – but so far the only concrete idea is a TV production simulation game, where you have to manage egotistical actors and cut soul-selling deals with bloodthirsty networks. We’ll see if anything comes out of that!

Thwack! Zok! Ka-pow! KarjaSoft Releases Spandex Force: Champion Rising

April 11th, 2014

April 11 has finally come, and that means the release of Spandex Force: Champion Rising for Windows and Android! The press release follows below:


Thwack! Zok! Ka-pow! KarjaSoft Releases Spandex Force: Champion Rising

April 11, 2014 — Independent game developer KarjaSoft releases the tongue-in-cheek superhero puzzle RPG Spandex Force: Champion Rising.
Spandex Force: Champion Rising is a hex based superhero puzzler that features match-3 battles against villains and crooks threatening the city of Vigilance Valley. The player has one month to transform an everyday citizen into a superhero, aided by the Blizzard Wizard’s dubious tutoring.

The game is filled with minigames that let the player rescue old ladies in distress, raise the hero’s reputation, or train to enhance his or her physical, elemental and mental powers. The cast includes colorful opponents such as the Heavy Mob, Countess Conundrum and Professor Aphasia, as well as evil robots, corrupt government officials, heroes in need of anger management training – among many others.

Spandex Force: Champion Rising is available for Windows at the price of $6.99, and through Google Play with an in-app purchase of $2.99 to unlock the full version. More information and demo downloads can be found at the official webpage:



Press kit:

About KarjaSoft:

KarjaSoft is a one-man game company owned by Miro Karjalainen that started developing casual computer games in 2006. The first release was the fluffy arcade game Sheeplings in 2007, followed by Spandex Force in 2008, the adventure/pet raising game Wildhollow in 2009 and Spandex Force: Superhero U in 2011. Spandex Force: Champion Rising is the spiritual sequel to Spandex Force and Spandex Force: Superhero U.


Miro Karjalainen


NOTE TO EDITORS: A review version of Spandex Force: Champion Rising is available upon request. Please contact Miro Karjalainen at

So, what are you waiting for? Go download the game already!

A Web Designer I am Not

March 2nd, 2014

At long last I have updated the web design of all my web pages. That includes this blog, the KarjaSoft homepage, the game pages for Wildhollow and Sheeplings…and, most importantly, the Spandex Force series pages.

The word “series” is key in the sentence above. Previously I viewed the Spandex Force and Spandex Force: Superhero U as completely separate pages, for two very different games. However, given the upcoming Champion Rising I’m forced to realize that I have in fact created a series of games. As a consequence I aligned the design for all three game webpages, and added more visible links to each game. After all, if someone likes the humor in one of the games it’s highly likely that they’ll be interested in the other games too.

Which of course means that I will have to make a buy-all-three-games bundle as a promotional item, once I launch the newest game. Not doing so would be criminal neglect from my part!

Another thing worth noting is that the design is…serviceable, but not great. I’ve tried to make innovative and cool web designs in earlier years, but right now I find myself focusing on usability rather than pure looks. All sites are designed to scale up or down according to the device screen size. As I have a Galaxy S3 phone and a 1920 laptop I’ve made the pages scale decently to both of those resolutions – but with a bit of luck they will look good on all in-betweens as well. Bootstrap is really a godsend for all of these nitty gritty responsive design issues – but I wouldn’t recommend anyone to use it plain vanilla style. The only way to get a page you’re happy with is to do some manual editing of certain aspects.

For example, having a completely collapsable menu is something I just don’t like. It looks ridiculous and is much too cumbersome to use on small devices. So I’m overriding a lot of the default behaviors like that. Also, I had to dig into how the @media CSS items work. I know that all “true” web designers will scoff at simplifications like this, but I found that the only way to keep sane is to limit the responsiveness to two levels: @media (max-width: 767px), and @media (min-width: 768px). Keeping track of all other variations outside of that just becomes ridiculously complex.

Finally, something struck me that I should have seen a long long time ago. In my games I’m adamant about always giving the player feedback – scale buttons when hovering over them, or change the opacity, or do something at least. On my web pages I’ve been using non-responsive static images as links for way too long. So, in an attempt to join 2014 I’ve finally employed some simple CSS3 opacity transitions as well, to try to give a more playful experience to the visitor of my sites. We’ll see if it works out well or not.

All in all, I’m happy that I spent these long hours digging into Bootstrap and modifying all the pages. I still have some work left on the actual game as well – but this little detour was necessary!

Designing for Both Mobile and Desktop

February 13th, 2014

The holy grail for a small indie developer is to be able to deploy your game to multiple platforms from a single codebase. Part of this is a question of finding the right framework/technology/platform to develop your game with. There are many available technologies for this – Monkey X (that I’m using for my latest game, the superhero puzzle/RPG Spandex Force: Champion Rising), Haxe, Corona SDK, etc etc. One of these days I’ll summarize the currently available options and weigh the pros and cons of each, but today I intend to focus on another aspect of multi-platform deployment: design.

A standard comment one often hears is that one has to focus. Don’t try to deploy the same game to both web, mobile and desktop; the player behavior is too different, the markets are too separated, the expectations are too varied. This seems to be common wisdom and a general rule to follow.

So, of course I intend to try to deploy my latest game across multiple different platforms. To begin with I’ll focus on Android and Windows, with Mac and iOS coming afterwards. That’s not a marketing or business decision – I simply use Windows and Android privately, so it’s convenient for me.

Here are some details about the different targets:


  • Target resolution: 800×480 or 480×800
  • Allow for screen rotation
  • Small physical screen requires big icons and buttons
  • Players will mostly play in short bursts
  • In app purchases are simple to implement
  • Limited CPU and graphics capabilities
  • Touch controls


  • Target resolution: 1000×600 and 800×600 (widescreen and normal resolution)
  • Full screen and windowed mode to account for various screen sizes and preferences
  • Players often play in longer sessions
  • In app purchases is complicated to implement
  • Unlimited CPU and graphics capabilities
  • Keyboard, mouse, joypad sometimes

Wow. Look at all those differences! How could one possibly cover all of these with one single game design and code base? All of these items can be summarized into these points:

  • Different memory/CPU/graphics capabilities
  • Different types of input
  • Different player behavior
  • No consistent method of payment
  • Multiple resolutions and ratios

Let’s have a look at each item!

Different memory/CPU/graphics capabilities

A player on a mobile device is used to limited resources. A game may not use the latest shader technology, or may not be a full-fledged 3D action-fest. PC gamers, on the other hand, are used to pushing the limits when it comes to AI, graphics, sound, and all other technical aspects of a game.

My approach to this is to have a little extra visual polish for the PC version, but go for the lowest common denominator when it comes to the overall game design. I.e., start with the mobile version and add polish to the existing low-resource designed version. This works for me since all my games are 2D puzzle/adventure/RPG games, and they don’t really require too many bells and whistles. This would not be a good choice for a bigger game, though – just look at how well games are received if they are designed for a low end machine and quickly ported to PC. (Hint: not very well at all.)

Different types of input

See above. The least common denominator is to have a set of coordinates and one-click action, so that’s what I require in my games. I do assume that the player has some way to enter a name, as well – but other than that there is no need for a keyboard at all.

In fact, I always make sure to supply a default name so that the player can simply click “OK” when creating a character. This is to never require the player to perform a cumbersome action like enter a name on a touch keyboard.

Different player behavior

This one is slightly tricky. A mobile game can be played for just a couple of minutes at a time, while a PC gamer can sit for hours on end. In order to attempt to appeal to both I make the following design choices:

  • Continuous rapid saving, to account for people just closing down the app
  • Never let a mini game last for more than a couple of minutes. Each individual puzzle or dialogue must be short, even if there are many of them
  • Tell a continuing story to allow for longer sessions, but have obvious breaking points every 15 minutes or so
  • When resuming a game, always show a summary of the currently active quest

This is not optimal design from either the mobile or PC perspective – but it will mean that the game can be enjoyed both in short bursts and for several hours.

No consistent method of payment

Common wisdom today is that in-app purchases is the way to go for mobile. Small microtransactions for various items in the game. That is not the common way to earn money in a PC game, however.

As far as I can tell there is no golden rule for how to handle this dilemma, so I have tried to come to a compromise: the PC version will be distributed in a demo/real version, and the mobile will be distributed as a free demo game where you can unlock the full game with a single IAP. Let’s see if this experiment works out.

Multiple resolutions and ratios

All of the other problems seem pretty trivial in comparison with this!

One obvious way to handle this is to have one set of assets for each target resolution. That gives the optimal player experience, but also involves most work for the developer. All assets need to be customized, the build procedure for the game needs to account for multiple asset locations, and – most importantly – every change you do to one asset will need to be performed on each other platform.

That’s simply too much work for a one-guy team like me. So I decided early on to reuse as many assets as possible between platforms. Later, I decided to try to reuse all assets for all platforms.

“That’s insane!” I hear you cry. “It’ll never work!”

Well, I think it’s working pretty well so far:

  • All GUI elements have the same resolutions on all platforms. This means that a popup will look big on a mobile phone, but slightly smaller on a PC. I can live with that.
  • I’m using a fluid layout system where GUI items located in the top, bottom, left, right or center. Rotating the device calls a specific OnRotate() method present on all game screens, that modifies the positions of GUI elements.
  • The maximum width of any single GUI item (such as a popup) will never exceed 480 pixels, to account for a mobile phone in portrait mode.
  • All backgrounds are centered, and scaled to cover the current device height. This means that you only see the middle of the image in mobile portrait mode, and that the 1000×600 PC version is scaled up from 800×480. But the quality is actually quite acceptable despite the scaling.
  • One exception is the game map. This one is never scaled, but different device resolutions means that a differently big portion of the map is shown, and the player can scroll around to see the rest.

All in all, it took some effort to make this work. And sometimes there could have been a better result if I had gone for a single specified resolution, such as in this power up screen:

I had to fit the power preview somewhere, and the best choice ended up being showing it in a separate container to the right of the main dialog. In portrait mode the preview window is simply placed above the main dialog instead. It’s not optimal, but it works!

All in all, I see no reason why the game wouldn’t work pretty well across all platforms. The release date will probably be April 11, so I’d better get off my rear end and get everything done soon so I can see what the audience thinks!