Super Foul Egg iOS Retires

Good news, everyone! Super Foul Egg for iOS is now unavailable. I’ve been considering pulling it down for a while, mainly because I have no time to maintain it or fix any of the bugs in the game. They are only minor - the app icons are wrong and one of the menu screen bitmaps is the wrong size on retina iPads - but they irk me every time I pick up my iPad. That this is only my eighth post this year should be a good indicator of how much free time I have. In the 18 months that the iOS version was available, at the wallet-busting price of “free”, it managed to attract a grand total of 370 punters. Clearly very few people will be inconvenienced by the game’s retirement.

What finally prompted me to retire the game was a very friendly email from the original game’s author asking me to pull my version from the store to make way for an upcoming release of his own. This is fantastic, partly because I no longer have to feel guilty for not releasing updates, but mostly because I am terribly excited to play an official remake. I’ll post a link up here as soon as it appears in the app store.

The 370 folks who enjoyed Super Foul Egg can still find the OSX version at superfoulegg.com, and the source code for the OSX and iOS versions is hosted on GitHub:


Super Foul Egg Moved

Super Foul Egg will soon disappear from the Mac App Store as I’m not renewing my developer subscription. It is now available from this new and hastily created website:


The latest version is 1.4, which matches the build in the App Store.


Super Foul Egg for iPad Released

Finally, after months of procrastination:

This one got straight into the App Store.

Obvious changes from the OSX version are:

  • Two player mode removed (still got a bug in the garbage transmission code);
  • Controls designed for the iPad touch screen;
  • Controls displayed via icons on the menu screens;
  • Pause and exit buttons whist in-game.

Less obvious changes are:

  • Multithreaded AI;
  • All code refactored.

I’ll open up the source code soon.

Give the game a try and let me know what you think!


Source code can be found here:

Apologies for its current scrappiness; adding networking support has meant changes all over the place. I remember reading an article years ago by a developer who suggested that networking should be built into a game from the start rather than added later as it’s a huge pain. I definitely agree with him.


Super Foul Egg 1.4 Rejected

Another rejection! This time the reviewer changed the left and right directions to the same key via the prefs menu and rejected the game because the left and right directions are mapped to the same key.

Really, Apple? Really?

EDIT: Apple reviewer makes idiot developer eat own words when the developer finds obvious bug. Resubmitting it now. Will it get rejected because two directions can be assigned to the same key? Or will it get rejected because it doesn’t remove the borked prefs file saved by the last version?


Super Foul Egg Resubmitted

Half an hour or so of hacking gave me this solution:

Whenever an unrecognised key is pressed, the above popup appears listing the current controls. Pressing a known key causes the popup to disappear.

The reviewer had a legitimate complaint - the controls aren’t obvious. Hopefully the ability to change keys via the Preferences menu option mitigates that, and the new popup should encourage players to have their fingers on the correct keys when the game starts up.

I’ve submitted SFE 1.4 to Apple. What’s infuriating is that the update will no doubt languish in their approval queue for the next month.


Super Foul Egg 1.3 Rejected

After a month of waiting for the Apple guys to get their act together, SFE 1.3 finally got rejected today. It seems that I was unfortunate enough to land the only person to have never played the Game Boy version of Tetris as a reviewer. He couldn’t figure out how to use the menu system and got stuck on the game type selection screen.

I’m trying to think of how to make it not just idiot-proof, but Apple-reviewer proof. If I change the menu so that any key press other than the movement keys jumps straight to the next screen I can’t imagine that even the most ham-fisted oik could fail to figure it out.


Super Foul Egg Updates

Getting updates into the App Store is a far simpler process than getting the first version ready, mainly because I’ve already gone through the tedious process of getting the various certificates installed. Updates still seem to take the same amount of time to get reviewed as new apps, though: SFE 1.3 has been in their queue for 9 days so far. I’m hoping that competition from Windows 8 and its app store will force Apple to streamline their approval process. If Microsoft could guarantee that they would approve apps and have them ready for sale within two days I’d bet that developers would abandon Apple in droves.

I currently have two SFE updates queued up. 1.3 replaces TTF with BMFont labels on the menu screen, making it usable on the retina MacBook Pro. It also has sound effects when choosing a menu item. 1.4 (not yet with Apple, but you can grab the sourcecode and compile it yourself if you want a sneak preview) includes the following changes:

  • Replaced the “Controls” window with a preferences panel allowing keys to be redefined;
  • All game settings - keys, game type, speed, height, etc - are saved;
  • AI is multithreaded for a small speed boost.

