For this interview, we talk to Kerry Batts, author of Pro Strategy Football!
0. Tell me a bit about yourself and team.
Well, I’m a team of one, LOL!I’m married and the father of two sons, and I have a real job that takes up my days, so I work on Pro Strategy Football mostly on weekends and many nights. I have an undergrad engineering degree from Georgia Tech, and a Masters in Computer Science from the University of Texas at Arlington. My original football game, Tom Landry Strategy Football, started out as my Master’s project, and then after a very long hiatus, I decided in 2011 to rewrite it for mobile devices and add a lot of functionality. I released the first version of Pro Strategy Football in 2011 and have released a version each year since then.
By the way, my game garnered great reviews in 2013 and 2014 (runner up for Game of the Year with Pocket Tactics in 2014), but last year, between all the redesigning and rewriting, combined with many real life obstacles, my game didn’t come out until late November, much too late. However, I’m hoping that this year will be my best year yet!
1. Tell us where you came up with the idea for this game. What were your inspirations?
I loved playing board games growing up, especially anything strategic, and that included football games. When I began my Master’s program, I knew right away that I wanted to learn good design and create a football game that my brother and I would love, and hope that others would enjoy it, too. That game was written in C in 1992, and I then had the opportunity to meet with Coach Tom Landry for dozens of hours, and he taught me more than I ever knew about football tactics, formations, etc.
A friend, Allen Mitchell, helped me with breaking the code up better to make it more easily portable, and it wound up running on Amiga, Windows, and Mac. I created new versions of TLSF in 1993 and 1994, eventually more than 70,000 lines of C code. But then my first son was born in 93, and I had to quit trying to make a go with games and work “real jobs.”
Fast-forward to 2011, when after a traumatic event in my family, my youngest son told me to quit saying that “someday I’ll teach myself to write mobile apps” and just do it. I had to teach myself Objective C, because I went with cocos2d, which ran on Objective C. Within a few months of weekend-work, I had a lot of the game working. There have been many changes along the way, including adding career play, porting the game to C++ and cocos2d-x, etc. That port to cocos2d-x was one of the best ideas I’ve had!
2. What version of Cocos2d-x did you use?
I’m using version 3.10, and have just started using SDKBOX. I’m excited about all the possibilities in SDKBOX!
3. How did you decide to use Cocos2d-x instead of Unity, Unreal Engine or SDL?
First, I needed something that would be compatible with C, since my original game was in C, and I didn’t want to rewrite almost 70,000 lines of logic. Even back in 1992, I’d known to break my UI separately from the game engine itself, so all I really had to write was the UI. Then, the more I explored, the more I appreciated the powerful options in cocos2d-x, and quickly recognized where I could build my own classes on top of the cocos2d-x classes using either delegation or inheritance.
4. What features did the engine offer you that made development easy? What do you wish the engine did better?
There’s so much to like about cocos2d-x! It has matured a lot in the last few years. I like that I can extend classes, use listeners to implement interfaces in my own classes, build my own components, etc. One of the small things that makes a huge difference is its support for 9-sliced sprites. That lets me have fewer resources while giving the flexibility to build countless configurations (buttons, panels, you name it). I also like that I can view the engine source code. For example, I wanted slightly different behavior in scroll layers on my game, and needed to handle touches slightly differently. Reading the actual source helped me understand the behavior better. And now that I’ve started using SDKBOX, I’m excited about those features!
Of course, the feature I most appreciate is that I have one set of code that runs on iOS, Android, and Windows. I do use C preprocessor commands to do a few things differently where I want, but honestly, more than 95% of my code is the same on all the platforms – and it just works!
And along those lines, the multi-resolution support is fantastic! I create different spritesheets and background images and detect the resolution on startup. Works great!
As for shortcomings, there are very few. The few things I wish were better are (1) the fact that there are two sets of controls (mainly buttons), (2) the published APIs need to be fleshed out a good bit, and (3) text editing; ok, maybe support for Steam IAPs ☺. However, I’m using each set of controls in specific situations; there is a great deal of help on the forums, so if I don’t understand an API, I search the code, the forums, and online; and (3) I’ve written my own keyboard classes that work great on Windows, Android, and iOS.
5. What tools did you use besides the engine?
I highly recommend Texture Packer Pro, Glyph Designer, and Particle Designer! I bought all three in 2011, and I upgrade when possible. Texture Packer Pro does an excellent job of automatically packing sprite sheets, Glyph Designer is great for creating your own bitmap fonts, and I use Particle Designer for creating my rain and snow (and have plans for other particles in the future). I also bought Camtasia for Mac a few years ago and love it for creating videos. I just need more time to learn it better. As for creating sprite images, I use Pixelmator on my Mac or Photoshop Elements on my PC.
And I have to recommend that every developer use git and SourceTree! Xcode has fantastic support for git, and I use it, but Atlassian SourceTree supports “git flow” – a great concept for creating branches, merging, etc. I wouldn’t survive without using git.
In addition to git, I’ve also used Atlassian JIRA and nirvanahq to help keep me focused.
6. What 3rd party libraries did you need to use?
I honestly don’t have any third party libraries. I guess the closest thing I have is that I bought a subscription to Shutterstock and use some images from there in my game.
7. Did you create the art yourself? What tools?
The players and fields were created back in 1992 by a father and son team, and then my son recreated the standard football field last year (he hasn’t recreated the rainy and snowy fields yet). Other than that, I create all the UI elements myself, using Pixelmator, Photoshop Elements, Glyph Designer, and Particle Designer.
8. Did you create the music yourself? What tools?
I purchased the background music from Digital Juice back in 2011. The animation sounds were created back in 1992. ☺
9. Will you continue to make games in the future?
I sure hope so! I have a small but loyal group of fans of Pro Strategy Football. The 2015 version of the game suffered by not coming out until late November, but I’ll be releasing Pro Strategy Football 2016 in August, and I’m adding a ton of new feature. I’m also hoping very much to get on Steam for a Windows version, and then I’ll create a Mac version. At some point, I may decide that Pro Strategy Football is “finished” and work on something else. I enjoy designing and developing games, but might also be interested in writing utilities.
10. Do you use SDKBOX? If so, what plugins are you currently using?
Yes! I love SDKBOX! I’ve just introduced IAPs. That work isn’t quite complete yet, but it’s close, and I’m planning on adding analytics before the August release. I’ll also add several other features later in the year. SDKBOX is awesome!
11. Lastly, any advice for those also making games on how to get to a release point?
I’d suggest several things. First, try very hard to create a burn down list of features that you want to implement and prioritize that list. Use a tool like Atlassian JIRA or www.nirvanahq.com (both free). This way, when ideas come to you, go ahead and capture them before you forget them, but keep your priorities organized.
Second, pick a release date and commit to it. Honestly, I’ve been very bad at this in the past, always adding “one more feature” and every year, my app has come out late. This year, I am going to release my app in August, so I’ve laid out a very clear plan, and I always have a workable build after adding new features. At the end of June, I’m freezing my code and will work on marketing (another very weak area for me). If I then add any features after that, they’ll be on a branch. That way, if there are problems, I’ll just release the code that’s on my main trunk.
Third, use version control!!! I strongly recommend git, and I also recommend that you learn and use “git flow.” You really need to be frequently checking in code, and git offers so many options. Start simple and then learn more. It’s really incredible. I once had something break that I didn’t uncover until well after I’d gone through several commits. With SourceTree, I stepped back through my commits until I found one before the break, then compared that code with the next version, and found the problem – that would have been impossible without git.
Finally, I have to tell you, good programming isn’t easy. But if you enjoy it, then it’s a great hobby, and a way to create something that can benefit people.
Pro Strategy Football is available for as Pro Strategy Football and Pro Strategy Football, Career edition.
Steam Greenlight page (please visit and vote YES, let’s get this Cocos2d-x game on Windows and Mac!)
Read Kerry’s Masters project!