Catchup for iOS – the last 10%

I just looked back through older blog posts on here, and realized that I have not talked about Catchup as much as I should be talking about it given that it’s my next big game release. (I didn’t even have a blog category for Catchup until I added one just now!)

The game is really starting to shape-up and near completion. A few weeks ago I posted the vine above of the new hex particles when I got those working, and I don’t know why I didn’t post that here. My list of bugs is basically just down to one, and the list of features I want to add is also miniscule. Oddly, my TODO is still super long, but the only real tasks that I’ve committed to completing before release are: 1) Flush out achievements (there are a few in there right now, but potential for so many more), and 2) really hammer on the async code to make sure I’m utilizing all of apple’s push notifications to their full effect. This second one includes writing some code to show the async move as it comes from the server, if you happen to be looking at the game screen when that happens. It’s an edge case that a lot of apps ignore, but I feel a relatively frequent use-case, given the short-timeframe nature of turns in Catchup. Also, it will allow you to essentially play games in real-time, even though it’s still async code through-and-through.

One question I ask myself a lot is why it has taken me this long to get Catchup this near completion. There are lots of factors, of course, but I’d initially scoped the game (back when it was Ketchup) as a very quick-and-dirty conversion, really just the simplest game I could think of that would allow me to write the GameCenter asynchronous code that I’d been wanting to write. But after I got Tysen Streib to agree to help write the AI, and as soon as the game was playable against that AI, I quickly decided I should really make an attempt to put out a “full featured” board game conversion on my own. This meant a lot of things to me, but psychologically, I think the scope of the game ballooned WAY out of control. For a while there, I really thought I was going to write ALL the features I put in the TODO. If I’d had nothing else to do the entire year, from when I started Catchup in Jan 2013 until now, I might have completed all those features. (Instead, I spent about six or seven months of last year working freelance gigs so I could pay my bills.) I’ve also taken relatively frequent “breaks” to work on other games, mostly game-jam scope games, but I’ve spent over a month at this point working on Action Go, as well as about a week writing universal updates for DrawCade and my Fez Translator.

There are a lot of posts I could write about Catchup for iOS. Here are some ideas for topics:

– Why (else) has it taken me over a year to put this game out? (Short answers, which could all probably be their own blog posts: Polishing a game is hard! Managing scope on a personal project is hard! A “minimum” list of features for successful board game conversions turns out to actually be A LOT of features. And finally — this could probably be its own post — how bugs in your code can move into the realm of psychologically demoralizing and depressing, and possibly keep you from wanting to work on your project.)

– About Color customization, or why you shouldn’t allow your users to customize the colors in your app. (How I did it for Catchup; why it was “easy” but still took up A TON of time; and the trials and tribulations of using an open source library that is poorly written.)

– How catchup uses Generic Game Model. (Which is basically the story of why GGM has hex support at all.)

– About the features that I cut for version 1.0 of Catchup: showing a list of games with visual previews (like in Carcassonne!); ELO for online games; saving of all completed games, and the ability to review them turn by turn; IAP and/or Ad supported version of the game, Player avatars (or even just showing GameCenter avatars in-game). I could talk about how I chose (or basically, for a long time, didn’t choose) which features would “make it”, and which wouldn’t.

– A post about how much money Catchup needs to make for me to break even. (I’ve actually started this post already, but didn’t get too far, as it’s rather a depressing topic.)

– A post about the Game Center asynchronous code, possibly including making my GameCenterAsyncHelper class available publicly.

– A post about convincing other folks to work for nothing on your personal projects. Why it’s generally (I think now) just a bad idea. I suppose this could also be a post about paying for artists versus just making all the art yourself (where I started versus where I ended up).

Let me know in the comments if you really want to see a particular one of these ideas flushed out, or if you have some other specific question!

For The Win app — relaunching soon & app store rejection

003.ftw_splash@2xSo I mentioned in a previous post that the For The Win app I worked on for Tasty Minstrel Games was removed from the app store, (embarrassingly right before I spoke about it at GDC). When I emailed Michael at TMG, he revealed that it was just not making enough money to justify paying the $99 to apple to keep it there, and he was happy to let me put it back in the app store under my own account.

So I spent some time last Friday and updated it for iOS 7, fixing a few minor cosmetic bugs here and there, finally submitting it around the end of the day.

Long story short, Apple rejected the app, for the following reason: “11.1: Apps that unlock or enable additional features or functionality with mechanisms other than the App Store will be rejected” They clarified with the following statement: “We found your app inappropriately unlocks or enables additional functionality with mechanisms other than the App Store, which is not in compliance with the App Store Review Guidelines. Specifically, your app allows users to unlock avatars by subscribing to a newsletter, following on Twitter, or liking on Facebook.”

