starific beta

How I Scored 1000 Beta Users In a Day

Edit: Skip to the section titled “I Thought This Was About User Acquisition” if that’s all you want to know about.  Everywhere else I’m just speaking my mind 🙂

How I Scored 1000 Beta Users In a Day Without Paying

As a 1-man Indie Mobile Game

Lots of talk about the indie apocalypse.  You’ll see posts like this or that.   But you know what?  There’s never been a better time in human history to be creative.  And that goes as much for independent developers as it does for musicians.   Artists glorify the days of Michelangelo but today you don’t need to suck up to the local tyrant to do what you love.  You can take it directly to the market, which in this case is anyone who likes it.   You can be Justin Bieber (for better or worse).

If you like something, you can be sure other people will too.  Despite all the fuss, we’re not so different.  Everybody has needs, they want to be known and they want to share and we all want to feel like we’re doing something for a good reason.  And there’s so many of us that you’re bound to share formative experiences with someone else (probably a lot of someone elses).

With the internet it’s trivial to find your tribe, that clique of people that you’re compatible with.  If you like one-night-stands, well there’s an app for that.  If your dog likes one-night-stands, there’s an app for that too.

What Controversy?

So why all the hub-bub from independent developers?  Lower entry barriers are a double edged sword.  On the one hand it’s easier than ever to make things and show people.  On the other hand it’s easier than ever to make bad things (cf. Mario Maker).   And just like any field where entry barriers are low, it seems to be winner take all.

But it isn’t winner take all.   A fraction of a percent of a AAA game’s revenue is a fortune for an indie.  No, your platformer game probably won’t take off like Super Meat Boy.  No, you probably won’t make the next Crossy Bird game.  But there’s a good reason for that.  Because what you’re doing isn’t original or it isn’t being communicated that way.  Sorry, but those are the breaks.

The world is a jungle, and if you want to be noticed you need to make noise, or show your tail feathers.  Communication is key.  It’s not that you need to know people, you can get far with cold emails.  But you need to know how to present yourself and what you’re doing.  If someone has a vested interest, you can show them how what you’re doing touches on that interest.  If you’re talking to press, you can show them how what you’re doing will get them readers.  This isn’t a post about communication so I’ll leave it at that (but you can find the template I use for press emails here).

If you want to be noticed, here’s a shortcut:  Do something nobody else has done.  There are two ways to go about it.  You can find something that people already like and then “plus one” it as Walt Disney would say.   Or you can be a contrarian, which involves looking at where everyone else is going and going the other way.

The Disney approach abounds, in fact Disney is using it right now on Star Wars.   The contrarian approach takes a little more gusto.  Martha Graham redefined what dancing was by breaking all the rules:

Personally I don’t care for modern dance.  But at the time it was new and it made her rich beyond  her dreams, not that she was in it for the money (she was homeless).   Novelty is like a guarantee of attention.  They say everyone gets 15 minutes of fame.  Well if you’re smart you’ll leverage those 15 minutes into something smaller that lasts a lifetime.   Christopher Nolan’s advice for aspiring directors was to always have the next idea ready.  You never know who’s going to see what you do and want to back you in the future.   After Chris made the Following he was approached about making another movie by a powerful producer.  He pitched Memento (one of my all time favorites) and skyrocketed into the big leagues.

Then what?

After you’ve come up with something original, congratulations.  You’re now eligible for massive success.  But that’s not a guarantee.  There’s no guarantees in this world.   Everyone imagines themselves a prodigy and counts their future fortune.   Real excellence belongs to extremes.   Now you work on the other 80%.   You’re too close to be objective, so you get some perspective.  You find out what resonates with people and what doesn’t.  You turn up the former to eleven and you cut out the latter.

