GDC 2014

Since I posted last year’s GDC badge, I figured I’d do it again. Be sure to scroll down for some of my thoughts about the conference this year, as well as being a speaker for the first time.


Being a speaker at GDC was definitely a double-edged sword. All bets are off if I get any consulting work out of it, but if you break down how long I spent preparing for my talk, I definitely invested more of my time than the cost of GDC admission. On the other hand, there were certainly less tangible benefits as well. I got to go to the speaker party, for instance, which was really only “valuable” in terms of meeting other speakers and making some industry contacts. I spent quite a while there talking to Chris DeLeon, for example, who runs Hobby Game Dev. (I finally decided to check out his site, and got completely sucked in, btw. Be careful, there’s so much content over there you can easily lose an afternoon!)

A bit about the process of being accepted as a speaker: When my talk was provisionally accepted, the organizers made some suggestions for directions they’d like to see the talk evolve, and made it clear that my acceptance was contingent on those changes. I (of course) had the opportunity to bow out at that point, but chose to work with them and make it the talk they wanted rather than the talk that I’d submitted. I would definitely like to be a speaker again if I have opportunity to present something I’m very passionate about, but that revision process is not something I think I’d like to participate in again, not because it was unpleasant in any way, simply because it really sapped my enthusiasm for speaking. In this case specifically, my talk was initially not so much about usability, and while I think usability is definitely an important aspect of game development, it’s not a topic that I’m super passionate about. If I speak again, I want it to be something I can get fired up about. (Certainly mobile board games are a topic that fits that qualification, but specifically because that aspect of the talk was deemphasized, my enthusiasm also suffered.)

GDC, for me, has always been about soaking in as much of the panels and content as possible. Performance anxiety really put a damper on that goal (certainly on the day of my talk, but it had ripple effects the day before and after) so that definitely felt like another downside. On the other hand the added prestige associated with the speaker ribbon was a definite plus, especially in terms of talking to and meeting people I would not have otherwise.

The other big difference this year was that I attended GDC from the perspective of an igdatc organizer. I went to various meetings and talked to quite a few other chapter organizers from around the world. My take-away from this is that we are doing just the right amount of stuff, I think. There are definitely chapters WAY ahead of us in terms of volunteer effort and event planning, but there are also chapters that put in way more effort and have less events and fewer attendees. Our new Multiplayer Extravaganza series is humming along, and many of us are super excited to create our own local multiplayer games to showcase there.

Finally, the other thing that felt different about this year’s GDC was that there was a lot more opportunity to PLAY there. In addition to the IGF booth (that has existed on the show floor for years AFAIK), as well as the “doing it on the table” (boardgames exhibit that I believe was new as of last year), and GDC Play (which is a paid exhibitor space where you can show off your game), there was also: the Mild Rumpus, Indie Megabooth, alt.ctrl.gdc, and a Killer Queen arcade cabinet randomly positioned near the expo hall entrance. All these were welcome additions, and made for relaxing interludes that definitely helped with that speaker anxiety I previously mentioned.

I feel like this entire week has been “coming down” from GDC. (Which probably explains my high-frequency blog postings.) I definitely feel more energized about game development after this year’s GDC than I felt after last year’s. I don’t think industry events like GDC are required to be a game developer, but if you are developing a game, attending GDC will feel like a giant room full of 24,000 people with whom you already have something in common.

When Board Games Go Mobile

When you consider some of the game design imperatives for mobile games — playable in short bursts, interruptible, simple touch controls, UI that fits on a small screen — you may not immediately think that board games are a good fit for the medium. After all, many board games are an all-evening affair, require complex strategies, and cover the dining room table while they’re being played. But there are several reasons that board games are extremely popular on mobile, even games without the marketing budgets and brand recognition of Monopoly or Chess.

First, it should be noted that these are games with an existing fanbase. With a few notable exceptions (see Solforge or Cabals: The Card Game), mobile board games already have a physical version. This means that there is a certain niche fanbase that probably already knows about the game. Quite possibly there are hundreds or even thousands of people who have already played the game and know its rules. Some games already have enthusiastic fans that will help promote a digital version without even playing it.

