zsl-mobile-dev

Welcome to the first part of our series on developing a game for iOS and Android. We’ll go through the process of starting from scratch: developing the concept, planning, architecture, graphics, testing, deploying the game and more. This is a full featured game, not a simple demo game. While the series will touch upon a bit of code, it’s not going to be code intensive. We’ll use code snippets to simply illustrate concepts and functionality as we build it out. Hopefully, everyone can follow along and see how we develop games.

The beauty is, we don’t already have everything planned out, so you’ll get to see us come up with solutions, change direction, refactor code, and maybe make a few mistakes along the way.

Be sure to subscribe to the blog or like us on Facebook to follow along. I’m also on Twitter.

Get updates by email:

 

Start Early, Start Often

The decision to start a game shouldn’t be taken lightly. If it’s your first game, start small. Potential game developers tend to be overly ambitious and get quickly overwhelmed when the reality of the creation hits them. While we’re not necessarily veteran game developers, this is not our first game. Even so, we’ll start off small and iterate to show how we approach development of this scale. This is our approach but certainly not the only one.

Coming Up with the Game’s Theme or Story

It’s extremely difficult to sit down and come up with a game in one sitting. For me, the process involved looking at a lot of games out there and picking my favorite elements of each, and thinking about how that would be built out. Whenever I see apps or games, I always think how it’s built and try to dissect it to see how someone might have built it out. I also couldn’t get it out of my head for the longest time, so I knew the motivation was there.

I’m a fan of post apocalyptic movies and other media (George Romero movies, The Walking Dead, etc). I find it extremely interesting, as a programmer, that if the world as we know it ever ended, what would a guy with computer skills do? I’d be one of the least useful people with that skill set. This is something I’ve been thinking about for years and have a real interest in.

I also love the Final Fantasy type games. The XCom series of games are still my all time favorite. Both of these games are role playing games (RPG) with turn based fighting, albeit very different approaches. This breaks down into having characters that all have characteristics and a fighting system that uses those characteristics, mixed with some randomization and probabilities and enemy intelligence (we’ll cover the topics of combinatorics and computer AI in later posts).

So, I want to build a post apocalyptic role playing game with some turn based combat. That’s a great beginning and it’s all we need to get started. Story is important, as well as depth of game play, replayability and ultimately monitization, but that’ll come later. We might even decide on a different combat system as we flesh out some of those details. We haven’t started coding yet, so changing our mind is as simple as crossing something out and writing down something new.

Requirements

We want to build the app for iOS and Android. While we could do this in OpenGL ES, we’re looking for a little bit of a faster build time and 3D graphics might be over kill for what we’re building, especially if we don’t have a 3D artist to help. In our case, we actually do have a 3D artist, but that gets expensive very quickly. Instead we can stick with a 2D game, and fake the 3D by scaling objects down that are far away and scale them up as they approach the screen.

Again, we don’t want to spend forever building this out, so let’s use an SDK that allows us to code once, and build natively for both. In this case, we can use Corona SDK which allows us to code in the programming language Lua (usually used as a scripting language for gaming engines) but compile to native Java and Objective-C for the Android and iOS platforms respectively.

We’ve used other SDKs in the past, but Corona SDK allows us the fastest build time while still leveraging hardware features of the two platforms. This is something HTML5 can’t do yet and the experience is always subpar.

We’ve been using Corona SDK for years for our previous games, but I’m not using it because I’m familiar with it. I invested a lot of time in learning Libgdx and figured I’d be alright deploying just to Android since its iOS capabilities are brand new and not mature, and require an additional $350 license for a 3rd party to make it work. I don’t like having to jump through hoops with my tools. So it wasn’t the right tool for the job for that, as well as other reasons. Corona SDK, while it doesn’t have the 3D capabilities that Libgdx has, we don’t need it for this particular game.

Budget

We have designers, but they cost money. We have 3D capabilities, but that costs money. We need an SDK to build fast 2D games, which costs money for the license. We need sound and music, which costs money.