Okaaaay… So a couple of reactions: 1. Obviously, this functionality was approved in the original app. But maybe they just didn’t catch it then. And 2. Doesn’t like every 3rd game in the app store do this? I mean, seriously, I see games giving extra currency for FB likes or even just twitter comments ALL THE TIME. Doesn’t candy crush unlock each level pack with Facebook interactions? (Although now that I think about it, those interactions take their friends back into the app, which is maybe how they get around this issue.)

Alright, so my arguments probably amount to “But everybody else does it!” I’ll be making some changes to just give everyone the avatars all the time (and probably re-word the achievements) and upload a new binary… probably sometime later today.

Oh, and by the way, since the app was in the store for about a year, and presumably some people paid for it in that time, I’m just going to put it up again for free. So the folks who downloaded it before can get it again without having to pay. I am considering adding the following functionality in an update: making it Universal, and asynchronous multiplayer. If and when I do that, I’ll probably shout about it some, and then make it paid again.

Primitives and Hex Primitives

As a sort of follow-up to yesterday’s post on small-grid games, I realized that I haven’t made this pair of games public anywhere yet. (That I remember.) That post led to some Facebook discussion, where we got to talking about hex grids, and I mentioned that I haven’t seen any small hex grid games… but then I realized that I had worked on a design for one on-and-off last year!

Primitives is a relatively simple game where you place a card or one of your makers, or otherwise manipulate the gameboard. (I believe the last rules I playtested said you could do one of those per turn.) Manipulating the board means you could change a single card without a marker already on it, either by moving, rotating, or flipping it. By claiming a card, you “lock” it into place, and subsequently receive points for its symbols (and any matching symbols on adjacent cards) at the end of the game. The point values are dictated by the symbols on the center of the cards, either plus (+1 point) or minus (-1 point). Each card is double-sided, so flipping a card means it will change that symbol from + to -, or vice versa. The game ends when everyone has placed all their markers and all the cards are out on the board. More playtesting is probably needed, but I may need a rule that says something like: “If only one player has markers remaining, they MUST place it on their turn, and if everyone has placed their markers, the only available action is to place a card onto the gameboard.”

The first version was played with standard playing cards in a hex-like configuration. But I realized I could get more symbol matching in there (and more rotation) if I switched to hexes for the cards themselves. I also went from six symbols to three, for essentially the same reason. Here are some photos of various paper prototypes.