As anyone with a marketing background knows, the more times a person sees a product, the more likely they are to purchase the product. So a fan of board games might have seen it in their local hobby store or read about it on Board Game Geek. By having a digital version on the market, your game has a leg up on the competition by sheer virtue of name recognition. In fact, this cross-media marketing can go both ways. Notable board game publisher Days of Wonder has been fairly public about the boost in sales their game Ticket To Ride has seen when the app version goes on sale or is otherwise promoted in the app store.

Price point is also worth talking about, as most hobbyist board games cost between $20 and $60, and most mobile apps cost between $0 and $1. A board game conversion application can often command above-average “mobile market value” (usually between $3 and $10) simply because it is being compared to the price of a physical game that is priced considerably higher. To a hobbyist board game connoisseur, picking up a $5 app to “try out” a game that would normally cost much more is quite a bargain. If the game includes a tutorial (as it should!), it might even attract a secondary market in players of the physical board game who can’t, or won’t, be bothered to read a complicated instruction manual.

Design Considerations

All of this should not be interpreted to mean that you can ignore the mobile game design imperatives mentioned at the beginning of this article. In fact, those should be some of your primary considerations when you evaluate converting a board game to mobile. Can you shrink all the information onto a 3.5-inch screen? Can you adequately distill the strategies and experiences of playing that particular game into a single-player experience, and will that experience still be fun? Sometimes the answer to that last question is only maybe, or flat out no, but mobile has another compelling attribute that will allow the game to still be worth making: always-on internet! This means it is perfectly possible to make a mobile game that is multiplayer only. There have been some really successful examples of this, (Words With Friends, for example). Another important question is whether the game can be played asynchronously. What I mean by this is: can each player take their turn without needing the input of the other players? If so, this allows for non-realtime (asynchronous) multiplayer and vastly simplifies the implementation of single-device multiplayer.

I would still recommend you include a single-player experience if you can swing it. The main reason for this is related to the cross-pollination I mentioned earlier between physical and digital. Folks who already own a game will have less reason to pick up a digital version if it is multiplayer-only. Sure, they can play against strangers and over long distances, but it is incredibly compelling to be able to play a board game you enjoy without needing to wrangle up several friends to do so. Some mobile board game publishers claim that their usage stats also show more single player games played than multiplayer, but that is highly anecdotal evidence.

Another question to ask is: does anything need to change when going from physical to digital? Should you use the art from the original board game? (If you can, the answer to this one is absolutely yes.) Obviously, you don’t have little wooden bits to move around, but of course you could simulate those. What if the wooden bits in the game are just counters? Would it make more sense to just show the number they are meant to represent instead of showing the pile of wooden bits? Anything that can be represented numerically is something you should contemplate.

I’ll illustrate this with an example from one of the first (and still one of the best) iOS board game conversions, Carcassonne. Carcassonne is a tile laying game, where on your turn, you have a random tile to play. In the physical version, you randomize by making face-down stacks of tiles or by pulling one from a bag. Theoretically, you know how many tiles there are left “in the bag” (and even what kind they are) by counting the ones already played on the table. In practice, that’s rarely something anyone figures out when playing the physical game. Yet, in the digital conversion, the developers chose to show a list of all the tiles in the game, with the number remaining of each type clearly displayed. This simple inclusion immensely changes gameplay because players will spend less time trying to determine whether or not a particular tile will be available to them later in the game. This allows for a much more strategic playing of the game.

Final Thoughts

I don’t have space here to go into all the nuances of licensing a board game property for mobile conversion, but I will say that you can bet most of the more popular games have either already been licensed, or have some other reason for remaining unlicensed. There are thousands of board games, however, and there are many, many diamonds in the rough. Likewise, I could write an entire article about UI considerations. How to best represent physical components on a touchscreen device is question that has been answered many different ways already, and only a few great games have really nailed it.

A few board games have now been released simultaneously with their digital counterparts. Marketing a board game is not so different from marketing a video game, and platform dominance applies to both. There may come a time in the not so distant future when we expect these simultaneous releases. Perhaps someday, digital “conversions” will not be considered “conversions” at all, but rather, just another way to play the game.

Note that I originally wrote this article for the IGDA Perspectives Newsletter, and it was posted at the end of November along with the following bio (which I also wrote, just FYI).

