Tuesday, April 26, 2016

Marketing vs Promoting

In my opinion, the biggest difference between an indie developer and a large game company is the marketing budget. Most indie developers cannot afford to distribute ads the way Blizzard or Riot can. So how do indies get the word out?

While talking to a fellow developer recently, I asked him how he promoted his game and he said "I didn't. We didn't run any ads or anything." This was an interesting break in communication for me, because in my mind if you don't promote your game at all you get 0 downloads...to me, promoting a game doesn't just mean running ads, it means all of the little things you do to make your game known to the world. Every Facebook or Twitter post, every friend you tell, every developer forum you post in for help or advice, and ESPECIALLY everyone you ask to beta test your game - all of those things are how you promote a game without penny in your marketing budget.

So what can you do to maximize your promotion without investing in marketing? That seems to be the big question these days. I can't go more than a few days without seeing a Twitter post about "HERE IS THE KEY YOU NEED SO YOU CAN DO SELF PROMOTION RIGHT" followed by a link to buy some book or online course. Well I'm here to tell you there is no "key" to self promotion.

I heard someone say recently that the reason big AAA games are sometimes "canned" right at the end of 3 years of a development cycle is because the cost of marketing is equal to or greater than the cost of development. That's pretty crazy. So if you are making a game by yourself, your development has no cost except the time you are investing in it, and you obviously don't have a AAA budget for marketing, what is there to do? If we compare to the AAA model where the marketing budget is equal to the development budget, it makes sense then that the correlation for indie dev is a time investment. You invest an equal amount of time in promotion that you invest in development. That may seem like a staggering amount of time, but think of all the things you can do with that time.

Some self-promotion strategies:

  • Start a dev log describing your development process, challenges you overcome, advice for new-comers
  • Start a dev stream where you record your development sessions to share with the world
  • Become active on Social Media - leverage Twitter and Facebook to get a following of people interested in your ideas and your progress, a support system that is prepared to give you feedback and cheer on your success
  • Connect with streamers and reviewers and try to find some that may be interested in reviewing your game
  • Become active on a relevant subreddit (in the reddit community, self-promotion is frowned upon unless you are an active contributor who is genuinely interested in the conversation)
  • Run a beta test - there is probably no better way to get people interested in your game before release than to ask them to play it before it is available

Sunday, April 17, 2016

DevLog: Porting to iOS

So far my experience with porting to iOS has been more frustrating than expected. I had heard from other developers that Unity Cloud Build eliminates the need for a Mac during iOS development in Unity, but sadly that is not true.

Here is what I have done and learned so far (and my information may not be complete yet).

Step 1: Apple Developer Account. It costs $100/year and is required to do basically any sort of iOS development.

Step 2: Cert and Keychain...This was the first step where I needed a Mac. Once you have an Apple Developer Account, you will need a Certification. To get that you send a Certificate Signing Request (csr) from a Mac, and receive a file back. You can do either a Development Certificate or a Distribution Certificate (this whole step was very confusing, and I don't actually know how I did it but I must've done it right because things worked). Next you need a Keychain. Again this step made no sense to me, but the Apple Developer Portal gave me a file, I ran it on  Mac and it turned into a different kind of file (3 files in fact), I then selected 2 of those files and exported them to a .p12 file. All of this made no sense to me, but seemed to work.

