Devil in the Details
Adding Polish to my Flash game
They say “the Devil is in the details”, or should that be “God is in the details”? It probably depends on whether you’re a glass half full or half empty kinda person… people who know me would say I’m the latter, and with the amount of time these details have been consuming, I’d say it’s the devil’s work.
I’m trying to add polish to my first Flash port of “Scrambled”, and in so doing, discovering a plethora of pitfalls. At the moment I’m grappling with leaderboard integration using Mochi’s API. It’s good, but not really designed to handle multiple category leaderboards out-of-the-box. I’m reluctant to write too much custom code at this early stage in case I find sponsorship and need to integrate with a different scoring API.
Aside from leaderboard details, I’ve also been adding touches to my game and uncovering corner case bugs. Here are some of the touches I’ve been adding to give the game a little “polish”:
Clear button
As a convenience I added the ability for the player to clear their robot’s actions in one click instead of having to resort to shift-click multi-select and delete.
Undo capability
Adding the ability to clear also added the ability to clear by mistake! I hate constant confirmations, so rather than add an “are you sure?” dialog (90% of the time you are), I’ve added a level of undo. My architecture made this a fairly simple task, but I quickly discovered it was possible to undo whilst a level was running, causing the robot’s program to change mid-task! The Devil’s work.
Interactive How to Play menu
This is pretty fundamental for a non-trivial game. And since my game mechanics aren’t a clone this was a necessary evil. The polish comes in making it clear and concise.
Mini Movie Intro
A huge labour for something that 90% of all players will skip… but it adds a nice touch. It uses brief captions to convey the storyline, but figuring out the timing for how long any given player will take to read them is a difficult task. I’ve decided not to play it automatically and risk boring players, so instead watching it is an option from the main menu. Definitely a case of diminishing returns on this devilish task.
Tool Tips
Now if you’re like me, (and most men out there), you never read the instructions. So my How To Play will seldom be seen. A common problem for Flash games is that users jump right in, invest zero minutes in learning how to play and then pan your game when they lose. But in this customer is always right world that we live in, it is our fault not theirs, even though we spent 2 days making an interactive how to play walkthrough and they spent more time writing a “this game suxes” comment than they did learning how to win. So, I added tooltips.
It is a difficult one for me, because the tooltip words clutter up the interface and are distracting, but for someone who hasn’t read how to play, getting familiar with which icon means what could be challenging. Tooltips should ease this path.
I’ve turned the tooltips off after the first seven levels, as by then hopefully anyone would have become familiar with the 16 different buttons (3 of which are the universal cut, copy and paste).
Code Optimisation
I’ve been profiling and tweaking to reduce file size and increase performance. But these are usually directly conflicting requirements. Hard work (and ongoing!), but hopefully will improve player’s experience.
Easter Eggs
I added Easter eggs to every difficulty level. This was an idea for giving the game a little bit of added interest and/or replayability, but it turned out to require a lot of code to adequately bolt-on this feature. I am really pleased with the feature but it was a pain to implement.
Close Button on the Message Windows
The user doesn’t need to dismiss the message displayed at the start of the game, but not being able to at all was a little annoying. Players might not realise they could start playing while the message was up. So I threw in a close button.
Spelling
There are few things less professional in software than poor spelling and grammar. I’ ve been trying to re-word my copy to be clear and concise, with correct spelling and punctuation. It’s harder than you’d think.
Rewards
Adding celebration/congratulation screens isn’t likely to increase the number of plays your game gets. But I am not writing this as a purely commercial exercise. I want my game to feel like its been well-crafted, and celebration screens are one of those touches.
Context Menu
Customising the context menu is easy to do. But it adds a wee touch of polish and professionalism. It also prevents players from meddling with settings that could compromise the appearance or playability of the game.
Cookies
I’ve also made the game remember whether you had music and sound on last time you played via Flash Shared Objects (flash cookies).
All these touches have taken far longer than I’d ever have imagined, but I’m hoping someone out there will appreciate them. But I do suspect most of them fall into the category of things that you only notice when they’re missing. C’est la vie.