Martin Grider has been developing iOS applications since late 2008, when he launched his first application ActionChess, a Chess and puzzle game mashup. At the end of 2012, he developed and helped launch For The Win, an iOS board game conversion for well-known board game publisher Tasty Minstrel Games. Martin is passionate about mobile game development as well as game design for both video games and board games. He is a proud member of the IGDA, where he has presented for the local Twin Cities chapter on iPhone Game Development, Mobile Game Design, and his own mobile games.

Abstract Puzzle Logo – Iteration / Evolution

Today I uploaded a new version of the abstract puzzle logo to

Here’s a compare and contrast:


I actually added the white cut-out lines around the text a few iterations back, but just hadn’t updated the website with that new look. But what’s gotten me really excited is the clarity and smoothness of the background puzzle/chessboard. In case it’s not abundantly clear, here’s a corner, zoomed in:


This is all thanks to my brother John. He came over a few nights ago, and we got to talking about my logo, and he’d actually done a new version of it for me! I’ve talked a bit before about the logo (and name) on this blog, and said then that I wasn’t happy with the quality. I think I must have mentioned that to John at some point also. Anyway, he sent me this new cleaned up version, and for that I’m extremely grateful. Thanks John!

For posterity, and because I think it’s fun, here are two the other versions of the logo that I did, the splash screen for Oppo-Citrus, and ActionChess 1.5.


For The Win is out now!

For The Win is out now and on sale at launch for only $.99 in the App store!

For The Win is probably the most ambitious game project I’ve ever worked on, and represents months of hard work. Surprisingly, I’m not even sick of playing the game, and supporting the project means there is a better chance that I’ll be able to add asynchronous multiplayer (and a universal version) in an update in the near future. The game is already packed with features, including five different AI personalities, with three levels of difficulty each, GameCenter leaderboards for number of games played and won against each AI difficulty. You can quit and resume your game at any time, (great for pass-and play games), and it’s easy to name the players and customize their colors and avatars.

I think it’s well worth a buck, so go download For The Win now!

For The Win

So the “big” freelance project I’ve been working on part-time for the last five months or so was submitted to apple last Friday. It’s public knowledge that I’ve been working on it, but I wasn’t sure if I could talk about it until yesterday.

It’s called For The Win, (app store link), and it’s a tile-laying abstract strategy game for 2 to 4 players. Unfortunately, the app took a lot longer than I’d estimated, and we didn’t get to put asynchronous multiplayer in there, but if the app does well I’m really looking forward to adding that in an update. (I think it will be a really fun addition to all the other games I already play that way on a daily basis.)

The game is played by placing tiles from your pool of five different types (Alien, Monkey, Ninja, Pirate, Zombie — everyone has two of each) next to each other on the gameboard until someone has all five types of their color connected. The difficulty comes in that you can’t immediately place next to your existing tiles, and have to manipulate them into position by either moving them, or using each tile’s unique special ability.

As you can see, the game really has a really great look and feel to it. The app was designed by Luis Francisco Baroni Coutinho, who has worked on art and graphic design for an absolutely ridiculous number of board games in the past. He took the game’s original character artwork (by Eric J. Carter), and designed basically everything else needed for the iPhone version.

The “client” for this project was Tasty Minstrel Games, and if there is one thing Michael Mindes did exceptionally well on this project, it was bring together a great team. The leader of that team was Brad Cummings, (of fame), and it has really been a pleasure to work with Brad, as he just really has his finger on the pulse of this weird little sub-niche that is iOS board games. He did all the early UX design for the app, as well as keep track of everyone’s tasks and all that other lovely stuff that a good project manager does.

The app also features five different AI personality types, with three different difficulty settings for each. One of the biggest technical challenges (and most rewarding aspects) of the game’s development was working with AI programmer Tysen Streib, whose work was so good that most of the changes we had him make were to make it easier to win against the AI on easy difficulty.

I didn’t work closely with him, but it’s worth giving a shout-out (since it appears that’s what this post has become) to the game’s original designer, Michael Eskue. I actually backed the board game on Kickstarter way back before I had even an inkling that I would be working on this project. Coincidentally, I got my Kickstarter reward copy in the mail about the same time I got started on development. Anyway, the game has real hidden depth and strategy. It can be a difficult one to wrap your head around at first, (and that may be the biggest challenge to this app’s success) but I genuinely think it can be rewarding to learn and play.