To get started however is free. It doesn’t cost us anything to write down our ideas, architect the app and build the story. Even then, to use Corona SDK, is free until you want to deploy and test on a device (something that’s only needed right away if your app uses the accelerometer or other hardware specific features like that, that the simulator can’t simulate).

SDK

For the Corona SDK, we’ll eventually need a license, which is $349 (cheaper if you’re a student). But since we don’t need this until the end, this won’t stop someone from building a game.

Music

For past games, we’ve budgeted about $250 for quality, royalty-free music and sounds. Of course you can always find free music and sounds, and this may be more within your own budget.

Graphics

Most games require custom graphics so this is going to be the biggest hit to our budget. Since we don’t know what we need yet, we’ll pull from past experience and try to limit our graphic needs to about $1,500 for now. That may be unrealistic, but we can work within that limitation and work smart to keep that price down. If you don’t set boundaries early, you’ll find things tend to balloon quickly.

Programming

In reality, this would be the biggest expense. Since I’m doing all the coding myself, it’s technically free, but I do hope to get paid and feed my family. I’ll keep track of my hours for development (something we do for every project), so I’ll know the theoretical cost of development. It’ll also give you an idea of how long each thing takes to build out.

Financial Projections

So, we roughly have $2,100 budgeted for our game. That means, if we make $3,000 on iOS, our revenue will be $2,100 (after Apple’s 30%). The revenue on Android is very limited, so we’ll ignore that for now and consider it later. So the goal is to make more than $3,000 to simply recoup our costs. Can we do that easily?

If we sell the app for $0.99, we’ll have to sell 3,030 copies to make $3,000. If we sell the app for $1.99, we only have to sell about half of that (1,508).App Store ROI I’ve created a spreadsheet to illustrate this for more combinations of prices. I also included time, to show how many months it’ll take to recoup that cost, based on average app sales per day. For example, if we only had 5 app purchases a day, on average, it would take a year to recoup that cost at $1.99.

If we do decently and we can get 50 downloads a day, we won’t need to worry about the cost as we’ll recoup that in our first month. After that, we’re still only making $25,000 in a year. It’s not hard to get 50 downloads a day, but it does take a lot of work.

As I like to say, it takes a lot of one dollar downloads to make a living. In the above case, we’re simply talking about costs, not profit. After costs, comes the profit of course. You’ll have to determine how much money you want to make, or how many downloads you think you’ll get and see if it makes sense for your budget. If not, lower the budget. But it’s a good tool to firmly plant you in reality.

Game Revenue

As I said, I’d love to make some money instead of spending it (we are a business after all), so how do we monetize it? I’m a little sick of companies offering games for free and then nickel and diming you for every little thing. Does it work? Oh heck yes. Does it make for a good gaming experience? Not really. People will pay for good content, so let’s focus on that first.

As we build out the game in more detail, opportunities may present themselves that make sense. Otherwise we’re not going to shoehorn something that doesn’t match the game model.

Market Research

Does a game like this exist? Simple answer: yes. So what makes ours different? We’ll have to figure that out. In the mobile world, everyone has short attention spans, so games tend to be quick arcade-like games. You get in, you get out. You play then while you’re in line at the DMV, you play then in between your connections at the airport. I do believe the platform can support games that people want to play as they do with regular console games. The problem is, there’s not a lot of games that have deep story lines. Everyone is trying to make a quick buck, appeal to the casual gamer and move on to the next project. Well I’m not a casual gamer and I believe there are a ton of people out there like me who want a more involved game. Plus, with a low budget, we don’t necessarily need to make that quick buck.

Conclusion

So we’re going to build a post apocalyptic role playing game, with turn-based combat, in Corona SDK, for about $2,100.

Will we make the top 100 list? Probably not. Do I care? Not if it affects the fun of building a game and the enjoyment I’ll get when people play it. Luckily, I’m not a starving mobile developer and do quite well with my mobile development company here in Idaho.

