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.


Super Foul Egg News

Super Foul Egg is now complete! I just need to put an icon together for the app. I’m thinking of using the original Amiga icon as the basic design and redrawing it for the higher-resolution Mac.

Source code is here:

You’ll need Xcode 4.4 to compile it as I’m using the new array literals I mentioned in the last post.

Binary release will come later. I’m thinking of paying for the Mac developer licence so that I can stick it on the Mac App Store as a free game, but I’m a bit dubious as I have failed to track down the original authors in order to request permission to use their game assets. I know that they previously released the game as open source (it was ported to the Acorn Archimedes, where it was released as an Acorn User coverdisk, and it had a Java remake too) but I can’t track that down now either.

I’ve found the Archimedes port in a few places, but the zips are either corrupt or in some weird Acorn-specific format that modern software can’t open. The current holders of the RISC OS rights are rabidly protective of their software and firmware so there’s very little chance of getting an emulator up and running in order to extract the archives to find out if there’s a licence file contained within. I don’t really want to stump up £49 for a ROM that might not actually work, especially as that would nearly double the cost for getting SFE into the App Store.

Remakes are tricky things and I’ve had mixed success with mine so far. IK++ drew a nastygram (but a very complimentary nastygram), Mario Bros MX prompted a suggestion to apply for a job (but the closest Nintendo office was about 3,000 miles away), and EarthShakerDS was received very well by the original game’s author (but was ultimately killed by some guy who bought a videogame back in 1984 and hasn’t done anything of note since). Quirky recently had his Lords of Midnight and Doomdark’s Revenge remakes killed by the original author, which is a shame. And rather pointless, as the Spectrum TAP files are still on the World of Spectrum. And I’ve still got the Crash covertapes with the games on somewhere.

All of this is very discouraging.


Super Foul Egg 20120714

Another Super Foul Egg release:

This one reduces the difficulty of the “Hard” AI to somewhere in between the old level and “Medium”. I’ve retained the old “Hard” level but renamed it to “Insane”.

I’ll get around to the last menu eventually. The problem I have with Super Foul Egg development is that I’ll add something, compile it, try out the change, and then end up playing the game for an hour or so and forgetting that I’m supposed to be writing it, not enjoying it. At that point I’ll have no time left to do anything else. Plus, I’m really sick of creating menu systems.


Super Foul Egg 20120702

Here’s the first release of the newly rebranded Super Foul Egg for OSX:

This version includes the original title music/screen, plus a basic menu for choosing the game mode (practice, easy/medium/hard AI, two player). This build probably requires Lion, but I haven’t got any older OSX installs to test on.

It also includes an improved AI that I wrote months ago but didn’t get around to blogging about. The old AI tried to figure out where best to place an egg pair based on the number of connections that a given placement would make. It tried every column for both horizontal orientations, and each outcome was penalised for increasing the overall height of the playfield. The new AI creates copies of the game grid and runs simulations of all possible moves that it can make. It takes into account sequential chains, chain lengths, garbage egg removals and overall grid height. Once all of the simulations has run it chooses the move that produces the highest score.

The new AI doesn’t consider the pair of next eggs that are due to fall, but as I don’t recall ever beating it on its hardest setting (with the standard 4 egg colours) that isn’t really a concern. The main motivation for rewriting it was to improve its performance with 5 and 6 egg colours (which aren’t exposed in the menu system yet). If I remember correctly, the new version beats the old one most of the time.


Really Bad Eggs OSX Becomes Super Foul Egg

My plan to replace the graphics and sounds in the Mac version of Really Bad Eggs never came to fruition, so I’ve decided to switch back to using all of the original assets and the original name. The Mercurial repository can now be found here:

Recent changes include the addition of the original title music and title screen. I’ve also upgraded it to the latest release candidate of Cocos2D version 2. The options screen is the only remaining feature to complete before I can make a new release and move on to a new project.


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.