I will post again when it hits the app store.

Abstract Puzzle, the name, the logo

How clever is too clever? If a puzzle exists in the forest, but nobody is around to solve it, is it still interesting? (Translation: If you make a puzzle, but tell nobody that it exists to be solved, will anybody ever solve it? …probably not likely.)

I like my puzzles with well defined rules. I tend to get frustrated with really open-ended puzzles. (One of the reasons I never really got into crosswords, that and my brain is rubbish for trivia.) That makes the following admission all the more worthy of admonishment. Essentially, I was chatting with the designer for Oppo-Citrus yesterday, and it became clear that he hadn’t understood the logo I created for Abstract Puzzle (that’s it on the right). Now, I know the logo is rather amateurish in terms of graphic design, but I mentioned that I liked the idea behind it if not the execution. That’s when I got the blank stare. I had to explain to him that it’s meant to be a chess board made out of puzzle pieces. It’s a hybrid of puzzles and games. It’s a puzzle game. That hadn’t been clear to him, which of course had me questioning whether it was clear to anyone.

Now I actually think that one is okay. It’s just a logo. Its importance is in recognizability, not necessarily understandability. And I think it looks fairly unique. (Though, again, I’m thinking of it more as a first-draft than the final representation of my business.) It’s not what prompted me to write this post.

What prompted me to write the post was realizing that the name of the business actually suffers from the same issue. Only, I think there’s even less chance people are going to understand the name. So that’s why I’m writing this. To explain it. To give it away. So… um, spoiler alert. I guess. If you consider a puzzle nobody actually knows is a puzzle to be spoilable.

Abstract Puzzle — two words, meant to evoke another hybrid concept. “Abstract strategy”, my favorite kind of board game, and “action puzzle”, my favorite kind of video game. It’s just like the name of this website, Chesstris, only instead of combining specifics, it’s combining general terms.

So there you have it: Why I chose the name that I did for my new business.

How I keep track of TODO items

I came to a realization this morning. I am a programmer. I am not a professional emailer. When I want to get work done, I open XCode, I do not open my email. For this reason, it makes literally no sense for me to keep my tasks in a browser window. From now on, I’m keeping all my tasks in a TODO file with the project, where they belong.

Read-on for some history and analysis of my project management habits.

Continue reading

MailChimp signups from iOS – How to add a subscriber to a MailChimp Group

This week, I’ve spent some of my time integrating MailChimp into the client work I’m doing. I found some of the documentation lacking, and there is no example for how to add your email signups to a MailChimp’s list “Group”, so I thought I’d document that here.

(Astute readers who are actually reading from will notice the fact that I’ve got a MailChimp signup form on also. I haven’t done anything with it, and so far, I’m the only person who has signed up, but it’s there. I’m still sort of trying it out.)

MailChimp has an iOS SDK they call ChimpKit, which is available up on github. In general, it’s a great SDK, but the README has some installation instructions that are both incomplete and also pretty stupid, as far as I’m concerned. After fiddling around with it for a couple of hours yesterday, I’ve concluded that there is no reason to include their sample project as a git submodule of your project. The instructions I’m going to suggest basically don’t do that, so if you are ultra concerned with keeping up to date with the ChimpKit project (keep in mind it hasn’t been updated since 9 months ago), then read-no-further, and go figure out how to actually use the classes in their sample project yourself (since that’s what’s missing from their instructions). Personally, I think git submodules are a PITA, and not worth the effort anyway.

OK, so what you really want to do is the following:

1) Download the ChimpKit code. You can clone it on github, or just download, your preference.

2) ChimpKit requires SBJson, so you’ll need to include that project’s files in your project. You can do this as a git submodule if you really want, but you already know how I feel about those. You can also just add the files to your project and be done with it.

3) Grab just the files in ChimpKit’s “Core” folder and drag them into your project (or use the “Add files…” dialogue). Personally, I like to organize code in my projects in a certain way, so I copied the directory into my project’s “Externals” directory, and renamed it from “Core” to “ChimpKit”.

4) If you don’t care about adding your subscriber to a group, you just need to do the following:

4.a) Add the include: #import "SubscribeAlertView.h" to the top of your view controller or wherever.