In the next post, we’ll talk about brainstorming ideas and requirements and concepting the game to bring it out of the fog my brain and into something more tangible. You see the process, rationale, and decisions made to create the overview of the game as well as the scaling back and limitations we’ll place on the game to stay within budget and release the app in a reasonable timeframe. So let’s start building a game that we’ll enjoy building and see where we’ll end up.

Please leave FEEDBACK!

I’m doing this to help others, since others have helped me. Please leave comments below so I know how I best help tailor the series to your needs and interests. Even if it’s just to say hi, I’d love to hear from you.

Don’t forget to subscribe to the blog or like us on Facebook to follow along. I’m also on Twitter.

Tagged with: , ,

In the first part of Going Independent, I talked about my day job, and my first year on my own. To recap, I made next to nothing but lived to fight another year. Which brings me to the second year of being independent. This is not a story about getting rich quick, or how I made several million dollars selling software (because I didn’t). It’s a more realistic story of struggle, failure and clawing and fighting my way to every dollar I earned, how I did that and the hope I see for the future.

Starting Over

I ended up starting a new LLC based on this website’s name, something I’ve been running for years. I registered another web domain name, setup another website installation, bought a theme for the website and filled it with content and portfolio items. Within a few months, we ranked #1, #2, and #3 (#3 was this site) when you searched “Mobile Development Boise.” The calls and emails started coming in. Some people just wanted to know how much it was to develop a mobile app, others were testing the waters, and still others had already committed, one way or another to having an app built and were just looking for the right people to do it.

That was as much marketing and advertising as we did. We didn’t cold call, we didn’t mass email. We simply had a product and service that people were interested in, and wanted to find out more. Surprisingly, more people have called than have used email to contact us. The calls are about 60%, direct email 15% and using the contact form was about 25% of our incoming inquiries. All forms of communication have resulted in very good clients so I can’t really say which one was better for us.

We picked up some web development jobs to pay the bills while we worked on the good ideas for client mobile apps. We didn’t take on every project that came our way. Some thought our prices were too high. Some were expecting the development to be only a few hundred dollars. And some just had bad ideas that either couldn’t be executed, or we didn’t want to execute them. You don’t want clients that have bad ideas or won’t pay you what you’re worth. When clients understand the cost, you know they’re running a good business themselves because they know what things are worth. When clients have bad ideas, they usually don’t have a proven business model to support it, or they simply aren’t familiar with the technology.

Don’t get me wrong. We’ve done our share of low-budget apps, just because we liked the people who came to us. We have a soft spot for startups and people just trying to live their dream. Most of the time, these people already want a working business model and just need a solution to their mobile needs. We try to be fair, we’re always honest, and hopefully that builds better relationships.

Anyway, we picked the right projects and the money started slowly trickling in. We got some large projects where we threw every resource we had at them. We hired a bunch of great people who did great work, and we accomplished a lot of things. We paid them fairly and we paid them on time. If I could help it, I paid them up front. I trusted all of them, I had worked with all of them before and everything went well. Luckily. I’m a firm believer in, “It’s who you know.” And if you know great people, they’ll enable you to do great things.

Don’t get jealous of people’s abilities and talents; get inspired.

Success Depends on Reach

How many people or businesses do you know that can send you $30,000+ projects? If you were to get said projects, how many people do you know that can help you execute on those? You need to get to a point where you’re doing less of the development, and more of the management. Everyone knows management does nothing and gets paid the most; so why wouldn’t you want to be in that position? But the worst managers are the ones who couldn’t do your job if the company depended on it. I’m not sure why non-technical people are hired to manage programmers, but the best ones either know how to do the jobs of the people they supervise, or they admit they don’t and instead listen well and take their advice to make the best decisions. Be one or both of those things, but most importantly, have people working for you that can give you good advice.

I built up that kind of network over the years by staying humble, listening and always remembering that I don’t need to be the smartest, best person to be successful.

How Successful Was It?

I technically started up the new LLC in March so it hasn’t exactly been a year. Remember that ten thousand dollars of income I made the first year? Well that LLC made a lot more than that, but that’s pretty much all I saw. This year, the company is projected to be almost a magnitude greater than that, for a period 12 months. Ok, so I’m playing with numbers and dates a bit for my benefit, but you get the point right? I’m making a decent, living wage after a year below the poverty line (although my wife made a decent salary, so technically as a family we weren’t).

