Tuesday, May 3, 2016

The Making of Cat Cave

Cat Cave was my second self-published title, but it was actually a lot of first for me. It was my first endless runner. It was my first 2D game. It was the first time I formed a team to work on one of my ideas (I found an artist, a sound designer, and a second programmer). It was the first time I attempted a port to iOS. And the second release of Cat Cave was the first time I took promotion really seriously.

I've learned a lot from the games I have released so far, but I think the most valuable thing I have learned is you can never do too much work when it's something you care about. As a single cat mamma, I have no human children, and no husband (or wife) to take care of, so my games are really like my children - I look forward to leaving work in the evenings so I can go home and spend time with them. And I feel guilty any time I have a spare moment that I choose not to spend with them.

To some this may seem like an unhealthy obsession, but for me the things I make are the strongest justification for my existence.

In total, I estimate that I invested around 120 hours into the development of Cat Cave. I wish I had kept more thorough track, but I believe the breakdown went something like this:
  • First Release
    • Development - 30 hours
    • Project Management - 10 hours
    • Promotion - 10 hours
  • Second Release (Major Update)
    • iOS Port - 15 hours
    • Development - 15 hours
    • Project Management (including running beta test) - 10 hours
    • Promotion - 30 hours
Another valuable lesson I learned is the importance of building hype. Don't release your game the day it is finished. And don't wait until it is finished to start talking about it. Talk about it all the time while you are making it. Pick a tentative release date far in the future. When you finish your game, get everything confirmed, and get it approved by all of the powers that be, THEN confirm your release date at least several days in advance. Then you must WAIT. Don't do anything to break the game. Don't do anything to put it in jeopardy on whatever platform you publish to. Don't let your anxious fans convince you to release it early. Just wait. And keep talking about it.

Speaking of which, here are the download links for Cat Cave, which is now available on Google Play and iTunes!

iOS: https://itunes.apple.com/us/app/cat-cave/id1104696928?ls=1&mt=8
Android: https://play.google.com/store/apps/details?id=com.Astire.CatCave
PC: https://moarkitties.itch.io/cat-cave




Thanks for playing!


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#">
<head>
<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">
</head>

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!

Tuesday, March 29, 2016

I'm Back!

Wow, it has been a while! I'm ready to start blogging again, and I have a lot to talk about now.

This first post will be to get up-to-date and explain my plan for continuing this blog. So here's what went down:

I graduated with my Master's degree in Entertainment Technology and went to work for a Virtual Reality company where I made small VR demos for the Oculus Rift. It was a great experience, but the team was small and the company was hardware-focused, so it was not giving me the opportunities I was looking for.

In 2014 I moved to Austin and attended the Denius-Sams Gaming Academy to obtain a Certificate of Leadership and Management (in the hopes of moving into more of a lead role on a larger team). During and after completing the certificate I did freelance design and gameplay programming for a couple of different companies targeting mobile apps.

At the end of last summer I landed a job at Certain Affinity (a AAA game developer working on FPS games) as a Systems Designer/Gameplay Scripter.

So currently I am working a day job making games, and by night I work on my own games under the indie name Astire Games - http://astiregames.com/

Whew, now that's out of the way, on to new things!

What I want to do with this blog: I'd like to keep discussing design ideas and issues and solutions as those ideas progress into full-fledged games. I'm also interested in sharing insights as I learn them, and not just about game design - also technical challenges and hardware, web development, start-up and small business topics, and how to market a game (what I'm learning right now!) plus, hopefully, starting a team.

Thanks for reading! Current goal: 2 posts a week!