Primitives (version #1)
20140325-145301.jpg20140325-142342.jpg



Hex Primitives (version #2)

20140325-142311.jpg20140325-142258.jpg



These games were inspired by my playing Love Letter for the first time, and wanting to design a game that used a similarly ridiculously small number of components. (Love letter is played with a deck of 16 cards. Primitives is played with only 7.) I may try and bring this game to a Game Designer Sessions meetup tonight or in the future.

Action Go “in action”

Here’s a video demo of my latest project, Action Go, in progress. I’ve got all the code from Go-Tetris (the flash version) ported, and capture / territory counts are updating correctly. Now it just needs a bit of visual polish, a way to switch between game modes, a help / tutorial screen, and maybe some GameCenter leaderboards and achievements. There are a lot of other things on my wishlist, like score multipliers when you make more than one capture/territory at once (super easy), or one I just thought of today — a bonus/multiplier for when you clear all of one color or, better yet, the entire gameboard.

Anyway, here’s the video:

ActionGo – Quick and Dirty

I’m still trying to finish up Catchup, the board game conversion that I’ve been working on for literally about a year now. (Obviously not full-time.) But I decided the week before last to take a quick break from it and update DrawCade to support the new MFi controllers. That took me all of about three days, (the second update, version 2.1 that fixes some issues from the 2.0 update is now live, yay!) But most importantly, what I got out of those days was a wrapper that supports iCade style controllers (pretending to be bluetooth keyboards), as well as the new GCController style controllers. (The Moga Ace Power and Logitech Power Shell are the only two available at the time of this blog post, but the first Bluetooth one has also been announced, but is not yet available.)

Anyway, I promptly decided I MUST create a game that would use the new controllers. The obvious choice is to port Go Tetris to iOS. This has been on my TODO for a long time, calling it Action Go to match Action Chess, but the big holdup was that I have never been satisfied with touchscreen controls for Tetris. It can be done okay, but not great. I’ll of course have some “okay” controls in there, but now that there are some viable controller options, I’m super excited to get it playable, and decided it was worth putting Catchup off for a few weeks to do so.

I started the project a little over a week ago, and promptly spent a day getting some cool menu animations (using AGGeometryKit) in there. I made the following video:

Then I spent three days preparing some changes to my GDC speaker proposal. (Which still hasn’t been accepted, but also hasn’t — yet — been rejected.)

If we were counting today, this would be the 5th day I’ve worked on it. I’ve got the tetris aspects pretty much done, but the piece capturing and two-eye breaking aspects are not yet complete. That is the bulk of the code that needs to be “ported”, and consists of about 800 lines of ActionScript. I’m maybe an 8th of the way there. Ironically, I’ve got the touch-screen controls finished, but still need to shoehorn my shiny new controller class in there. I decided I wanted it to be playable first. I’m guessing it’ll be another week or so of work.

Root Down

icon_in_contexttl/dr: I just submitted an app version of a board game I call Root Down to the app store. The app will be free, and represents not all that much effort on my part, but if there is interest, I’d like to update it with AI and multiplayer.

What is it?

Root Down is a 2-player abstract strategy game where the main mechanic is that pieces flip from a state where they can move (kickers) to a state where they cannot move (roots) after every move. The key is that kickers must also be next to a root in order to move, and the number of spaces they move is also determined by the number of kickers next to each root. I spent an evening and adapted the game for iPad, and have now iterated on it a couple of times to the point where I think I’d like to get it out there and see if there is additional interest. There is no AI, and the game can only be played on an iPad with two players. Consequently, I can’t imagine it will get that much interest, but I still want to put it out there and see what happens.

Here are a couple of screenshots:

screenshot-1screenshot-2

(Yes, I know this looks awful! I have lost any html skills I maybe once had!)

Full Rules

The full rules for the game can be found in this public google doc.

Features

I could probably wrote an entire additional blog post about what features I decided to include and ultimately decided against including in this simple game. As I mention below, I essentially wrote the initial version of this app in an evening. Probably four hours tops. I knew I wanted to put it out there, get it in the app store, even though it’s pretty minimal in what it does. That initial version basically just had the following:

  • 2-player “pass and play” multiplayer (on the same device)
  • a rules popover
  • end-game popover with final scores

Yes, that was it. I spent another couple of hours adding the following:

  • an edit button on the game screen — This allows you to change the opening setup, and initially I thought it would be useful as a “poor man’s undo”, but it can’t undo capture counts, so it really doesn’t work for that.
  • a feedback button — This just opens the standard email popup.
  • an Abstract Puzzle logo that fades out to the home screen — This doesn’t look as good as I wanted it to, and I’m still debating pulling it from the next build. The problem is that I didn’t have a version of the logo with a transparent background, and the black on red ended up just looking okay, but not great.

App Store Submission

Apple rejected the first version because they didn’t like this bit in my app description: “This is an app experiment. There is no AI (yet), nor are there the other typical bells and whistles usually present in iOS board game conversions. If there is interest, I plan to add an interactive tutorial, asynchronous multiplayer, an AI to play against, universal (iPhone) support, and whatever other features are requested.” I removed all of that, and replaced it with a call to use a “submit feedback” button on the app’s menu.

Subsequently, (this morning), I found a bug in the end-game scoring. I’ll be rejecting the binary, and resubmitting in the next hour or so.

History / Backstory

A month or so ago, Christian Freeling (creator of Mindsports) started a contest on BGG in the Abstract Strategy forums concerning “activator” games, or games with pieces that “activate” other pieces. The idea percolated in my brain a bit, and suddenly I found myself on the floor with my copy of Card Chess, playtesting an idea or two.

I got enamored enough with the game that I wrote up the rules, and wanted to post them on BGG to get feedback, but I didn’t have a name. I started thinking about the pieces in my game that activate, and how they sort of put out tentacles to the pieces next to them, kind of like roots on a tree. Eventually the Beastie Boys’ Root Down popped into my head, and the name was set. Eventually I re-wrote the rules to incorporate “roots” and “kickers”, and “kicking it root down” from the lyrics of that song. I think it works pretty well, actually, for an otherwise themeless abstract. Eventually, I did post the game to BGG. I have also submitted the game to the actual BGG database, where it is pending approval.

A 4X Dice Game

dice-pnpThis project came about while I was joking yesterday afternoon with my friend Patrick about how we needed to rush a space-themed dice game to Kickstarter before TMG publishes Eminent Domain Dice.

I’m still working on my deckbuilding 4X game, so 4X mechanics have been on my mind a lot lately, and the more I thought about it, the more I actually thought a 4X dice game could be pretty cool. Right away I had the idea that you would take your actions at the beginning of your turn, then roll the dice to plan out your next turn’s actions. From there, the game practically wrote itself.

I went to BGG to post my rough draft of the rules (without any graphics or pnp files), and before I got that far, I discovered that the theme for this month’s 24 hour game design contest is dice. Well, that seemed awfully convenient, but reading through the rules, I’d have to do everything myself, prototype art and all… so I did.

The other thing I did for this project that I’ve never done before, because I think it’s part of the “complete board game package”, is that I wrote some “flavor text”. I’m actually pretty happy with it too. Here’s probably my favorite bit: “What gravity at the edge of a black hole, this calculating weight of choice?”

So without further ado, here are the rules (and PNP pages, including custom dice in two sizes), for my new game, which I am tentatively calling 4X Dice.

deck building with standard playing cards

I posted a set of rules on BGG this morning for an idea I had for a deck building game with standard playing cards. The game was specifically envisioned for the 2013 Solitaire Print and Play Contest. I think the idea could be expanded to a multiplayer game, but I haven’t done too much thinking about that yet. This was partly inspired by the contest, and also partly inspired by this neat RPG I found (also on BGG) called 52 Card Adventure (also playable with standard playing cards). Anyway, here my rules are, reposted here for posterity:

Object
Acquire all cards into your deck in as few turns as possible

Setup
You start with 10 cards in your deck, (all 2s & 3s, and two 4s). Also set asside the other 4s and two 5s for scoring. Shuffle the rest of the cards and lay out five of them (the lineup) for purchasing.

Turn overview
A turn consists of the following steps:

  • increment your score/turn counter (see scoring below)
  • draw 5 cards and use them to acquire other cards
  • put all the cards used, unused, or acquired in your discard pile
  • refresh the lineup back up to five cards

Gameplay details
Draw 5 cards from your deck each turn and buy cards using the values of the cards you’ve drawn. For example, you may buy a 10 of clubs by paying a 9 of diamonds and two of clubs. You do not get “change” for your purchase and the same card may never be used to buy more than one card.

You may only buy a card if you are using at least one card of the same suit.

If you buy a card using its exact value (a 6 using two 3s, for example), you may acquire another card from the lineup without paying anything for it. The “same suit” rule does not apply to the free card acquired in this way.

You may acquire as many cards from the lineup in a turn as you can afford/acquire.

Face cards (J, Q, K) may be acquired by paying their value (11, 12, 13), or (more likely) with the free card after an exact payment. When they are in your hand they may be used as their value (11, 12, 13), or you may discard them to draw additional cards from your deck. A Jack lets you draw one card, Queen two cards, and King three cards.

An ace may only be acquired as the free card from an exact value payment. Thus if the last card to be acquired is an ace and there are no other cards remaining in the lineup or lineup deck, this is the only way to lose the game. When an ace is in your hand, you may use it to acquire any card from the lineup regardless of suit or cost (other than an ace).

Scoring
Right now, your score is simply the number of turns it takes you to acquire all the cards in the lineup deck.

Lay a 4 and a 5 face-up near (but separate from) the play area. Place the other 4 and 5 face-down on top of them. The 4s are your “tens” counter and 5s are for 1s. On the first and subsequent turns, reveal one of the suit symbols on the face-up 5 by moving the face-down 5 on top of it. When you get to 5, flip the face-down 5 to face-up, and cover the other suit symbols. For six, move the top face-up card to revelal another symbol, etc.

(I hope this is explained well enough. I cannot take credit for this, as it’s how my family has scored euchre for years.)

Feedback desired
I’ve played through this a bunch of times (best score was 12). I think the scoring is the weakest part right now. Definitely looking for ideas on how to improve that.

ActionChess 1.7 Release Notes

new-iconActionChess 1.7 has been submitted to the app store. It’s a very minor release, and here are the notes:

* fixed leaderboard submission for Highest Level Reached
* new app icon courtesy of John Grider (http://brokencrow.com/)
* updated default graphics and one or two other minor changes

I hope you like the new icon, I really dig it!

Global Game Jam 2013 – Introducing “Heart Burn”

Here is my submission for this year’s global game jam: Heart Burn. Much like last year’s Global Game Jam, I wasn’t in attendance for all that much of the weekend after Friday night. But while I was there on Friday night, I made up a quick 25 card deck using colored post-it notes and a calligraphy pen. There were five colors and five “symbols”. You can see them in this image.

original_sm

Already August, (who I collaborated with for the first time on last year’s game jam game Eat Thyself), has come up with some better looking artwork, and he and I are planning on working together to polish up the app’s look and feel, and possibly publish it to the app store.

The concept and rules are quite simple: An iPhone app (code created during the game jam is up on bitbucket) will tell the players both whose turn it is to play, and what cards they can play. The game uses the “No cheating (please)” diversifier, which means that you’re basically on your honor not to cheat and play when it isn’t your turn or not to play the wrong cards. And it needs that diversifier, because, at least as it plays right now, the game is far too fast-paced to pay attention to anyone else’s cards!

About halfway through the weekend, I decided I should make the game playable without the custom cards, so I spent most of my time on Sunday making it work with a standard Euchre deck. If we release the app, it’ll have a setting to play it either way.

Here’s a clip on youtube of the game being played at the gamejam.