Saturday, December 12, 2015

Anode Steam update

We've just pushed an update live for Anode that adds support for Turkish! This translation is courtesy of the folks over at OyunCeviri, who have a project dedicated to getting more games in their local language. Enjoy!

Check it out here!

Tuesday, October 27, 2015

Anode, Gentoo Linux, and Unity3D

One of our customers for Anode attempted to the run the game on their Gentoo Linux machine and found that it immediately crashed.  Unity did not provide a very helpful stack trace for us to dig into.

It took almost a week and a half of research, but we finally narrowed down what the problem was.  Our customer who discovered the problem was incredibly helpful during the process.

Suffice to say, when we built Anode using the most current version of Unity we had available (5.2.1f1, also tested more recently with 5.2.2f1 and 5.2.2p1) and had sound assets referenced in the scene file, the game would crash, but only if we ran on Gentoo Linux through the Steam client.  If we ran via the command line or a desktop shortcut, the game was fine.  We also confirmed this with a simple Unity project started from scratch.

One of the symptoms of this problem we noticed was during the Unity build process, where it would warn "Failed to add the asset file size for sharedassets0.resource".  If we referenced a sound asset, this warning would appear, and we'd get the crash on Gentoo.  If we removed the sound reference, the warning would not appear, and the game would not crash.  This is also happened when we tried to include sound assets in the Resources folder rather than a direct scene reference (though in that case the warning was "Failed to add the asset file size for resources.resource").

This Unity forum thread talks a lot about the warning, but in the end concludes that it's harmless, and in fact Patch 4 for Unity 5.2.1 suppresses the warning message during the build.  We had seen this warning earlier during the development of the game, but it did indeed seem harmless, since the game ran find on Windows, Mac, and Ubuntu Linux.  However, even with 5.2.1p4 suppressing the warning, we still found the same Gentoo crash with the builds it made.

We currently have an issue submitted to Unity about this, and will keep an eye on it.

Saturday, October 24, 2015

Anode localization update

- Steam link

We just pushed live an update adding five new languages to Anode: German, Spanish, Russian, Japanese, and Korean.  These are the top selling languages with our other puzzle titles, and we're hoping those communities enjoy the game!

This update also includes a few other minor additions.  Notably the leaderboards support paging now, and show you specific rank numbers.

Friday, October 16, 2015

Asteroid Belt Live Wallpaper v2.21

  -Update: Higher res default backdrop
  -Update: Higher res planet textures
  -Update: Thinner orbit rings
  -Update: Changed minSDK Version
  - Google Play Link

This is a modest update increasing the resolution of some artwork, and making a few other small adjustments in the process.

Monday, October 5, 2015

Anode now available for purchase!

We ironed out the last of the issues over the weekend, and the game is now available on Steam!  Anode turned out to be a fun, polished product and we're hoping folks enjoy playing it.  We look forward to seeing what the leaderboards look like in a few days.  :)

Halloween Live Wallpaper v1.61

  - Bug Fix: shader error on some devices
  - Update: Nicer ghost rendering
  - Update: More triangles on jack-o-lanterns
  - Google Play Link

This is mostly a bug fix update, as some folks were getting shader compilation errors on their device.  I was surprised to discover the problem here -- the pixel shader was using a varying that was no present in the vertex shader.  I would have expected that to just blatantly break on any device, but apparently it's so tolerated that only some Galaxy Notes and things with the same chipset demonstrate the problem.

Beyond that a few minor improvements were added.  In particular the ghosts do a z-prepass now so they don't overlap themselves when rendering, which makes their arms cleaner.


Sunday, October 4, 2015

Anode trailer!

Took a while, but we finally have a video suitable for the promo slot on Steam.  Check it out!

This was created working with the guys at TrailerSquad, who did a great job.  A game like this is a difficult subject since it's all about the gameplay mechanics, without much in the way of background motion.  I feel like this gets across the often-frantic fun that comes with this type of game, and even explains the mechanics a bit in the process, but keeps plenty of motion at the same time.

Wednesday, September 30, 2015

Bug Bashing & Feedback Fun