Sure you might hear stories of overnight success.  Some guys programmed the game over 3 months and then got 10million downloads.  Great.  But you know what?  What really made that game great wasn’t the coding, or even the initial spark.   It was a decade or more of experiences brewing while they lived their life.  They just happened to turn on the lights in the attic and saw the writing on the wall.  It doesn’t take long to put pen to paper after that.    And the beautiful thing, is everyone has that.   Emerson said every genius is a successful diver in a sea whose floor of pearls is all your own.

starific user acquisition pearls

You can call that the long route to success.   Drawing on your experiences, what makes you unique and individual.  You’re like a conscious fingerprint.  There’s no one else like you, so take advantage of it.   That doesn’t mean “be yourself”, I’m not your mom making you feel better.  It means take a higher a perspective, use what nobody else has.

Number one is an odd number.   Being eccentric will put people off, so I don’t recommend it, but you do need to be unconventional.   If everybody uses Facebook, guess what you should do?  I don’t mean contrarianism for its own sake, (although Martha Graham has proven it can work), but I do mean examining the behavior of yourself and those around you.

But what if you can’t do what you want to do?  What if you don’t have the skillset, or discipline?  Well then my friend, you need to go back to school.   But not university, I mean you need to learn how to master yourself.   Confucius’ big idea was that everything starts with the individual.   If the father is good, the family can be good, if the family is good, the village can be good, … and so on.  How can you expect things to work out if you need an academic body of 50 year olds to tell you what book to read?

If you know what you need to do and you know how to do it, then it’s just a matter of time.   This is 80% of the process because it’s hard work.  It’s not clever work.  You’re not exercising your mind by coding your 20th menu.  But those animations are what will delight people.  That’s how you’ll exceed expectations people didn’t even know they had.   And that’s the real key to success.

I Thought This Was About User Acquisition

starific analytics flurry googleplay

The above is my Flurry analytics chart for unique sessions per day, on Googleplay.  I worked on Starific for about 6 months.  Last summer I had never written a line of code in my life.  After teaching myself to code, I decided it would be a good idea to make something commercial.    How I made Starific is out of scope, but you can read about it here (in one word: GameMaker).

After polishing Starific for another 3 months, I felt it was good enough not to be ignored.   So I decided to share it.    You should share your work early and often but the better your work is the easier it is to share with people you don’t know.   Emmy Jonassen‘s number one tip for marketing is to make irresistible press materials.

So I contacted Matthew Clode and asked him to make me a kickass trailer. And that’s what he did. And that’s where my entire marketing budget went. After that I spent a week contacting press.  There was interest.  More press played the game than wrote about it but eventually I got a few articles written. For developers: expect a low response rate, not everyone is looking for a story that day, or that type of story. But if the game is good enough and you show it in the right light you’re bound to get coverage.

A couple journalists wrote stories. Stories started popping up in Asia, from guys I never emailed. Pretty soon I had 2000 unique sessions on the HTML demo and my Android numbers were climbing. The next day I was contacted by the guys at Prelaunch.me, they said they read Carter Dotson‘s story on TouchArcade. They wanted to feature me. I wasn’t exactly sure what they did but I let the dice roll. We limited beta signups to 1000. All the spots were taken in a few hours.

prelaunch.me starific

It turns out I like very much what PLM does. It’s a discovery platform for mobile gamers. The guy I spoke with told me they got started in December 2014 and have been building their user base ever since. And with each cool indie game they feature their user base grows. So it’s a win win. I was curious how they planned to keep the app from becoming like every other failed beta service. They told me they use strict curation, most of the apps they feature are things they personally selected rather than being sponsored by a huge publisher (though they do that too for a fee). Essentially, they ask you if they can feature your app, not the other way around. That’s why their user base sticks around, and why it can be such a boon.

Their community was a delight to share my game with. They’re tolerant of bugs and send in reports. They’ve helped me hone in on major issues that could have torpedoed launch. PLM isn’t obtrusive so they all leave their notifications on and know when you post news or updates. The PLM guys have been wonderful to work with and are setting me up for the preregistration service where users can signup to receive a notification on launch and download the app (which is awesome for ranking in the app stores).