4.b) Add this code somewhere, maybe after an IBAction or something.

    SubscribeAlertView *alert = [[SubscribeAlertView alloc]
								 initWithTitle:@"Newsletter Sign-up" 
								 message:@"To sign up for the newsletter please input your email address below." 
    [alert show];

Of course you’ll need to define mailChimpAPIKey_ and mailChimpListID_, but both are strings. If you don’t know your list ID, you can find that on the mailchimp website. (Or by using the “lists” api method, and you can see an example of that below.)

…and you’re done!

5) But assuming you care about adding your subscribers to the group, there are two ways you could go. You could modify the code in SubscribeAlertView, or implement the subscribe form yourself. I’m going to assume the former, and not go into the latter, even though it’s what I’m probably going to do since I think their popup looks like toasted a$$.

6) Next we’re going to find your list’s groups. You might be able to skip this step if you already know the name of your grouping and groups, because the API also supports adding by name, but I think this is a better way because a) you can use the ID, and b) you are sure to use the right strings, because you’ll be copy/pasting them out of the JSON. I actually had to perform this step because I’m not the MailChimp admin, I just have access to an API key.

6.a) First, set up the object you’re going to be calling this code from as a <ChimpKitDelegate> in your header, and #import "ChimpKit.h" in the source file.

6.b) Then implement the chimpkit delegate methods:

#pragma mark - chimpkit delegate methods

