Archive for the ‘Release Notes’ Category

Catchup v.1.0.1 & v.1.0.2

Sunday, September 7th, 2014

Screen Shot 2014-08-07 at 2.46.50 PMHere are the release notes for Catchup version 1.0.1, which was approved and went live in the App Store sometime late last Saturday night (September 6th).

v.1.0.1
* added a setting to let you change who goes first in a vs AI game
* minor changes to text strings, mostly consistent capitalization of AI and Catchup (thanks go out to Martijn Althuizen for help with this work!)
* minor changes to Dutch localization
* relatively significant changes to the german translation
* fix for the “next game” button flashing after you take an async turn
* close the GameCenter UI if the app goes into the background
* misc additional minor bug fixes

Thanks again for playing Catchup!

After getting two emails almost simultaneously on Sunday morning, both letting me know their game over screens were reporting the wrong winner, I pre-pended the following message to the 1.0.1 release notes, and sat down to find the problem:

WARNING: this update actually causes inaccurate end-game win reporting on the game over screen. (The stats and leaderboard submission should still be correct.) This will be fixed in the next update.

And here are the release notes for version 1.0.2 that I submitted to apple on Sunday afternoon, (September 7th):

v.1.0.2
* fixed bug with incorrect winner name on game over screen (Sorry!)
* corrected title bar string on game screen

All of this illustrates one of the frustratingly difficult aspects of solo application development — regression testing. Or, for anyone unfamiliar with the term, testing existing functionality after a code change “to make sure everything still works”. Basically, it was my work on the new feature (letting the user pick whether or not they go first in an AI game) that broke the game over screen reporting. As bugs go, it’s fairly minor. (I don’t mean to belittle the frustration if you encounter it!) Nothing is crashing, and the win statistics are reported correctly, both to Game Center and the internal stats page. I definitely tested quite thoroughly playing against the AI before submitting 1.0.1, but I just plain didn’t think to check local multiplayer, and might have played through an async game, but I’m not 100% sure. Anyway, I clearly didn’t encounter the bug. (Or didn’t notice if I did.) The specifics are kinda funny: the wrong player name is reported as winning the game in async, but only to one of the players. (Which player depends on who actually won the game.) In the local multiplayer scenario, it basically always reported player 1 as winning.

I have plenty more features to work on for the next build I submit, but figured I should get this fix out there ASAP.

Catchup v.0.9.1 & v.0.9.3 – release notes

Friday, August 15th, 2014

Screen Shot 2014-08-07 at 2.46.50 PMCatchup version 0.9.1 hit the app store earlier this week. Here are the notes that shipped with that version:

v.0.9.1
* russian localization
* german localization
* settings screen: delete local saved game when changing manual AI level
* fixed a bug with tutorial step 3 not getting displayed
* made popover text scrollable if necessary
* translated a few more strings for all localizations

new in 0.8.x
* traditional chinese localization
* added HSB sliders to color screen, cleaned up UI
* fixed crash in iOS 6

I have been learning a lot with this release, namely about how much extra work localization entails, but Game Center async code stuff also. In fixing a bug at the last minute related to determining whether a Game Center game was still valid (specifically, it goes through and checks all the players to make sure their “match outcome” isn’t set), I introduced another bug, this one making Game Center invitations completely fail, as the match outcome is in an “unknown” state for those, since the invited player hasn’t accepted it yet at that point. Apologies to all the folks who ran into this!

A few minutes ago I submitted build v.0.9.3 to fix this issue. The complete release notes are as follows:

This build fixes a really horrible bug with Game Center “invite” games ending as soon as they began. My apologies!!!

Thank you very much for playing Catchup!

v.0.9.3 details
* fixed “invite” games ending as soon as they are created
* number of “your turn” games is sometimes incorrect, (I need to reset all helper arrays when the UI opens)
* crashing bug when you delete an async game in which it is your turn, start a new one, then click next game after taking your turn (need to re-create all the arrays in the async helper)
* swapped positions of share and close on the game over screen.
* added a new “use english instead of XXX” button for non-english localizations
* lots of fixes for Dutch translation text, some english ones
* credit for Dutch translator in English localization

v.0.9.2
* dutch (nl) translation
* minor change to make one of the tutorial steps a bit more consistently worded

I did use the official form to request an “expedited review”. I have had good results with that in the past, but also know someone who had it “not work” recently, so we shall see.

An Introduction to Generic Game Model

Thursday, April 10th, 2014