We've been continuing to iterate on Anode, and it definitely feels like we're approaching the finish line.  Various gameplay and presentation tweaks are getting done but they're getting progressively more niche.

Fun stuff that happened over the last few days:

- Particle effect for hovering blocks!
- Handicap rows now use a pre-defined arrangement that is WAY more handicapping.
- Explosions distort the background.  We're a modern game now!
- Mouse cursor gets out of your way if you're not using the mouse!
- Messages about your multiplier don't stomp over more important game-status stuff.
- You can now set the antialising level separate from the overall detail level.
- You can now be warned about up to 28 incoming blocks!
- Tilty panels!  Snazzier!

And so on, things have been busy.  The game plays and runs well and things are looking good to have it up for download in a few days!

Monday, September 28, 2015

Anode store page is live!

Now up for all to see here:

We've been continuing to polish things and have smoothed out a lot of minor wrinkles and added plenty of small details to make things feel better and more understandable.  A trip to an indie game get together taught some good lessons and we've been sending out beta keys to get gameplay feedback from players.  I'm excited to get this published and out there, as it's a great title that's fun to play!

Wednesday, September 23, 2015

Anode - A falling block puzzle game!

Nobody makes these anymore.  I'm not sure why, but we have a lot of fond memories of Puzzle Fighter and Columns, so wanted to throw our hat in that ring.  Allow me to introduce Anode!

We've been working on this for the last three months or so, starting with a very rough prototype and gradually progressing though more and more refinement.   Several single player modes and competitive multiplayer are supported, along with achievements, online leaderboards, and plenty more.

Anode incorporates concepts from a number of other games, and introduces some of its own.  Colors can match diagonally or laterally, and don't go off until touched by a detonator -- something you have control of.  Set up chain reactions that can pay off later, or keep your bin clear, whatever works best for you.  Earn items to help clear the bin, stop your blocks from falling, or to punish your competitors!

Speaking of competitors, local multiplayer is fast and fun, with full support for either keyboard play, or a pair of gamepads, or whatever combination you like.  Break more than two blocks in a single sequence and any additionals get sent to your opponent's bin!  Work fast, and try to be the last man standing.  Set starting handicaps per player if things seem imbalanced.

We've implemented over thirty achievements, and have a variety of leaderboards covering all the game modes, including play with or without items.  All this is up and working now, with just some final polishing items holding things up.  Anode will be available on Steam in the next couple of weeks.

Just set up an IndieDB page too, check it out for a couple more screenshots!

Saturday, September 5, 2015

A picture!

Still sort of settling on a name, but I was taking screenshots of a project we've been working on, and this one was pretty snazzy.

Friday, September 4, 2015

Blue Skies Live Wallpaper v2.27

This is a minor update that fixes a tiling issue with one of the sky images, and inherits a few minor updates to the underlying engine we use.

Monday, August 24, 2015

A Linux VirtualBox for Steam

Over the course of this year, I've had to re-create a virtual machine running Linux with OpenGL support three separate times.  The first two times, it proved to be a minor nightmare of searching through forum posts trying to find the right combination and order or library installations to make it happen, and I wasn't confident enough in what I actually did to try to write it down as the canonical method.  But this third time, the whole process went smoothly, and so I'm going to record it for posterity (read: me in a year).

