Every once in a while, I ask for questions on my Twitter and Facebook accounts, and then post the answers here. I’ve got two big things going on in my life this week. First up, the first product of my programming hobby is finally arriving on the App Store: A game I put together called Antithesis is coming out as soon as this evening. You can see the beginnings of the project right over here, and I’ll put another post together on it when it finally releases.
Second, of course, as I’ve been blogging about lately, I’m headed to Europe — getting on a plane on Sunday and going to London, Paris, Berlin, Munich, and Amsterdam. So here are some answers to your questions about both of those things:
@stefanhayden asks, (regardless of either of those subjects): What are your top concerts you want to see before you die?
I always wanted to see The Police in concert, and I lamented for a long time when I was a teenager that they had broken up. Then they got back together, and when they announced they were coming to Wrigley Field when I lived just about three blocks from there, the only tickets I could find were about $200. I probably should have just paid. I did buy the DVD of that tour, and it’s great to watch, but I do kind of regret I haven’t ever seen them.
Other than that, I don’t know — I’ve been to Lollapalooza to see Nine Inch Nails, Rage Against the Machine, and Radiohead all in the space of just three days. That’s probably as good as concerts will ever get for me. As for bands I’ve been listening to lately, I wouldn’t mind seeing The Shins or The Decemberists perform. I’ve never seen Tom Petty — that would be cool. But I’ve already seen most of the bands I really love: Bad Religion, Cake (so many times), Guster, Okkervil River, and so on.
@markusn (who helped me out immensely on this game, and is thanked in the credits) asks: Is Antithesis a game about relationships?
Antithesis isn’t that great a game, to be honest. I feel kind of bad — people are telling me that they’re excited to play it, and I think people will like it, but if you expect it to be something really awesome, like Journey or Jetpack Joyride or any really serious great games, then you’ll be disappointed. The whole point of the project was to help me learn how to develop games, and then actually publish one on the App Store, and to that extent, it’s been an overwhelming success. I haven’t even sold a copy, and it’s been a really great experience for me.
All of that said, if you want me to put my philosophical game critic hat on for a second and wax elegantly about what Antithesis is, I would say it’s a metaphor for life. (slight spoilers here, if there is such a thing for this game…) It’s troubling and confusing at first — you do the best you can and hope that’s what you’re supposed to do. Then things get complicated, and you get under attack in ways you didn’t think you could. You learn to fight back, and you actually have some success at first, but eventually you discover that there is no winning, really. The game ends, and you find that even though you basically lost, you have a strange peace with that. After all, you’ll do better next time, right?
I have a lot more to say about the design of Antithesis, and I’ll be doing that in a few different places going forward. And oh man, wait until you see my next project. I will say right now: There is a small easter egg in Antithesis that reveals what I’m working on next. I have very little faith that anyone will actually find it.
@philhassey asks: What was the funnest bit about making the game? was this your first game ever?
The funnest bit about making the game was the moment I first put it in other people’s hands. While I was making it, I didn’t actually have an Apple developer account — I did everything in the iOS simulator in Apple’s Xcode app. I did show it a few people then, but they didn’t really get it — the mouse/touchpad on my Macbook Pro was just a standin for the actual touchscreen, and while I was able to play it, nobody else was.
About three months ago, though, I finally had the app working the way I wanted it to, and I paid the $100 you need to pay to actually become an Apple developer and run your code on the iPhone itself. I loaded up my code and went to meet my friend Mark Alderson for lunch, and I offered him the chance to be the first outside of me to actually play the game.
The second I put that device in his hands, I was astounded. Some things I thought would be completely unclear he picked up on right away, and things that I thought would be the easiest to get across, he didn’t understand at all. Bugs that I didn’t think anyone would ever notice, he found immediately. And while the whole experience was probably pretty mundane to him, for me, it was amazing. It was like actual telepathy — I had spent months basically putting these ideas and these mechanics together in my head, and watching him play, I actually got to see the signal coming back.
Since then, of course, I’ve shown it to maybe fifty or sixty people, and it’s gotten to the point where I’ve memorized, almost to the second, what people are thinking when they play the game. A lot of the issues Mark had, I’ve fixed. And some of the issues people have had, I just decided to leave in, not because I was necessarily lazy, but because I thought they got it right. I do think that the game, as is, does what I want it to do. It could probably be better, yes, but I think it’s communicating my thoughts in a pretty accurate way, and finding that point was really, really fun.
Here’s my entire game design resume:
- I learned to program in Color Basic for my old Tandy Color Computer. I remember writing an app once for one of my babysitters that would ask her name, and when she typed it in, the computer would return, “HELLO DANA! HOW ARE YOU?” She was so thrilled with that, and you could probably credit that evening with my hot babysitter as one of the reasons I love computers so much.
- I wrote an address book app for a Basic class in elementary school. My teacher was so impressed he asked me to help teach the class. No one ever used the app, but it did take addresses, and then save them to and from a floppy drive.
- I also once programmed a text adventure game on my TI-82 calculator. Yes, a text adventure game. Yes, a calculator. No one but me ever played it, and it’s been lost to history. But I do remember drawing up a map and actually programming in room descriptions and even a few puzzles for the text adventure. You could move north, south, east, or west, and I believe the final puzzle was standing in front of a big tree near my high school and typing “YELL PASSWORD” to get into the final room.
- After that, I didn’t really do any programming until around 2008 or so. I have read a few books over the years — I once tried to learn C++ — but none of them ever took. But I always had it in the back of my head as something I’d really like to do, not necessarily as a job, but definitely as a hobby.
- A friend and I were sitting around and made a card game (for use with a standard playing deck) called Bombs a few years ago. Maybe someday I’ll turn that into a video game.
- Last year, I finally started trying to get serious about game design — I made a few games using a few simple scripting programs. After that, I started reading up on Cocos 2D, and I have a few prototypes that I made that I haven’t really gotten to pan out yet (though I may someday try to actually make them — there’s a few good ideas there).
- And finally, I went to 360iDev last year, first and foremost to cover it for TUAW, but secondarily with the idea that I would join the Game Jam and actually try to get a game prototype going. I did a fair amount of work that weekend on the game that would eventually become Antithesis, but it was still in a barely playable state at that point. After that, I spent most of my spare time in the last four months of last year and the first three months of this year trying to get the code working right. I would say that I actually had the game done right around GDC this year, and then most of the work after that has just been making sure everything works for the App Store.
So I don’t know — Antithesis is definitely my first published game, my first thing I’ve made out of code that I’m selling to people. But I’ve had a long history of unsuccessful coding, and the recent run with Objective-C and iOS development has taken me at least a couple of years to actually figure out. Speaking of…
@steeljaw asks: How did you get started developing for the iPhone? Any tutorials/online training?
Oh man, I tried everything. Here’s how you learn to code for iOS, starting from zero knowledge at all:
1) Learn Objective-C. If you don’t know anything about computers, you probably have to go back even further than this, maybe learning Ruby or some other relatively easy programming language. Technically, I started by learning BASIC way back when I was a kid. But that’s procedural programming, not object-oriented programming, and that’s been my biggest issue with all this stuff so far. So yes, learn Objective-C, probably from this book. Buy it, read it a few times, and do all the exercises in it.
2) Learn how to use Xcode. If you just want to make an iPhone app, you can use Apple’s Interface Builder to create all of the buttons and menus and things, and that is a whole lot easier, let me tell you, than actually coding your own game. This book is another good one to read a few times, and it will definitely help with how Apple has you doing development and how to hook into Apple’s operating systems. It’s funny — you learn Objective-C using variables like “x” and “index,” and then once you actually break open the sample code in Xcode, everything is actually an NSNumber or an NSInteger. There’s theoretical programming (which is what you learn from that first book, when all of your variables are clear and clean), and then there’s the reality (which is what you learn from Cocoa Programming, when most of your code is just calls to pre-built methods and properties). So yes, learn how Objective-C should work first, and then learn how it actually works.
3) If you want to make a game, you’ll probably be using Cocos2D, which is what I used, and what I’m using on my next project, and is generally the standard for 2D (and even some 3D) games on iOS. You can’t really jump in here if you’re really a beginner — I tried, and got completely lost before I had to back up and start over again a few times. It’s relatively simple to do once you figure out all of that NSInteger stuff from Xcode, but again, you need that theory before anything else. If you do want to learn Cocos2D, Ray Wenderlich’s site is just incredible. That guy is amazing, and I probably can’t count how many great app developers he’s probably responsible for.
4) Finally, two pieces of advice, one theoretical and one practical. The practical one first: Take a class! I only took one class throughout this whole ordeal, but I probably should have taken way more. For me, actually hearing this stuff out of the mouth of a human being was extremely helpful. A friend of mine, who also taught herself programming, told me that she just went to a local college and audited a few classes for free, and I really wish I’d thought of that before I bought all of these books and started doing all of this reading. If you really don’t know how to program, definitely consider taking a class, because having people around you is probably way less frustrating than what I actually did.
Second: Don’t stop, ever. I think programming is intrinsically frustrating: You write some code, hit run, and then what you really wanted to happen doesn’t. Usually, it breaks apart spectacularly. And while it is exciting to finally get your program doing something right, realistically you never actually get that “aha!” moment. Most of the time, you just realize how stupid you’ve been, fix the problem, and then the computer smugly does exactly what you wanted all along, no apology at all for those hours you just wasted. In other words, don’t give up — it’s tough, and if you really want to do this stuff, you just have to keep doing it. When I first started, I strategically picked and planned out my time programming, trying to work on exactly the right thing to help me learn. But I’ve since learned that’s all bunk: I learn a ton no matter what I’m doing. So I don’t worry about it any more — I just sit down to program, and then do whatever I want.
Sorry, this is really long! But only a few more left:
@JssSandals asks: Are you going to Belgium, specifically Bruges? If so go to Cambrinus, it has 400 beers available & tasty food.
I don’t know exactly where I’m going in Europe yet — right now, I have the first week planned in terms of where I’m staying, and after that it’s one big blank. I do want to get to London, and Paris, and Berlin and Munich and Amsterdam, and I presume there’ll be plenty in those cities for me to see already. BUT, if you have a day or two in Europe and don’t mind coming to pick me up and drive me around, I will happily go wherever you recommend. I’m open. I don’t know where Bruges is or how far it is from Germany or Holland. But Google Maps tells me it’s kind of in between those two? If you want to come give me a ride, I will happily buy the beer. Not all 400, but at least a few!
@Nicktv asks: What is the price going to be for Antithesis? Pretty excited for it!
So here’s the thing: I was originally just going to release the game for free. I really just wanted to make an app and release it, and I didn’t want to take money from anyone for it.
Then, development took way longer than I thought, and was pretty frustrating. Plus, I paid $100 for the developers’ account, so I’m already down $100. And the new iPad came out, and I want a DSLR camera. So there’s that. Plus, I’m going to Europe, and probably paying for 400 beers. So now I kind of want some money. Not a lot — it’ll be 99 cents.
I don’t expect to sell that many copies, to be honest — someone at GDC told me I’d probably sell about 20, and I think that’s probably about right. I’m not promoting the app or advertising it or anything. I will send promo codes out to a few of my fellow app reviewers, but really only because I know them, not because I want this thing reviewed. I have no idea what Touch Arcade would say about my app officially — I bet it wouldn’t be very nice.
But I could definitely see an argument that says I’m crossing a line here releasing this thing as a developer, given what I do for a living (basically, write about games and iOS). I don’t know. Obviously, I think I can be objective with apps that I’m technically competing against. And while yes, you could argue that I have helped make the App Store popular with my writing and thus shouldn’t try to profit from it, I would argue that Apple didn’t need me to make the App Store popular. My editors have agreed with me — I believe I will even be writing a post on TUAW about what I learned from the whole process, though obviously it will have a clear disclaimer that I am the developer of the app in question.
So if you want to yell at me for crossing a line by releasing an app, go ahead. I’ve thought about it a lot, and I feel that I’ve been careful and will continue to be so, and that releasing an app won’t hurt my objectivity when talking about Apple, the App Store, or any other apps. But yes, Antithesis is going to be 99 cents at launch. In the (very, very, very) unlikely scenario that it blows up Angry Birds-style and I make way more money than I think it was worth, I will probably drop it to free.
@prenden2 asks: Are there any travelling-in-Europe clichés that you’re looking forward to recreating? Holding up the Leaning Tower pics, etc.
Honestly, I’m kind of looking to avoid most of the European trip cliches. I will see the Eiffel Tower and all of London’s famous sights, but I’m more interested in soaking in the culture — sitting in the cafes working (and coding) on wi-fi, and just walking the streets to see just how different they are from the streets I’ve lived all my life on. The one exception is that I am definitely going to 221B Baker Street as soon as I possibly can. I know it’s a tourist trap, and I know nothing actually happened there. But Arthur Conan Doyle and his detective have had such an impact on my life that I have got to hit that tourist trap right away. I am really excited about that one.
Oh, and smoking weed in Amsterdam.
I’m kidding! I don’t do drugs. If I did, I probably wouldn’t post about it on the Internet anyway.