Here are my slides from the presentation I gave tonight at the MN Cocoaheads group about my open source 2D game framework, Generic Game Model.

Description
Martin Grider will share and discuss a few classes he re-uses from project to project allowing him to rapidly flush-out 2D games. The classes themselves are not all that notable, as most developers could probably re-create them in an afternoon, but the techniques are particularly suited to rapidly prototyping turn-based games. He’ll discuss some of his favorite rapid prototyping techniques, as well as talk about “juicing” animations in UIKit, (with a bit of quartz core, as well as a bunch of external libraries thrown in for good measure).

Commentary
As you can see, if you looked through the slides, I have already used this code in a rather large number of projects in the last two years. I was surprised myself, to be honest. At least 8 projects use this thing, 3 of which are in the app store.

My first Cocoapod
While prepping for the talk, I also turned the project into a Cocoapod. I had played around with cocoapods once before, only long enough to install it and run pod install on a test project, (a process which is, if anything, too easy!), but actually creating a pod myself was a new experience, and bit more work than I’d expected going into it. Anyway, you can now add pod 'GenericGameModel' to your projects to try it out for yourself.

Thanks to Bob McCune for running the show and letting me speak!

A 4X Dice Game

Wednesday, September 4th, 2013

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.

DrawCade v.1.1 submitted to Apple

Thursday, December 27th, 2012

dc_ss2I originally put together DrawCade in an evening because I wanted to use the iCade for something, and I saw a need. As far as I know, it is still the only drawing application for the iCade. It’s no longer the only iCade app I let my daughter play. (But that’s more because she’s getting into “her” iPad, and has lots of go-to apps now. — Incidentally, YouTube is still the killer iPad app for her.)

Here are the release notes for DrawCade v 1.1:

* Added sound effects courtesy of my 2-year old daughter.
* Triple-tap to open a preference pane with settings for draw speed and turning sounds on and off.
* Enabled drag gestures, so it is more useful now without an iCade (although I don’t know why you would use it without one).
* The preferences pane also has a button to “erase it to black”, as well as a way to see more apps by Abstract Puzzle.

This update was “inspired” by the fact that DrawCade probably gets more downloads per day (on average) than all my other apps. (It’s free, but that was true even when ActionChess was free too.) I wanted some soft cross-app-promotion in there, so I added a preference pane. While I was at it, I figured I should enable drag-to-draw, since my one negative review is about how the iCade is pretty much required to use the app. That’s no longer true, but I don’t know why you would use your fingers to draw with this when there are SO MANY other absolutely great drawing apps out there for the iPad.

I spent yesterday morning re-writing the drawing to use my GGM (Generic Game Model) classes, and then the afternoon adding the preference pane with the buttons to view AbstractPuzzle.com and all my other apps in the app store. I had one really great preference item, repeat rate for the drawing (this was absolutely needed), but was struggling to think of anything else to put on there. I decided sort of late-afternoon to add some sound-effects. This was an idea I had when originally making the app, that the color buttons could also speak the name of the color as you pressed them. I figured it’s mildly educational. Then I had to pick up Colleen (my 2-year old daughter) from daycare. I ended up recording her playing with the app, and prompted her to say all the colors. Now I think the sound effects steal the show.

Just listen to her saying Abstract Puzzle.

Fun statistic: DrawCade had 45 downloads on Xmas day. iCade for christmas anyone?

Oppo-Citrus 1.1 release notes

Sunday, December 16th, 2012

Here are the things that changed in Oppo-Citrus 1.1. (Waiting for review with Apple.)

* new TAP control scheme – Tap instead of drag to place the bottom row. Hopefully this clears up the confusion about how to use the menu. Can be used in-game also.

* There is a now a music track!!! Access volume controls from the pause menu. (But it sounds great, thanks Tori!)

* New sound effects – sounds for level complete

* Fixed visual mismatch between level select screen graphics and actual levels for levels 3 and 4

* custom games – disabled mini pieces (too many bugs with it)
* custom games – disabled horizontal powerups when piece size is anything other than normal

* about screen – added “all apps” button

* Fixed a crashing bug with completing 200% on level 11. This also fixes the “all levels 200%” achievement. (Special thanks to @brackeen for reporting.)

Oppo-Citrus v.0.8

Tuesday, November 20th, 2012

Oppo-Citrus is live today in the app store.

I sort of forgot it was going to be released today, and the app description, which I’d fully intended to replace with something more descriptive, was simply the following:

