Well done, but.. How did it come about? There’s a billion of them!
Like most days, we sat on the sofa, watching TV and fiddling with our phones. The o/h is addicted to two games at the moment, Genies & Gems and Solitaire. Unfortunately she’s never been interested in my game TapPhrase, nor the epic space adventure I slaved over, nor even the Dachshund game I’m making. I’ve always wanted to make a game she would play, but never managed to hit the mark. Then I hear her grumbling about adverts interrupting her solitaire game.
Now, at this point, sane people find the highest rated app that has either a ‘no adverts’ purchase option, or a paid app without adverts. But after further discussion her criteria was:
- No adverts, ever.
- No silly animations.
- No clutter on screen.
- No score visible and no time visible.
- Absolutely no sound, ever.
- Absolutely no Facebook or social gifting or achievements/game centre.
- No in app purchases.
- Just VERY SIMPLE.
The next day, as she left for work, I grabbed Unity, downloaded a pack of cards from the Asset Store for a few dollars, and set to work. By the time she’d come home, I’d already built the first version and put it on our Nexus 7 tablet.
She immediately found bugs, which I fixed and iterated.
The first version just used flat icons for buttons, didn’t even keep score. It didn’t even know when the game was finished. There were silly bugs but it was playable. And she started to play it in preference to the one she’d downloaded.
What did you do next?
I soon realised that when I fixed a bug, another got introduced. The game logic was all over the place (what do you expect from a day?). So, it was time for the really dull bit. Automated tests. And introduce a new test every time a bug is found that I hadn’t covered.
This is something I do day in, day out, so I wasn’t unfamiliar with what I needed to do. And I was also depressed with the volume of work ahead of me.
I started to write out names of functions for my tests, and these described the expected behaviour I wanted my game to exhibit. I then started to look into how you can do automated tests in Unity, and how I could rearchitect using inversion of control principles and dependency injection, whilst fitting into Unity’s MonoBehaviour classes. With Unity, nothing is ever straight forward, so this was initially harder than normal (struggling with .Net 2.0, C#3 or 4). There’s also the problem that Unity relies on the update loop and processing for coroutines, so I had to fake that too!
Anyway, in short, that took me a good month or so of evenings and weekends to re-architect with interfaces, my own minimal IoC class, time service, swappable shuffling services (so I could fake near-wins), input interfaces, so I could pretend I was dragging cards from code – you name it – it’s mockable. In all there’s 86 tests, and there’ll probably be a few more yet as I haven’t tested everything!
What about those flat icons?
I can’t draw. So I looked around at tutorials on how to draw buttons, and I managed to combine flat icons and a glass effect bubble button using Inkscape.
Here’s some iterations:
So what you going to do next with it?
Well, my mind was buzzing, I wanted to add a disco mode with unicorns, rainbows and laser beams. Turn 3 variants, multiple card covers, background changes, funky music, achievements, social timed battles.
Then I remembered – KEEP IT SIMPLE. VERY SIMPLE.
So at the moment – there’s no planned improvements. Unless people follow the Facebook page and tell me they want them, even then, if it interrupts pure play – it’s not in.
I’d rather create a new game and charge 99p for the all-singing all-dancing unicorn laser disco super happy fun fun version.
How do you make any money?
I’ve learned from TapPhrase, that if you set out with money in mind, you’ll pour hours and hours into the game, you’ll worry about capitalising on it, you’ll fret about the minor things and try to include every thing you can to make the customer happy, or to meet their expectations. And then the realisation hits you.
ITS HARD TO GET NOTICED.
Paid advertising, tweeting, Facebook sharing, asking for reviews, avoiding getting banned from reddit – It’s not easy. It’s demoralising, embarrassing and unappreciated. No one appreciates the effort you’re putting in. It can be quite soul destroying. All those hours, all that money, was it worth it? I had a 72 hour marketing plan for TapPhrase, and it just didn’t take off. So I stopped doing it for the money – and did it for the hell of it – It makes it less painful to walk away!
So are you really doing it for free? Why not just give it to the o/h and ignore everyone else?
Well – I figured other people might like what she likes.
Nothing makes me happier than to hear someone is playing my game, or has enjoyed it.
Really? There’s no ulterior motive?
Ok, there’s a tiny, microscopic chance that other people will love Very Simple Solitaire, and maybe follow me on twitter/facebook. Then, out of that tiny pool of people I might amass some kind of following. Then, when I release my next game, I might just have a few thousand helpers who might just do me a solid and like/share the game to get me started.
BUT, I won’t advertise in Very Simple Solitaire. Nothing will break my integrity on the original promise.
Back to reality, – I’ll just take the satisfaction and notch up another released game on the app store!
Do you plan on bringing it to Android? Windows? Mac? PC?
Yes. But that takes time – just to fill in the details and provide the appropriate screenshots and legal documentation – YOU WOULDN’T BELIEVE IT.
I tried searching for it on Facebook – why isn’t it there?
It takes time for games to be listed, upto 4 weeks – and I’ve not (at the time of writing) submitted it to the App Centre. Mainly because I have to draw about 5 different icons for it! Even then, they don’t approve any old rubbish!