This process will get you a virtual machine running Ubuntu Linux 14.04 LTS 64-bit, with enough OpenGL support that Steam will correctly install and run games built in Unity.  It won't necessarily run them fast, but they will run.

  1. Download and install Oracle's VirtualBox.  At the time of this writing, I used version 5.0.2 on my Windows 7 machine and test build 5.0.3-102290 on my Windows 10 machine.
  2. Create a new virtual machine.  It should be set for Linux, Ubuntu 64-bit, and the following:
    • 16Gb virtual hard drive (or more)
    • 2Gb RAM (maybe more, maybe less, but this is ideal)
    • 128Mb video memory (the max VirtualBox supports)
    • 3D acceleration checked
  3. Get Ubuntu 14.04 LTS 64-bit.  Download the ISO image from the website.
  4. Start up the virtual machine.  When it asks you for a startup disk, point it at the Ubuntu ISO.
  5. Use the standard install options, and ideally download updates along with the installation.
  6. Once installed, update once again with the latest updates.
  7. Install OpenGL library dependencies.  This step is rather undocumented.
    • Open a command prompt/terminal.  Use Ubuntu's "Search your computer" icon at the top of its system bar and enter "terminal".
    • Run the following: sudo apt-get install libglapi-mesa libcheese7 libcheese-gtk23 libclutter-gst-2.0-0 libcogl15 libclutter-gtk-1.0-0 libclutter-1.0-0  xserver-xorg-input-all
    • Source
  8. Install the VirtualBox Guest Additions.  In the VirtualBox window, go to Devices -> Insert Guest Additions CD Image
    • Make sure to reboot after this installation
  9. Now you should be able to go to the display settings and set the window size to something better than 800x600.
  10. Install Steam.  Go to the website in the virtual machine, download and run the Linux installer.
    • The Steam package downloaded from the site will install an actual Steam installer.
    • Running that installer will prompt a terminal window to install further OpenGL dependencies.
    • After all of that is installed, the normal Steam client will install and update
At this point, Steam should be ready to log in, and you can proceed as normal.  Log in to your account, install the games you wish, and test.

Edit 2015/09/02: I changed the installation order slightly to install the extra OpenGL dependencies before installing the VirtualBox Guest Additions.  If you followed this guide before the order change, you may need to reinstall the VirtualBox Guest Additions.  Make sure the guest additions ISO is ejected, then reinsert it and follow the installation procedure again, the reboot.  Similarly, if you start up your VM and see the error "VirtualBox kernel service not running" (and/or your VM resolution is reduced down to 640x480 or 800x600), try reinstalling the guest additions and rebooting.

Tuesday, July 14, 2015

Blender editor script for Unity

We've been doing a lot of Unity development recently, and one of the things we find really awkward about it is its Blender support.  Unity's preferred axis doesn't match Blender's, in particular.  We've been using an editor script to help this, which I figured I'd post below.  It does the following things:

- Defaults to not importing materials.  It seems to cause a mess more than anything so we create these by hand.  This is easy to disable if you don't like that.
- Swaps the Y and Z axes so that up in Blender is also up in Unity, and fixes the right/left thing with the X axis.
- Adjusts coordinates so that the Blender object's origin ends up 0,0,0 in the imported mesh.
- Lets you ignore a mesh by putting _ at the start of its name.  For example, an object in the Blender file named "_reference" would not be imported.

We've been using this for static models and it's generally behaved well.  To use, copy/paste the below into a file called BlenderTweaks.cs, and put it in your Assets/Script/Editor folder.

using UnityEngine;
using UnityEditor;
using System.Collections.Generic;

public class BlenderTweaks : AssetPostprocessor
public override int GetPostprocessOrder()
return base.GetPostprocessOrder() + 10;

void OnPreprocessModel()
// Don't import materials.
ModelImporter modelImporter = assetImporter as ModelImporter;
modelImporter.importMaterials = false;

private void OnPostprocessModel( GameObject gameObj )
// Debug.Log( "OnPostprocessModel: " + );

MeshFilter[] meshFilters = gameObj.GetComponentsInChildren();