I could have gotten a “real” job and made 2 or 3 times what I did. Sometimes, I’ll admit, when the bank accounts were getting low and I didn’t have any outstanding invoices due to me, I wish I had. But because we built a solid foundation with the website and our portfolio, the next call or email would come in, and off we’d be rolling again. A bit of a roller coaster, ulcer causing existence sometimes, but having retained earnings, diligent savings and always looking ahead, ensured we were always busy.

Looking at 2013, while we have a ton of things and ideas in the pipeline, to potentially grow the revenue even more, I still think: “Would it be better to just give it all up, get a ‘real’ job and not have to think or work so hard?” I think anyone trying to run their own company who thinks they’ll become rich overnight should take a long hard look in the mirror, and then laugh at themselves. While overnight successes happen, sort of, it mostly takes a lot of hard work, good decisions and a lot of talent to become rich. Sometimes it just takes a while to get all those things right.

Doing this kind of thing is not for everyone and there’s no shame in that. But regrets are a lot harder to justify than failures.

Post in the comments below about your successes, failures or questions and make sure you subscribe below.

Care to follow my progress?

Hindsight is 20/20 so I thought it time to reflect on going independent two years ago. I consider myself fairly successful and thought I’d share in case it helped someone else live their wish. Here is that story, what I did to prepare, the after math of that decision and the years that followed.

My First and Only “Real” Job

In the spring of 2007, I graduated with my shiny new degree in Computer Science from Virginia Tech. Even then, I was very picky about who I wanted to work for. I had sold some of my own software in college and loved that experience. When going to job fairs, I would only consider companies that appreciated good User Experience (UX), and didn’t program in anything .NET. Why? Mostly, because I knew I wanted to be involved with anything UX, and I was an Apple developer since 2003, and loved working in that environment.

Eventually, I found a company right in Blacksburg that did online product demos in Flash. I had dabbled in Flash a bit but knew nothing about it. On top of that, this company had clients like Hasbro, T-Mobile, Verizon Wireless, Graco, Canon, Reebok, and the list goes on. As a freshly minted Computer Scientist, I was a bit intimidated.

What the job actually taught me was, those companies are run by people, and you can talk to and reason with people. They have wants and needs and are not some super force of power. The people are generally approachable, but very professional. You can’t play games, you can’t be immature and no one likes drama. You are a vendor who provides a service and you can be switched out at any given moment.

I ended up becoming very good at Flash and talking to clients. I created a ton of new technologies for the company that had never been created for that platform (although most likely existed in other places). But we got switched out.

What I learned from that is, nothing is a sure thing and things can change overnight.

 

Learn to Swim – Or How to Start Your Indie Journey Before You Jump Ship

We were down to our last client and before the ship sank into the sea of failed companies, I jumped on a little life raft and paddled my way to fame and glory. That life raft was iOS development, which I started about two years before I left. I asked my boss at the time, when iOS 2.0 came out, if he wanted to offer iOS apps to our clients. He kind of laughed and said he didn’t think anyone would buy apps for a phone. We could have been one of the first mobile development capable companies. Instead, I started my own, which became one of the first.

What I learned was, when you see a clear and present opportunity, take it.

So I worked nights and weekends on our first mobile applications: BarNinja, Unprinted, a game on wake boarding, an app that helps municipalities clean up streets of debris and potholes, an Inbox Zero email helper app, a comic book app and a few other smaller projects. It was hard. My girlfriend at the time complained about how much I was working and we got into some fights about it.

What I learned was, how to write iOS apps of various types, including games, and apps that use native hardware features.

I didn’t just write one app and call myself a mobile developer, I took on challenges that I didn’t know how to do and did them. I didn’t make much money. I made enough to buy a new 13″ MacBook Pro and pay my utility bills each month (less than $100/month). What helped, was, I didn’t have cable and I really loved what I was doing.