Step 3: Build the thing. If you have a Mac that can do things, you can probably just make your Unity iOS build and do xCode things to it. I went the route of Unity Cloud Build (I cannot use my Mac for development as it is 8 years old and doesn't run most software, including xCode). Unity Cloud Build will require the .p12 from the previous step as well as a .mobileprovision file which you get during the Certification process. That's why this is step 3 (I totally tried to do this as step 2, but failed miserably).

Step 4: TestFlight. It's possible that if I had made a Development Certificate I could have somehow manually put my builds onto an iPhone, but since I knew I would be distributing this app I just made a Distribution Certificate (it was also not clear in the instructions why I would choose one over the other). If you make a Distribution Certificate you will need to deploy your app via TestFlight. This is where things got tricky. Unity Cloud Build gave me a .ipa file, but .ipa files cannot be simply uploaded through the Apple Developer page, so I needed either xCode or Application Loader to put up my .ipa (there seems to be no way around this). As mentioned, my very old Mac will not run most programs, so when I got to this step I had to go find a friend with a decent Mac to upload my .ipa to TestFlight. Once on TestFlight it seems fairly easy to distribute to internal and external testers, but it seems this upload step will be necessary every time I want to test a new build (unless I go back and make a Development Certificate and figure out how to manually install .ipa files).

The challenge of these steps was compounded by the face that I don't actually own any iOS device.

Friday, April 15, 2016

Tips and Tricks for Posting Links to Your Site on Social Media

Ever wonder how you can choose which image shows up in the thumbnail for Facebook, Reddit, and Twitter? If you are posting a link your your own website, it is up to you how the thumbnail appears, but it takes a bit of work to really get it going.

First, sites like Facebook and Reddit use a thing called Open Graph protocol to search through your html to grab the info that will post as a thumbnail. To enable Open Graph protocol on your website, swap out your <html> tag for <html prefix="og: http://ogp.me/ns#">. Next, use Meta tags to set the specific information you want to use. For Facebook and Reddit, the most important of these is the image.

These are the meta tags you will most likely need:
<meta property="og:title" content="YourTitle" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://YourWebsiteURL" />
<meta property="og:image" content="http://YourImageURL" />
<meta property="og:image:width" content="YourImageWidth" />
<meta property="og:image:height" content="YourImageHeight" />
<meta property="og:image:type" content="image/jpeg" />

Anything that starts with "Your..." should be filled in by you :)  There seems to be a minimum size on the image, which I found out through trial and error but could not find documentation on (it worked for me once I got above 500x300). These meta tags go BETWEEN your <head> tags.