for( int i=0; i
Mesh mesh = meshFilters[i].sharedMesh;

if([0] == '_' )
Debug.Log( "Ignoring mesh: " + );

Component.DestroyImmediate( meshFilters[i].gameObject );
Component.DestroyImmediate( meshFilters[i] );
Component.DestroyImmediate( mesh );
RotateMesh( mesh );

meshFilters[i].transform.localPosition =;


private void RotateMesh( Mesh mesh )
//switch all vertex z values with y values
Vector3[] vertices = mesh.vertices;

for( int i=0; i < vertices.Length; i++)
vertices[i].Set( -vertices[i].x, vertices[i].z, vertices[i].y );
mesh.vertices = vertices;

//recalculate other relevant mesh data

Friday, July 10, 2015

Ten new TransPlan levels!

We've just pushed an update to Steam that adds a new node ("Master II") along with ten more levels! This will be following shortly to Android and iOS, and includes a new achievement as well.

Wednesday, July 8, 2015

Friday, June 26, 2015

Unium & Transplan now available on Kindle!

... or at least all the "fire" variants anyway.  These are straight up purchases, no trickery with ads or anything, and we're hoping all the Kindle users enjoy!  Links are below!

Unium on Amazon Kindle
TransPlan on Amazon Kindle

TransPlan v1.0.1

- Bug Fix: Fixed occasional issue with undoing pins
- Bug Fix: Fixed save problem with Master achievement

This update clears away the last of the minor bugs we're aware of, in particular the Master Planner achievement no longer requires that all the master levels be completed at par.  This was mostly an issue since the description made no mention of that.

A bug was also fixed that caused pins to be relocated incorrectly when using undo on a mobile platform.  Sorry about it!

Thursday, June 18, 2015

TransPlan now available on Android!

Get it for free here!

Now complete with full support for both portrait and landscape!  This incorporates all the little fixes that have happened to the Steam version since release, and incorporates both Google Play Games achievements and cloud saves as well.

We're taking a bit of a different tack with the mobile versions of the game.  As outright selling titles doesn't seem to work too well on mobile these days, TransPlan is free on both Android and (soon) iOS.  Occasional interstitial ads will appear between levels, and you can use an in-app purchase to disable these entirely if you wish.

Hopefully folks enjoy!

Monday, June 8, 2015

TransPlan now available on Steam!

Just finished off the last few issues and pushed the publish button!  Check it out here!

We did some last minute art revisions to unify the art style a bit further, added a few more achievements, got in a  couple more translations, and so on.  Lots of little things add up to a nicer product, and we're hoping folks enjoy!

Wednesday, May 27, 2015

Announcing TransPlan!

In addition to working on Canabalt, we've been tinkering the last few months with a 2D physics-based puzzle game.  After a bunch of waffling we've got a name, finally, and thus a logo:

The objective is simple, get an object from point A to point B.  Each level has a number of physics elements in it, which you can erase, or activate, or pin.  Pinning an object allows it to swivel on that point, which allows you to build simple machines causing your object to roll or fall or be thrown or what have you.  Get your object to the destination, and ideally do it in an optimal number of moves.

I'll make a few more posts with example levels as we move forward on making this something actually shippable!

Unium v1.3.2

  - Bug Fix: Local pref save data

This is a fairly minor update that fixes a bug with local pref data.  Previously the game would sometimes forget your volume preferences, that should be cleaned up now.

Wednesday, April 29, 2015

Canabalt HD on Steam!

And it goes on sale tomorrow!  Right here!

This is a new version of the classic infinite run game, with both classic and HD styled artwork available.  It has integrated Steam achievements and leaderboards, support for cloud saves, support for community features like trading cards and backgrounds, and more!

We worked with Finji to develop and list this new version of the game, and hope folks enjoy it!

Friday, April 3, 2015

Unium v1.3

  - New Feature: Localization into Japanese, Korean, Portuguese, Russian, French, German, Spanish
  - New Feature: Support for Play Games cloud saves
  - Update: Several additional puzzles
  - Update: Two new achievements: Recessive & Medium III

This brings the Android version of Unium in-line with the additions made for the Steam version released a few days ago.  Localization all around, cloud saves, and additional levels and achievements.  Dig it.

Thursday, April 2, 2015

Unium on Steam!

We were greenlit a couple of weeks ago!  We started in immediately to get all the achievements set up, design a few new levels, and localize the game into a variety of languages.  As of friday, we're now for sale on Steam!

As part of the Steam integration I ended up designing a series of abstract backgrounds to serve as profile images and trading cards.  Here's a couple I particularly liked:

Tuesday, February 10, 2015

Unium v1.2.0

  - Update: Renamed some levels for better tutorial-ness
  - New: Five new Easy puzzles!
  - New: Review link on credits page

This is a minor update that adds a handful of new Easy puzzles as a bonus.  We've added a simple review link to the credits page, and have renamed a couple of the entry levels to more strongly tutorial-ize what to do.

This update is live on Play now, and will be available on iOS in a few days.

Saturday, February 7, 2015

Watch Faces v1.2

This updates all five of our watch face projects to v1.2.  That means Galactic Core Watch Face, Storm Watch Face, Koi Watch Face, Autumn Watch Face, and Clock Tower Watch Face.

  - Update: Three additional fonts available
  - Update: New face style: Large Digital
  - New Feature: Can display mini digital time on analog faces
  - New Feature: Watch faces resize to get out of the way of notifications

This is largely in response to user feedback, adding a few additional fonts to the list (wider ones, in particular) and adding a new watch face style that's a much larger digital readout.  Additionally, a pref now exists to display a small digital readout of the time even on analog faces.

We've also got the watch faces paying attention to active notifications now, and you'll see the face scale down to get out of the notification's way.  Several of the built-in faces do things like this so it seemed appropriate to follow suit.


Tuesday, February 3, 2015

Unium now available on Android and iOS!

Unium is now published on both Android and iOS!

We technically published on Android a short while ago while waiting for Apple's approval process, and so far the feedback has been very positive.  We hope everyone enjoys the game!
While you're at it, don't forget to check out our Steam Greenlight to support the publishing of a PC version!

Wednesday, January 28, 2015

Fireworks Live Wallpaper v1.2

  - New Feature: Additional firework type: Sphere
  - Update: Faster particle rendering, more particles
  - Google Play Link (full)
  - Google Play Link (free)

We updated our particle system recently to handle large numbers of particles better, and so this update moves a number of the firework effects over to that method.  We've also added a new firework type called "sphere" that uses a very large number of small particles.

A number of the others got their numbers tweaked and in general things use more points than they did previously, and feel a little more full as a result.

Monday, January 26, 2015

Unium is in approval!

We've checked all our boxes, and are on our way to shipping the game.  Twenty achievements, over 100 levels, well behaved in both landscape and portrait on a wide range of devices.  Oh, and pretty sweet music too!  To the right is an iOS landscape screenshot.

As a result Unium is now waiting for Apple's thumbs-up, and then we'll get everything available and ready for purchase!  We're really happy with how much puzzle we achieved from such a simple concept, and hopefully players agree.  To begin with we're keeping it simple and simply putting the game for sale, no ads, no in app purchases, etc.  We realize this is a more difficult route to monetization these days, where pay-to-unlock is king, but hopefully folks will take a chance and enjoy themselves.

The puzzles work well with a mouse too, we we'd love any support for our Steam Greenlight campaign.

Saturday, January 17, 2015

Unium Progress & Greenlight

We've moved forward steadily over the last few days.  Currently we stand at 97 puzzles, just a few more to go to break the three-digit barrier!

As of today achievements work for both Play and Game Center, and we fixed a few outstanding issues.  The main remaining work is sound, and based on early work I'm quite optimistic about the results.

I've gone ahead and set up a Greenlight page for making a Steam version as well.  We have a fully functional PC version currently and it plays well with the mouse, the main work we'd need to do is options for resolution and implementation of Steam achievements, so I have no doubts about being able to deliver if we're approved.  Any folks that are interested, your support on the Greenlight page is much appreciated!

Thursday, January 8, 2015

Unium: Developing a minimalist puzzle game

A little while ago we started working on a simple puzzle game, with just about the simplest goal I can think of -- drawing a single line.  You're presented with a grid of tiles, and can start drawing a line from any point on the grid.  Any tiles you pass over with your line flip color, and your goal is to turn all the black tiles white with a single unbroken line.

There are a couple of wrinkles to the formula.  Grey tiles don't change color, so you can optionally pass over them.  You can also overlap the line, causing the underlying tile to flip each time: white becomes black becomes white again.

So far, this has turned out to be a pretty fun and contemplative puzzle game, so we're working our way towards making it into something we can actually ship.  Along the way we've developed a stark, fairly minimalist aesthetic feel that I'm pretty happy with.  Take a look and see what you think!