- (void)ckRequestSucceeded:(ChimpKit *)ckRequest {
    NSLog(@"HTTP Status Code: %d", [ckRequest responseStatusCode]);
    NSLog(@"Response String: %@", [ckRequest responseString]);

- (void)ckRequestFailed:(NSError *)error {
    NSLog(@"Response Error: %@", error);

6.c) Finally, you’ll need to run the following code to call the MailChimp’s ‘listInterestGroupings‘ API method. Again, you’ll need to define mailChimpListID_. (I just ran this in a ViewController’s viewDidLoad method.)

	ChimpKit *ck = [[ChimpKit alloc] initWithDelegate:self 

	// get the lists
	// [ck callApiMethod:@"lists" withParams:nil];

	// get the list groups
	NSMutableDictionary *params = [NSMutableDictionary dictionary];
	[params setValue:mailChimpListID_ forKey:@"id"];
	[ck callApiMethod:@"listInterestGroupings" withParams:params];

(There’s your example in there of how to get the lists.)

With any luck, you’ll get a response that is a big block of JSON. Use your favorite online JSON parser to turn that into something readable, and it’ll probably look something like this:

    "name":"Web Signups",
      "name":"likes chess",
       "name":"likes go",
       "name":"likes puzzle games",

7) Add your group subscriptions by modifying SubscribeAlertView.m around line 140 to look like the following:

		NSMutableDictionary *params = [NSMutableDictionary dictionary];
		[params setValue:self.listId forKey:@"id"];
		[params setValue:self.textField.text forKey:@"email_address"];
		[params setValue:@"true" forKey:@"double_optin"];
		[params setValue:@"true" forKey:@"update_existing"];
		NSMutableDictionary *mergeVars = [NSMutableDictionary dictionary];
		[mergeVars setValue:
		 [NSArray arrayWithObjects:
		  [NSDictionary dictionaryWithObjectsAndKeys:
		   @"9501", @"id",
		   @"likes go, likes puzzle games", @"groups",
		[params setValue:mergeVars forKey:@"merge_vars"];
		[self.chimpKit callApiMethod:@"listSubscribe" withParams:params];

You’ll also note that double_optin was set to false by default. That’s a stupid default, IMHO.

So there you have it. I think you could probably replace the @"9501", @"id" key/value pair with @"Web Signups", @"name", according to the API docs, but I only tried the ID. I also added some code to the SubscribeAlertView‘s requestCompleted:(ChimpKit *)request method to actually let me know that the submission was successful, but other than that, I think I’ve outlined everything pretty well. Let me know if you find this useful.

Oh, and so life happens and it’s July and Oppo-Citrus isn’t out yet. It’s still “right around the corner”, but as you can see I’ve started this exciting (no really!) freelance project. I was definitely hoping this would happen when I set out on my own, and it’s been going great! It’s 20 hours a week of my time, and it turns out that’s actually more than half my time as an indie. (I don’t think it’s because I’m not working 40 hours either, I think there are just hours you end up “losing” to email or twitter or whatever.) Anyway, last week was a holiday week (the boss gave me two days off!), and I’m planning on slacking some this week too, so I haven’t worked on Oppo-Citrus as much as I’ve wanted. The next goal is to get it at least submitted to apple before I leave for vacation the last week of this month. We shall see. We shall see.

Music for Oppo-Citrus

I have spent probably about a day of the last 2 & 1/2 weeks playing around with Pure Data and its iOS counterpart, libpd. After some digging and asking around, I think this is the best way to synthesize music on the iPhone. (By that, I mean generate music “from nothing”, rather than just play mp3s and stuff like that.) I now feel I know enough to be dangerous, but also have reached the point — inevitable in every learning endeavor — where I’ve realized and feel a bit overwhelmed by how very much there is yet to learn. Pure Data (and it’s closed-source predecessor Max) is one of those programs that is so open-ended that you could probably spend your entire life working in it. It’s not so much the program that is overwhelming though. It’s the realization that ultimately what I’m doing is making music. Even if I want to cheat in every possible way, it still comes down to composition. I am composing music. Pure Data is just like any other musical instrument (although possibly the most complex one I have ever encountered), and I’m just not sure whether my compositions are worthy of inclusion in a game.

So I’m going to look for a musician for Oppo-Citrus. One who can work for peanuts, or better yet, virtual peanuts, because that’s what I can afford to give them. Ideally, I’m looking to turn a grid of numbers into a looping sound mosaic. But more importantly, a mosaic that doesn’t completely suck.

I actually came here to write a post about having registered my LLC officially with the state. The name of my new company is Abstract Puzzle, and I’m sure you’ll read more about it in the near future. It’s already got it’s own facebook page, and if you’re reading this, and you haven’t already, it’s be super great if you could go over there and like it.

But then I started listening to my old friend John Keston’s music on SoundCloud, and felt inspired to write about my libpd “research”. Music is incredibly inspirational, and I’ve been reprimanded in iTunes reviews (well, maybe only one) for not including some in ActionChess. My reasoning was always that it’s also incredibly subjective, and one person’s mozart is another person’s … well, mozart. Anyway, music can be as abrasive as it is immersive. I really like the idea of creating a truly unique and interesting sound experience though, and I think if done correctly, that might be worth the extra effort.

Indie .plan

I did it. I quit my job to make games.

It’s been a long-time dream of mine. Now I just have to make it work. Here’s my basic strategy: I’m going to make games about 50% of the time (probably more this first month or two), and do some freelance the other 50% of the time to make ends meet. I’m hoping the games I release will eventually make up for the difference, and (ideally) eventually become enough income that I can stop working freelance.

I’m going to prefer freelance projects that are games. With any luck, I’ll be making board-game conversion apps for most or all of that time. If you have a board game you want to turn into an iOS app, please do get in contact with me. (You can send email to any address at

It’s a great time to be an iOS developer, so I’m not terribly worried about what happens when/if I can’t make enough money with my games.

So what am I doing day-to-day? I haven’t exactly been secretive about my latest game project, but I have yet to write about it here on my blog. It’s scary for me to do this, because my game isn’t all that complex, (and we all know how rampant cloning is these days), but that’s about to change in a big way. I’m planning on writing a blog post at least once a week about my progress, with the first one to come either tomorrow or later this week. In the mean time, a brief description: The game is called Oppo-Citrus (say it out-loud), and it’s one interpretation of the opposite of Tetris. (One that I haven’t seen before.) It’ll also have a fruit theme, which practically guarantees success, right?!? The artist who created the logo you see will be doing all the art for the game, and I’ve been really happy and excited about what he’s come up with so far.

Astute readers will note that I’ve created a new blog category for this post. I’m anticipating there will be other posts down the road about the business and how I’m doing. I’m actually torn about whether I should register an LLC for my freelance work or just “wing it”. Consensus seems to be that I should do the LLC. I’m going to try and get some advice from people who probably know a lot more about this kind of thing than I do, and if that’s you, feel free to chime in via comments or email or wherever. Thanks for reading!