When the time finally to put in my 2 weeks notice, I had half a dozen completed apps under my belt and I had lined up about $10,000 of client work in the next 2 months. Everyone says, have 6 months to a year of savings. I probably had a month or two and a load of student debt. When you have a salary, your expenses seem to fit your income. If you plan on going indie, you need to become a lean and productive worker. Cut out all luxury expenses, like cable TV, prepared meals, turn lights off when you leave rooms; whatever it takes because you’re going to live off of nothing for the foreseeable future.

Plan for a Very Sparse First Year

That $10,000 in two months turned into about 12 months. That is basically how much money I made in 2011. Let me repeat that, I made about $10,000 in my first year as an independent.

Here’s what went wrong:

  • The $10,000 jobs were with people I had never worked with before. The projects dragged on, requirements changed and of that projected $10k, I got about $1,500. That’s about a months living expenses for me.
  • I moved from Blacksburg, VA to Boise, ID. I knew not a single sole in Boise, ID, let alone any potential clients.
  • Besides spending a lot of time in the move, and various other chores and errands, I wasted a lot of time chasing ideas that never came to fruition. I felt like I was thrashing in a giant sea and all around me, passing me by, were big cruise liners filled with cash, waiting for me to climb aboard.

Here’s what I did:

  • I married the girlfriend way before jumping ship. She was the best thing in my life and when you have something that special, you chain her down with a fancy ring and you keep her happy no matter what. She was my anchor, my support, my goal, my dream and she kept me going. We had our fights about money, about time, about everything. But she supported me and sacrificed to let me have what I wanted. For that, I will be eternally grateful to her.
  • Twitter is an amazing tool to meet people in another city, say, one you’re planning on moving to. Once I knew I was moving to Boise (since my wife got a great job there), I followed everyone I could that listed their location in the City of Trees. A month after we moved to Boise, I saw a tweet from someone looking to work with a mobile developer. Hey! I was a mobile developer. A sit down and coffee later, I had my first Boise gig.
  • I dropped the idea of doing web development and concentrated on what my passion was: mobile apps. I also concentrated heavily on networking. I went to any meeting of professionals and industry people that I thought was interesting and a good opportunity to meet people. I went with the attitude of just meeting people, not trying to sell anything. I talked about what I did, but I mostly listened. Finally, I started to recognize some faces on the cruise liners. A lot were even willing to throw me a line. Some became live savers.

Financially, the first year pretty much sucked. Socially, I met some really great people, so at times I felt rich. That’s what good friends and good people can do for you. But you still need to pay the bills. Next time, I’ll talk about starting over and how to actually start a business that makes money as I did in 2012. Subscribe to the mailing list below to get the latest on what I’m up to. I keep them short, sweet and infrequent. And, follow me on Twitter.

Read Going Independent – Part 2

Care to follow my progress?

November 21, 2012 at 10:02 am

7 pounds, 3 ounces

20 1/2 inches long

Baby Matyas arrived Wednesday morning at St. Luke’s Medical Center, in Boise, Idaho, perfectly healthy and with almost no fuss. We all spent Thanksgiving in the hospital with friends and ate a wonderful dinner in a cramped but wonderful hospital room.

Both mom and baby are doing well and should be released from the hospital Saturday morning.

What’s with the long name?

Matyas’s mother comes from a culture of combining both parent’s last names for their children. His last name is technically “Ziray Arango” and his middle name is Andrew, named after his great grandfather, Andrew James Ziray, Sr., and his Grandfather, Andrew James Ziray, Jr. His uncle is also Andrew James Ziray, III.

As for his first name, Matyas (ma-TEE-us) is a name that works in both Spanish and English, with the benefit of also being the name of Hungary’s first king, Mátyás Corvinus. Matyas also means “gift of god,” which has a bit of irony since Michael means, “Who is like god?” This latter part is purely coincidence. The Spanish version is Matias, while the English version is Matthias. Either way, it is a unique name and in our opinion, tasteful to the mixed heritage of this young little guy.