In this email interview with Jake Gostylo, the author of The Great Land Grab (or TGLG) game for Android phones, we learn about his apps in the Android Market and his experience with writing mobile applications; he also offers advice to developers who are considering getting into mobile app development. Some of the responses have been edited to manage length or clarity.
Donovan Colbert: Tell us a little bit about yourself. How did you get started programming, and how long have you been writing code? Is it what you do for your day job?
Jake Gostylo: Programming for me has always been an estranged relationship. I always have difficulty learning something if I don’t see an immediate need for it. Fortunately, I am stubborn, even if it takes months or years to finish a project.
My approach to programming is more of a tool and less of an art form. I was first exposed to BASIC programming in elementary school, and I dabbled in programming all through college. I learned enough to pass BASIC, but it didn’t really sink in at first. In middle school, I learned to complete large projects. High school taught me that repetitive tasks are better left to a computer when I wrote a C program to help me do inventory tracking at a construction site. In college, I loved working on large projects with friends who were smarter than me (we made the game Atlas: The Gift of Aramai).
After college I was unemployed and taught myself SQL, Java, and more importantly OO programming. A contract I took on for a friend taught me PHP and web technologies. A 3D Scorched Earth type game taught me a lot about C++ and also taught me that some projects are actually too big for me. A community web-based game using PHP and MySQL taught me about constructing massively multi-player worlds, about web advertising, and what it means for scope to get out of control with ideas that are too big to fill. And now The Great Land Grab is teaching me about the business of indie games, but everything in this game is a culmination of what I learned from other projects.
My day job is much less glamorous. I am a software build and release automation engineer, so I do a lot of product architecture and scripting. I enjoy the work, and it gives me a lot of flexibility to explore new technologies.
Is The Great Land Grab your first mobile application?
Yes. Like most of my projects, mobile simply had what I was looking for. I was finishing out a web game where everyone played on a huge map and hopped from planet to planet trying to eradicate each other, and there were plenty of ideas this was spawning that seemed to fit really well if it ran on a mobile device.
What are the unique challenges of writing applications for the Android platform?
Programming for Android has actually been an incredibly pleasant experience relative to a lot of other projects I have tried. Before giving up on my 3D Scorched Earth game I had written much of it, twice using one engine and once using another engine.
The vocabulary and paradigms that Google wants you to use are a learning curve, but once you get that under your belt, the rest is just organizing your logic and setting up your GUIs. There were plenty of pain points around Google’s documentation. Also, things that I felt had to be in the API somewhere weren’t, and I ended up writing it myself.
When I started the project, it was very difficult to get answers to problems in the Google Groups forum — that has improved dramatically. Also, I was disappointed to find out that the Maps API was not open source. Most of the technical direction I got was from tutorials that other people posted. The most helpful ones are on anddev.org.
Now, of course, Android developers have to deal with a multitude of devices that run at different resolutions with different screen sizes and different OS versions. It is turning into the PC of the mobile phone world.
Tell us a little about The Great Land Grab — how you came up with the idea, how it has evolved, what your overall experience has been, and what some of the challenges with making and marketing the app have been.
It is difficult to pinpoint where the idea for The Great Land Grab started. I was wrapping up what I wanted to do with my web game TerraTanks after deciding that there were too many fundamental problems to continue with it. I was brainstorming ideas about a different web game that would focus on the game’s economy, where everyone would own a plot of land and interact with people who set their plots of land next to theirs.
I was running a game design club at work, and one of my coworkers recently purchased a G1 and got a book about the fundamentals of setting up an Android project. In a 30 minute conversation with a few of the club members, I brought in some of the ideas from the game I was thinking of, and they chipped in their ideas and knowledge of Android capabilities, and The Great Land Grab was born. It was decided that the game should be dirt simple. This was something I totally agreed with, as my past projects have always had the problem of being too complicated. We went with a very simple concept, but some complexity creeped in to resolve issues with the gameplay.
It was a no-brainer to use Android for the project instead of iOS. I did not want to buy a Mac, and I did not want to purchase an SDK for what was, at the time, a proof of concept. It was several months into the project when I felt that the project was viable that I broke down and got an Android phone of my own.
I set a goal of finishing a playable game to enter it into ADC 2. When I completed the competition version, there was still a long list of features that were not in the game. There were unanswered questions like “how am I supposed to defend my land?” and “how can this game be made safer and easier to use?” Each question had its own set of problems with game balance and intuitive interface. There was also a lot of learning to be done around making location finding more reliable and accurate (when I most wished for Google’s Map API).
My sum total marketing effort for the game has been making a web page and putting the app on the Android Market. I found it interesting that the system Google had in place for submitting an app made the concept of releasing frequently a viable marketing campaign. In the beginning I would fix bugs, add a feature or two, and release every week even if there was not much in the update. That put me at the top of the newly released apps and gave the game needed exposure. I also tried to be as responsive as I could to email requests and issues. There were plenty of times when my response has been, “sorry, that just isn’t going to happen” but people like to know that someone is listening. This has definitely become more challenging with a larger user base.
For people interested in what user communities are like, I have to say that I have been very pleasantly surprised at how kind, understanding, forgiving, and overall enthusiastic my user community has been. I am not sure if it is the type of people attracted to a game like mine, but people seem to understand that it is a single person who is maintaining this game.
I understand you’re working on a new app called Legions. Will this be an Android exclusive app, or are you planning on moving it to the iPhone as well? Is it a follow up to The Great Land Grab or is it a stand-alone title?
I don’t know if I will ever write an iPhone game. I am certainly not above having an iPhone port, but Android work keeps me very busy. So Legions will definitely be Android exclusive until there is some compelling reason to put it on iPhone.
Legions is a stand-alone title, but it makes some cross references with TGLG data in its gameplay. Stores in TGLG become barracks, and parcel troop capacity is a function of the maximum price of parcels in TGLG. Cross-product promotion is always valuable, so I am not going to pass up an opportunity to do it.
To give you an idea of what Legions is about, I took a lot of inspiration from Galcon. I got seriously addicted to that game. I thought my existing code was good to leverage to make more of an army strategy game, and Galcon makes some compelling arguments on how that can be done.
What is the future of mobile app development? Will it remain accessible with a low cost of entry for the small developer or shop, or will the big publishing houses come in and drive the little guys out?
I don’t think big publishing houses will be able to drive out the little guys. The market is in a strange state where you have millions of ready user platforms and a culture where people expect free or cheap apps.
Big publishers are probably banging their heads trying to figure out a stable way to get people to pay the money required to justify a high budget title. At the same time, the hardware and, especially the screen real estate, don’t really lend themselves to need big budgets for apps.
I think that if you are backed by money to make a slick, sexy app, then it will be received well. I also think that if you are one guy, and you have a crazy idea, then this is a good place to try it out and I think that you can do well in the mobile world.
Tell us why you chose Android over iOS to begin developing on. Did you just know the language, or was there any other motivation, such as a dislike for Apple’s approach to developers and approval? Did you think there was more opportunity in the Android Market?
I had tons of reasons to choose Android over iOS.
- I did not want to purchase a Mac.
- I did not want to purchase an SDK for a proof of concept.
- I did not want to learn Objective-C, and I was already familiar with Java.
- My friend totally had this book to get me started (for reals).
- I was going to be writing a map application, and I liked how Google Maps was native on Android.
- The main reason I chose Android is because I was pretty certain I could FINISH the project on Android. When I started the project there was actually much less opportunity on Android. There was only the G1 on the market, and the Android market share was pretty small.
- Also, I think I just inferred it but it turns out I was correct, iPhone users are way more willing to spend money on things than Android users. I have an iPhone friend who spent $0.99 on a random number generator that simulated dice roles. No graphics, no sound, or anything. When I was making TGLG, I knew it was going to have to be free.
Looking back I am definitely glad I chose the path I did. Things fell into place for Android, and they delivered on their promises. But at the time I only wanted something I knew I could finish.
What mobile phone do you own? Is your development workstation a Mac or a PC? Do you have a favorite OS: Mac, Windows, or Linux? If you have a strong opinion, elaborate on this choice. Do you have a wish-list of mobile device gadgets you want?
My work on TGLG got me a free Nexus One from Google and that is my phone. I started off on the G1 and that is now my wife’s phone. I really like the hard keyboard, but things like Swype make me miss it less.
I develop on a PC using Eclipse. The Android development setup is pretty simple, and there is a lot of support for the environment I am using. While my favorite OS is using the Linux shell because of the speed, stability, flexibility, and lack of distractions, my main system (and development system) is Windows. This is mostly because I am an avid PC gamer (the distractions). I don’t really dislike Windows as a system but at work I much prefer working on a Linux system.
As for mobile device gadgets, I am not really a gadget guy. I don’t like the idea of carrying stuff around, and I don’t like all in one devices that don’t do any of their functions very well.
What are your future plans for mobile app development?
I really think the space around TGLG has not been fully explored. There are some feature improvements I am trying to work in, and there are some spin-off games I am interested in pursuing like Legions.
I also think that there is an opportunity to make some niche tools for mobile devices. The company I work at released an iPhone app called NearHere that utilizes their database to deliver filtered information about companies in your area. This app is for on the go sales people who have some spare time and want to hit up some other clients in the area without going in cold.
I think it would be interesting to push it one level more specific and make an app that runs additional comparisons for things like commercial real estate. In my thinking it is better to have something that some people really want than to have something that everyone sort of wants.
Do you think Android or iOS has the stronger long-term position for the future? Why do you feel this way?
This is a toss of the coin for me. If Android can produce evidence that money can be made on their platform in a non-ad supported way, then I think Android will take it.
It seems like there is a culture for people who are willing to pay for things, and Apple seems to have a lock on that culture. The Android culture seems to expect things for free, at least to try it out for free. I think there is a fundamental conflict of interest on Google’s side because Google is an advertising company. Why would they do anything to discourage ad supported business models if they are providing the best in app advertisements? But as it stands they are racing up the market share ladder so with a little creativity developers can come up with ways to cash in on that tide. The OS with the best long term position is the one that other developers can leverage to make a business. The user experience between phones is roughly the same (and will maintain parity) with the glaring exception of third party apps.
Do you have any advice or tips for developers thinking about getting into mobile app development?
Mobile phone apps are consumables. They are priced at a consumable price and are treated as consumables by your customers. I think apps should do approximately one thing and should do it really well, unless two activities are inextricably tied they should be two apps.
Also, remember that there are still plenty of other platforms out there besides mobile. If your application does not have a mobile use, then dealing with the limited screen real estate can be a real burden.