The multithreading is a neat (if obscure) change. The AI works by simulating all possible moves when it is given a new shape to play with, which means it must run 24 simulations (4 rotations multiplied by 6 positions) of a complete move (move shape right 3 times, rotate twice, drop 12 times, remove chains, drop eggs, remove chains, etc). Each simulation produces a single value that represents the score for that move. This is obviously a lengthy calculation but is something that could very easily be done in parallel, so I’ve used dispatch_apply() from Grand Central Dispatch to run the entire 24-iteration loop in one go.


Super Foul Egg In The App Store

Super Foul Egg is now available from the Mac App Store!

This version includes the final menu screen, allowing players to choose the number of egg colours in a game, the drop speed, the starting number of garbage egg rows, and best of 3, 5 and 7 games. It also includes a “Controls” menu item that opens a window that shows the keyboard controls and a new icon.

It’s free, so give it a try!

The current version has one known bug. The text in the menu screens doesn’t render properly on retina Macs; it’s a known problem with Cocos2d’s TTF support. I’ve fixed this in the BitBucket repository by switching to a BMFont instead of TrueType, so I hope to get a new version up soon.

Now that’s out of the way I can write the usual grumble about the process of getting software into the App Store. My iMac refused to codesign the binary so I couldn’t release it on that machine. It kept insisting that there weren’t enough teams (or some similarly meaningless error). It was right - my provisioning profiles in the Xcode Organiser had “Unknown” listed as their team. Trying to refresh via the Organiser didn’t work. I eventually discovered that the way to fix the problem was to delete absolutely everything from the “login” keychain and refresh in the organiser, but not before I’d spent two hours fighting with the damned thing and switched to my MacBook instead.

On the MacBook, I discovered that I had too many teams. My last employer didn’t get around to revoking my access to their iOS developer team. I removed myself, but it seems that removing access doesn’t remove me from the team. I apparently have to contact Apple to do that, which I assume is because Apple love their developers so much they want to interact with them whenever possible. It’s not that they hate their developers and can’t be bothered to make a UI for that function.

In total, giving Apple $99 for the developer licence probably took about 10 minutes. Getting codesigning to work took about 3 hours. The approval process took exactly 2 weeks. Going from “ready for sale” status to appearing in app store searches took 6 hours.


Really Bad Eggs OSX Demo

Here’s a preview release of the Mac version of Really Bad Eggs:

For those of you without a Mac, here’s a screenshot:

I’ve been debating what to do with the game when it’s finished. I can either:

  • Open-source it on BitBucket;
  • Release it via the Mac App Store;
  • Release it as freeware on this blog.

If I want to release it on the Mac App Store (which would be neat) I’ll need to sign up for the Mac Developer Program. That’ll cost me $99 that there’s little chance of recuperating. There are a couple of Puyo Puyo games on the store already for bargain prices. I haven’t tried them so I’ve no idea if they’re any good, but Really Bad Eggs would probably need to be free to get any downloads at all. I won’t put advertising in the game, so there’s no chance of making any money from it.

I’ll also need to replace the graphics and sounds. I haven’t been able to track down the original developers so can’t get their permission to use their assets. I’m sure they’re great people and would have no objection to me using them, but I’d rather not get the game pulled due to a copyright dispute. Fortunately I know a couple of great artists who have expressed an interest in helping to replace the graphics, so that’s not too much of a hassle.

Releasing it as freeware is much cheaper (it’s free). If I can get the game listed on something like MacUpdate it should get plenty of exposure.

The last option is to open-source it. As a huge fan of open source software I’d love to do this, but I’m loathe to supply a finished game that someone else can release via the App Store themselves.

Anyway, the game in its present state is playable but has no presentation screens. The CPU is set to its hardest level, and restarting a game requires the player to restart the application. It has a few improvements over the DS version:

  • The larger screen let me include the blocks at the bottom of the two grids;
  • The garbage egg landing animation is more effective;
  • Eggs drop off the bottom of the losing grid when a game ends;
  • It includes the original background graphic from the Amiga game rather than the truncated DS version;
  • The incoming garbage indicator is in the original Amiga position at the edge of the screen, rather than on a separate screen where it can’t easily be seen.

Have a play and let me know what you think. Controls are included in the readme.