Titan HD was the first game I ever decided to review for Pocket Tactics more than year after its initial release. Its tabletop version was famously deep, challenging, and counter-intuitive, and is still played at conventions more than thirty years after its introduction into a hobby famously obsessed with the Cult of the New. More importantly, it’s also surging in popularity among users of our own forum, drawn not only to its classic gameplay but to an app which has been lovingly supported by developer Kristopher Giesing for almost as long as there have been tablets capable of holding it.
I managed to track down Kristopher and grill him about one of my favorite iPad apps.
Stately Play: How would you describe the audience for Titan HD?
Kristopher Giesing: First, passionate. Players regularly let me know that Titan is a game they’ve played and enjoyed for many years. Fans have tracked this game across several different publishers and now different formats. That’s a longevity of engagement that is incredibly rare in the board gaming community. Passion also means that players have strong opinions about how Titan HD should operate; I’ve done my best to accommodate those opinions, and hopefully that shows.
Second, niche. The breadth of appeal for the game has been limited, for a number of reasons that are discussed on forums at BoardGameGeek every so often. My hope with Titan HD was to expand the audience by making the rules take less manual calculation, as well as by providing an easy way for people to find real-life opponents. However, the choice to restrict the application to tablets has impacted the success of that goal. Eventually I want to produce a version of the game for other form factors, but the size of the Masterboard and the complexity of the information that needs to be presented have been challenging. So I’m likely to produce a desktop version of the game before a phone version, even though phones are far more popular.
SP: What has developing Titan HD been like, from a business perspective?
KG: That… is a long story. I first developed a software implementation of Titan in the late 90s using Java. In the early 2000s, I tracked down a representative of Hasbro at GenCon, who told me that Hasbro was unlikely to invest any effort in the title, even the effort of sorting out who owned the rights. (As you may recall, Hasbro had purchased Avalon Hill, but Avalon Hill’s rights relative to the original game designers was unclear.) I also talked to an IP lawyer about publishing independently, but that seemed very risky.
Then, in about 2008/2009, I learned that Valley Games was re-printing Titan. I contacted them, which took a pretty significant amount of effort; after a quick chat at GenCon 2010 and an initial positive sounding email exchange, things went silent on their end. Several exchanges later, I was about ready to travel to Canada and talk to them in person when I finally connected by phone. As it turns out, they were also considering other development options for an online version of Titan, including Big Daddy Creations, the developers of Neuroshima Hex (which, if you haven’t played it, is a really well done game and something of an inspiration for me personally). But Big Daddy decided the contract wasn’t to their liking for whatever reason and passed.
Over the first few months of 2011 Valley Games and I worked out the details of the contract. I had been actively developing the game for quite a while at that point on faith that the contract would work out. We finally signed sometime in late June/early July of 2011, and I crunched pretty hard to get the game out by the end of the year.
Things went pretty well for a while. Initial reception to the game was positive despite some pretty glaring lacks in the first version, such as the lack of introductory materials to ease new players into the game. Over 2012 I produced a tutorial video with the help of some friends and started working on the online play aspect. Sales were middling, but it was enough to justify my time as a hobby, and owning the development and production of a complex game like Titan was great experience that directly helped my career as a software developer in Silicon Valley.
Then, at some point, I got wind of the lawsuit against Valley Games. Now, there’s a lot of rhetoric on Board Game Geek about Valley Games, and I can understand why; Rik and Torben seemed to have bitten off more than they could chew running a company, and things had a tendency to fall through the cracks. Some of their business responsibilities stipulated in our contract never happened, like testing and marketing, and I picked up the slack quite a bit. But the lawsuit really floored them. I don’t know the details and probably don’t want to know, but it was obvious from my phone calls with Torben over 2014 that Valley Games was in trouble. They stopped sending me royalty checks (which I said was OK; as I mentioned, sales were only middling).
Sometime in 2015 it became clear that Valley Games was no more. After some more negotiations, Torben transferred control of Titan HD entirely to me in 2016; the final changes happened sometime around August or September of last year. There was quite a bit of consternation on BGG about the change as I described it; many posters felt I was opening myself up to legal action. However, the transfer actually has more legal weight than perhaps I described in my post (there are Apple contracts involved in transferring an iOS app, for example). Still, later this year I plan to retain another IP lawyer and go over my case.
In the meantime I’m planning to continue supporting the game the best I can. The 2.6.1 release (which I just posted about on the Titan HD Facebook page) may be the last one for a while as I sort through some of the business stuff.
SP: Do you have any interest in working on other games, or are you already?
I have the interest, but not the time. I’m not a full time game developer; I have a day job (also as a software developer), and a family. If development time on Titan ever tapers off I have a few ideas for smaller pocket-size games that I might work on, but it’s unclear when that would ever happen.
SP: Do you have any recommendations for rights-holders who seek dedicated development partners like yourself?
Well, I know my side of the story a lot better… I think if you find a developer who knows the game, you’re going to be better off. Contract developers are very efficient at doing exactly what you tell them, but it means you may need to do the production and interaction design yourself (or hire a designer for that).
I don’t know that there’s a secret to success. The industry is very finicky and every case is different.
SP: Has your work on the AI been largely informed by your own skill, or have you consulted others? Have you found any written work particularly informative?
I’ve definitely consulted others, but the AI is largely driven by the shape of the rule set as it exists in the game, which in turn was largely shaped by my own understanding. I’ve read David desJardin’s strategy hints, of course, and some of his hints were easy to translate into the AI, but some were difficult. The AI is still very weak at dealing with Titan battles and its understanding of end-game recruitment strategy is poor.
I’ve been working for some time now on AI strategies inspired by advances in go, another game I’ve studied a little. I worked with the author of Many Faces of Go for a while. He gave me some insights into how his AI works that I attempted to incorporate into Titan, but with limited success. It turns out that the AI design principles that work well for a deterministic game of complete information don’t translate directly to a dice-influenced game of incomplete information. There are also other differences that I strongly suspect are significant. For example, in go the game tree is always shrinking in complexity (the number of moves that can be made on turn N is generally one less than could be made on turn N-1). In Titan, however, the game tree continually expands and contracts as players consider movement, engagement, maneuvers, strikes, etc. The expansion and contraction makes it difficult for an AI to explore the possibility space in a way that gives reasonable results.
Now the big news of 2016 was Google DeepMind’s new go AI, AlphaGo. I’ve made some progress replicating their AI design for Titan; one advantage to this approach is that it can leverage the data accumulated from the online games that people have played in Titan HD, all of which are recorded. Implementing this strategy, though, is a tremendous amount of work, so I don’t know how long it will take for it to reach production quality. It’s become something of a personal quest for me to build an AI for Titan that plays as well as the best humans.
The key to AlphaGo is that it combines the basic algorithm of Monte Carlo Tree Search, which is explained relatively well on Wikipedia, with deep neural networks that shape the probability distribution used by the search. Deep neural networks are a much more complex topic than MCTS; I took several classes on this to get the basics down, and am currently using Google’s TensorFlow to help implement the network used by Titan.
There are a lot of different approaches to solving Titan using these tools, so I’ve spent quite a bit of time exploring to try to find the best one. My best guess right now is that the most efficient approach would be to treat each kind of action – move, muster, maneuver, strike – as a different mini-game, with a different neural network shaping the MCTS algorithm for each phase of the game. But of course that means basically replicating AlphaGo’s success several times over – hence the comment about it requiring a large amount of work.
SP: Titan HD has been around long enough that you’ve been maintaining a single app across a number of substantial changes in the OSes and ecosystems. Have you observed any changes which had a substantial impact on your work?
For the most part I’ve tried to keep Titan HD insulated from platform changes, which makes more sense for a game than for other kinds of apps. iOS and Android have each presented their own challenges. The game is implemented as a hybrid HTML5 app, which for the most part has worked out well, but on Android the HTML5 support is inconsistent across devices, and I’ve given up trying to support devices running versions prior to Jellybean (4.2). Then on iOS the policies around what WebView can do has changed over time, so nearly every iOS release I’ve had to spend a few days reworking something. iOS 10 was actually the first time Apple didn’t break Titan HD with an API change, but it also came with the removal of a good part of Game Center, which I still haven’t fully dealt with.
Probably the most frustrating thing about developing for iOS is the forced upgrade chain. In order to build on newer iOS versions you have to upgrade Xcode, which forces you to upgrade OS X, which forces you to upgrade some non-trivial number of other apps. Then support for older versions of iOS disappears in the chain. I’m currently running two different versions of Xcode: 8.1 so that I can debug on recent iOS versions, and 6.4 so that I can release software compatible with the iPad 1. This is most likely the last time I’ll be able to manage that trick; Titan HD 2.6.1 might be the last iPad 1 compatible release.