Hi, I am Dan Huffman, I’m originally from Johnstown, Pennsylvania turned long-term resident (40+ years) of Tokyo, Japan. I am also the creator of The Octagon Theory, a two-player, turn-based strategy board game that was coded using Corona SDK.
Given the opportunity to write a guest blogpost on Ansca Mobile‘s blog, I wasn’t quite sure where to start.
So, I decided to style it like an interview — here is an interview of me, by me. 🙂
How and why did you get into computing?
I guess it was future shock!
Back in the early 80’s, when I was in my early 30’s, I was looking at stereo equipment in a Tokyo electronics shop when I noticed some preteens (probably about 12 years old) standing in front of a personal computer. They were excitedly typing in a simple game program from a magazine listing. It kind of scared me because these young kids understood a new technology that I had no clue about, and I imagined that if I didn’t learn about computers real soon that I could end up in a future I didn’t understand where I would always need help to do even the most basic things.
Also, I read somewhere that in the near-future the third best jobs would go to people who weren’t afraid of computers, the second best jobs would go to those who could use computers, while the best jobs would go to people who could control computers.
Of course, I wanted to be one of the people who could control computers. So, I bought myself a used Apple II Plus and taught myself how to program.
Was it difficult to learn how to program a computer on your own?
Well, at first, I wondered if I’d be able to deal with computers. My image of computers were of very smart scientists in white coats them to do things with advanced math. I hated math and I barely graduated high school — so, I had my doubts! But I was desperate to get out my dead end job in the Eikaiwa industry, so I was ready to give anything a try.
Now, at that time, I couldn’t afford a used computer nor even get a load by myself. So, my then-girlfriend (and now-wife) had to co-sign on a two-year loan in order for me to buy my first computer. It was a bit of a gamble because that computer could have easily ended up in the closet after a few weeks.
I had no idea how much my life was about to change.
I got a few coding books and computer magazines, and started on my journey. I never dreamed that I’d like it so much. I loved making that computer do things. Even debugging my simple programs was great fun. All the free time I had was sitting in front of that Apple II and studying how to code.
Although coding was great fun for me, I think if it was all directed at creating business apps (e.g. spreadsheet or word processing programs) I would have gotten bored very quickly and that computer would have indeed ended up in the closet. So, the natural direction was to learn how to code games.
Coding games kept me excited and interested. I even carried a little notebook around with me all the time so that if I came up with a game idea I could start writing psuedo code for it right on the spot.
What languages did you start with?
Probably, like most early hackers, I started with Basic. But it was while coding my first real game that I realized that I had to learn assembly language. Actually, that game was the original version of The Octagon Theory! It was all coded in Applesoft Basic and it was okay as long as two humans played. But when playing against the AI (computer player), it was no good.
Although my own AI would always beat me — which was great if very surprising — it would take at least a couple minutes for it to compute its move, which was way too long! So, in order to speed it up, I used 6502 assembly language.
The difference was amazing! I’d make a move then BAM! the computer would make its move. Now, the AI was too fast; there was no suspense! S,o to add suspense I put in a routine that would flash the message “I’m thinking” while waiting a random number of seconds before making it’s move.
I was proud of the fact that I never beat my own AI and I ended up selling about ten copies of TOT at a little hobbyist computer shop in Tokyo. Ten copies is not much, but the shop was really small — it was full if two customers were there at the same time.
Learning how to program led to me finally escaping the Eikaiwa industry and getting some really good tech jobs where I had to learn C, assembly languages for different CPU’s, and I teach myself Smalltalk.
At that point, I got out of programming in the mid-90’s, right before C++ started to catch on.
My job was taking all of my time. It was systems integration supporting the printing industry. I was installing and supporting big SUN Solaris and Windows NT print servers and image servers, and RAID systems that were as big as refrigerators. I also trained our Japanese service technicians how to do the same. There was no programming involved, and on my days off I didn’t even want to look at a computer.
So, why did you get back into programming?
Mobile and the internet! About three years ago I noticed that mobile games and games that can be played over the internet were getting big. I wanted to update The Octagon Theory, my old Apple II game, for mobile devices and the internet.
Was it easy to get back into programming after being away for so many years?
Well, programming is like riding a bicycle — once you learn you never forget, although you will get rusty.
But there was a whole world of new stuff to learn. I started with the idea of getting my game on the Nokia N810, a small mobile device that ran a flavor of Linux. During my research, I realized that what I wanted to do with my game would be very hard to do on the Nokia, and I also realized that the Nokia had no future compared to the iPhone, which was starting to blast off with the opening of the new App Store. So, I bought an iPhone and about fifteen general and game development books for iOS.
I studied those books and learned some Objective-C and Cocoa Touch. It wasn’t too hard, but it sure was bothersome. You had to write a page of initialization code just to get a simple icon on the screen. And there’s so much to Cocoa Touch that it seemed like it’d take a lifetime to master.
After messing around with Objective-C and Cocoa Touch, and making very little progress, I discovered Corona SDK. I don’t remember how I found it, but it seemed to be the answer to my dreams. I downloaded it and, within a week, I had the beginnings of my game up and running — something I couldn’t do even after six months with Objective-C/Cocoa Touch.
From there, I immediately subscribed to the full version of Corona and coded away. I think if I hadn’t found Corona that my game still wouldn’t be in the App Store. And I may have even given up and there’d be no TOT .
What are your plans for the future?
My next step is to make another version of TOT for the iPad. TOT is already a universal app and looks good on the iPad, but the new version will be redesigned so that the iPad can be placed on a table and two human players can sit across from each other and easily play. After that, I want to get TOT on the Kindle Fire.
A bit further down the road, I want to implement asynchronous internet multiplayer, more AI opponents, and an AI editor that allows ‘TOT AI Modders’ to easily create their own custom AI players that can be put in future updates of TOT, or even run on a server somewhere in the cloud. By the way, that AI cloud server functionality already exists — all I have to do is enable it.
Where can we find out more about you?
You can check out my blog, which I admittedly don’t update very often.