Once you have filled those in and uploaded your site, you can test using this debugging tool (so you don't have to keep making actual Facebook posts to test)  -  https://developers.facebook.com/tools/debug/

Since Reddit and Facebook use the same protocol, testing it for Facebook should mean it will also work for Reddit.

Now for Twitter...you will need another set of meta tags (Twitter does not use the Open Graph protocol to grab info, Twitter has their own custom "cards"). Here are the Twitter meta tags for Google Play (the ones for iOS are similar):

<meta name="twitter:card" content="app">
<meta name="twitter:site" content="@YourTwitterHandle">
<meta name="twitter:description" content="Your Description.">
<meta name="twitter:app:country" content="US">
<meta name="twitter:app:name:googleplay" content="Your App Title">
<meta name="twitter:app:id:googleplay" content="com.YourCompanyName.YourAppName">
<meta name="twitter:app:url:googleplay" content="http://YourAppURLOnePlayStore">

So when I was all done filling this in for Slapdash Bones, here's what I had:

<html prefix="og: http://ogp.me/ns#">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="sbd.css" type="text/css" media="screen" />
    <meta charset="utf-8" />
    <title>Slapdash Bones</title>
<meta property="og:title" content="Slapdash Bones" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://astiregames.com/sbd.html" />
<meta property="og:image" content="http://astiregames.com/slapdash/SlapdashBones770x600.jpg" />
<meta property="og:image:width" content="770" />
<meta property="og:image:height" content="600" />
<meta property="og:image:type" content="image/jpeg" />
<meta name="twitter:card" content="app">
<meta name="twitter:site" content="@moarKitties">
<meta name="twitter:description" content="Slapdash Bones is a multiplayer dice game for 2-4 players on one phone or tablet.">
<meta name="twitter:app:country" content="US">
<meta name="twitter:app:name:googleplay" content="Slapdash Bones">
<meta name="twitter:app:id:googleplay" content="com.Astire.Slapdash_Bones">
<meta name="twitter:app:url:googleplay" content="https://play.google.com/store/apps/details?id=com.Astire.Slapdash_Bones">

And this is what it looks like on Twitter - https://twitter.com/moarKitties/status/721138863838638080
And on Facebook - https://goo.gl/iNaoOE

A Game a Month

I made a new years resolution this year to develop release one game per month for the entire 2016. This resolution came about because for far too long I've felt that I am skilled and capable in game development, yet I have nothing tangible to show for it. I want to be a successful developer, yet I have nothing that proves I deserve success. So 2016 is meant to be the year that changes. 

I work full-time in AAA, and I teach as an Adjunct faculty two nights a week, but I still have around 20 productive hours throughout the week available to use, and I have been pouring those hours into side projects. So far this year I have developed and released 4 games, with another well on the way. 

What have I learned from this process up to this point? For one, promoting a game without a marketing budget is very VERY difficult, though not impossible. Second, a month is actually a pretty long time to make a game, but not long enough to polish a game...I feel like I could easily make 2-3 functioning games each month, but I am attempting to polish the games I release, so I get a game working and then I try to start polishing, and then I get to my release date and I have to forgo the rest of the polish in order to continue to meet my milestones. The third thing I'm learning is very obvious, but I had not previously ever published/released a game on my own, so I am learning a lot about publishing to different platforms. Publishing to Android turned out to be easier than expected, as did publishing for web, but publishing to iOS is shaping up to be quite a challenge. I'm also hoping to start making releases for PC, but maintaining all of these projects cross-platform is a lot of work!

Anyway, here are the games I've released in 2016! I hope you like them, and please share :)

January - Slapdash Bones: A multiplayer dice game, players take turns rolling dice on one phone/tablet.
Available on Google Play - https://goo.gl/O3UBvK

February - Cat Cave: An endless runner, keep the cat safe as she runs through a treacherous cave! Leader-board allows you to compete with friends.
Available on Google Play - https://goo.gl/ubhKBi

March - Color Bounce: A physics/color puzzle. I made and released this in 12 hours start to finish (from the moment I decided "I'm gonna make this!" until the moment I released it, there is no tutorial but I bet you can figure it out).
Available on Google Play: https://goo.gl/Q2AwUp and web: http://goo.gl/tTSpkw (does not work on Chrome)

Bonus - Ice Breakout: a breakout clone with some snazzy juice. I'm actually a little bit ahead of my goal right now because I decided to follow a tutorial on making HTML5 games, and ended up making this available online: http://goo.gl/Q6g2pL

April's game will be for Google Cardboard, and I hope to have ported the others to iOS and PC in the next few weeks. Thanks for playing!

Thursday, April 14, 2016

The Stress of Publishing Your Own Games: Part 1

Whoops, so much for two posts a week! Well this post is just a little rant about stress. Working for other companies has always given me some level of stress, so I though if I work for myself that would no longer happen, but I was definitely wrong. When I decided to start publishing my own games, I wanted to release under a "company" name instead of my own name, so I filed a DBA. Sounds simple, but I spent over two hours on the State of Texas government website trying to figure out how to do it, somehow managed to get charged a dollar in the process, and never found an answer. That dollar ended up being very difficult to pay because they gave no information on how to make a payment. Eventually I found a downloadable form on the County Clerk's website (much easier to use that the State of Texas website), but that form needed to be notarized and brought in to the Clerk's office in person. So I did those things, ended up sitting in their office for about an hour, found out their systems were down, so I just dropped off my form with the fee and hoped for the best. They were supposed to send me a copy of the form once it was processed/accepted, but I never got that, so maybe it wasn't accepted? Maybe I'll never know? But just today I received in the mail a notice from the Texas Labor Law stating that I needed to send them $84 and post some sign in my office where all of my employees can see. Since I don't have an office or employees, and I don't even have a copy of my DBA so I expect I don't even have a company, I am really not sure what to do in this situation. I don't even know how they found me since I have no evidence my DBA was approved, and I've done no other official "business" as Astire Games (the name I chose for my company). I guess I'll just ignore it and hope for the best. Yay stress! Yay bureaucracy!