Oppo-Citrus is a puzzle game with a catchy name!

Drag the row of fruit from the bottom into the middle of the gameboard, and try to make shapes of 4 or more of the same fruit. It’s that easy!

Enjoy!

So what I’ve settled on (hopefully it’s beter) is the following:

Oppo-citrus is a puzzle game where you drag a row of fruit squares from the bottom of the screen onto a grid to make shapes of 4 or more of the same fruit. As the shapes are removed and points are scored, additional levels are unlocked. Each level introduces some new mechanic or combination of mechanics. See how high you can score on each level!

Play Oppo-Citrus and enjoy the following features:
– 11 unique levels of increasing difficulty and complexity
– hand-drawn pixel graphics for iPhone and iPhone 5
– stereo sound effects made entirely using the sounds of fruit
– GameCenter leaderboards and achievements
– Beat the 11th level to unlock the custom game mode, for unlimited replayablity!

Enjoy!

Anyway, please consider giving Oppo-Citrus a try. I spent about six months making it (part-time), so I hope it’s worth at least a buck. And let me know if you have any problems or find any bugs. Thanks!

ActionChess 1.5 Release Notes

Monday, November 12th, 2012

I’m in the middle of the process of submitting ActionChess 1.5 to apple. There is a ridiculously long list of things this build adds from the last one, which was… oh back in October of 2010. That’s over two years ago, and that means I’m a slacker! Anyway, that list includes:

* GameCenter achievements and leaderboards for all game modes.
* Retina graphics for normal iPhones (iPhone 5 support in the next version… probably).
* New “tap-based” input method. (The old drag-based method still works also.)
* New AbstractPuzzle/ActionChess news feed.
* New help button on the home screen.
* New “wiggle” animations when pieces get near the top of the screen.

There are probably about 500 other minor changes. Unfortunately, that list doesn’t include fixing the one or two UI bugs I know about (that annoying flashing that happens *sometimes when the level changes is still there, I’ve seen it). Here’s a list of things I want to tackle for the next version:

* release the more or less completed static-Puzzle mode
* modernize the interface to support iPhone 5, and possibly (hopefully) the iPad
* fix those bugs I mention, and quite possibly give the graphics an overhaul

Thanks for playing!

App Release: Fez Translator

Tuesday, May 15th, 2012

Here’s the description for my latest app in the app store, the fez translator:

******** SPOILER ALERT ********

This is a fan-made app to help with the translation tasks that take place in the game Fez for the Xbox. If you want to figure it all out for yourself, read no further!

Essentially, this is meant to help with the task of translating the various glyphs found in Fez. I found it useful, maybe you will too!

I’ll fully admit that the idea was not mine, (my co-worker @breon gets that dubious honor) but all the implementation choices and decisions around those were mine. I basically spent about 2 hours on this app. The first hour was creating pretty much everything but the delete and back buttons, and then the second hour (a day or two later) was spent implementing the back and delete buttons, and submitting to the app store.

I hope some folks like it. I spent a few hours playing fez with it in my hand. It sure beats trying to do the translations in my head (with nothing but an image to reference in my photos application).

ActionChess Update 1.1.5

Tuesday, May 12th, 2009

A new ActionChess update (1.1.5) is in review. Here are the changes in the update:
– Minor changes to help text across the board.
– New scheme for saved games. One save per game mode is allowed. You can return to the menu to save your game, so when you unlock a new game mode, go try it out right away!

If you’ve been paying attention, (and I don’t know why you would be), you’ll notice that the version numbers should all match now also. There was a discrepancy between all the various versions because I wanted to number things 0.1.x, but I’d launched with 1.0 (by default, I just hadn’t changed the string in my plist project file), and since apple only allows upward version number changes, I had been trying to mirror the “real” version number, but with one instead of zero. This is a silly little discrepancy, but I’ve given up and moved everything to 1.1.x to avoid confusion.

As I mentioned in an update to a previous post, I wanted to get “global high scores” and a new “Puzzle Mode” into this update, but both features are proving to be fairly time consuming endeavors. I do have some progress into both tasks. So far, I’ve finished most of the shell for puzzle mode (still needs some UI love, and there are a couple of bugs). I’ve also programmed enough puzzles in to figure out that this mode is totally worth the effort. It is harder to make puzzles than it is to solve them, but I should have some more progress made by this weekend. I’d like to launch the feature with 100 puzzles. I don’t know how realistic that is, but that’s my goal for now.