Playing with their app reminded me a bit of Steam but for mobile.  So I think they’ll be around for a while and we all know mobile.  It doesn’t make a big difference whether you’re docking your device in some kind of desktop-terminal or you’re using a touch screen.   People will be carrying around their computers in their pocket.  In the future the distinction won’t be between mobile games and console games and PC games.  It’ll be between touch games, controller  games, and keyboard & mouse games.

Sum It Up

So there you have it.  What have we learned?

  • Be original: Plus One or Contradict.
  • Be so good they can’t ignore you.
  • Share what you do, and don’t take rejection personally.

If you’d like to get in touch, about business or just to chat, I love talking to other indie developers.  You can reach me at hello@bevelededge.co.

HTML5 Mouse Extension for GML Devs

html5 game maker studio extension

Game Maker: Studio is a fantastic cross platform framework, especially if you’re getting your feet wet.  But you’ll encounter some quirks and limitations on the HTML5 module.  Notably, you can’t detect mouse position or button presses outside the canvas.

Don’t worry, Alex has your back.  I’ve searched the internet far and wide and have coded/compiled an extension that will do all that for you and more.

Download Here

To install just drag the .gmez file into your GMS project’s resource tree.

Methods

HTML5_mouse_check_button(mouse_button)

Parameters: “mb_left” “mb_right” “mb_middle” or “mb_any” must have quotes

Returns true if the mouse_button is pressed, otherwise false.

Example Script:

/// scr_mouse_check( mouse button )

if (os_browser == browser_not_a_browser)

//regular mouse check for non-HTML5 platforms
{ return mouse_check_button(argument0); }
else
{
// Find the correct string to use.
switch (argument0)
{
case mb_left:
i = “mb_left”;
break;
case mb_middle:
i = “mb_middle”;
break;
case mb_right:
i = “mb_right”;
break;
case mb_any:
i = “mb_any”;
break;
}

//HTML5 friendly function
return HTML5_mouse_check_button(i);
}

Unfortunately there’s no pressed/released variants because JavaScript cycles much faster than whatever your room_speed is.  If you want that functionality you can do it pretty easily yourself by calling this function each step for each button, caching the state for the last step and comparing it to the current step.

 

HTML5_mouse_x(relative)

HTML5_mouse_y(relative)

Parameters: bool

Returns the mouse_x/mouse_y coordinate.  Pass in ‘true’ if you’d like it relative to the canvas, or ‘false’ if absolute (relative the document).

This can be used to detect whether the mouse is outside the canvas:

///scr_mouse_outside_canvas()

var tmp=1;
if (HTML5_mouse_x(1)<0) { tmp=0; }
if (HTML5_mouse_x(1)>room_width) { tmp=0; }
if (HTML5_mouse_y(1)<0) { tmp=0; }
if (HTML5_mouse_y(1)>room_height) { tmp=0; }
return tmp;

 

Caveat: If you scale the view port for aspect reasons you’ll want the scale these values too.  If you center the window with some prepended JavaScript (see below) you’ll want to adjust for that too.

game maker settings

document.getElementById(‘gm4html5_div_id’).style.textAlign=”center”;
document.getElementById(‘canvas’).style.display=”inline”;

Bonus: The JS snippet above will horizontally align the canvas, as opposed to the vertical & horizontal center flag GMS offers.

Taking all the above into consideration, here’s what a position script for HTML5 might look like:

///scr_HTML5_mouse_set_xy()

html_mx = HTML5_mouse_x(1) * GAME_W / PORT_W;
html_my = HTML5_mouse_y(1) * GAME_H / PORT_H;

 

Prefer Pointer Locking?

Pointer locking is what first person games tend to use (think MineCraft or CounterStrike),   The mouse is locked to the window.  If you’d prefer that, a gentleman has kindly put together an extension for it here.

 

 

Sources: 

http://gmc.yoyogames.com/index.php?showtopic=639277

http://gmc.yoyogames.com/index.php?showtopic=529319