I think this topic is of general interest, so i’m reposting it for those who only read the GamingHorror blog.

Please visit www.learn-cocos2d.com to learn why you should ignore everything you’ve read about App Store Piracy!

Tagged with:  

So you got this PC/Mac game and during install or when you’re first starting it, you’re asked to enter a Serial Number like WARZ-DOOD-IROK-4331. Errr….

I would like to indulge on the serial mistakes companies make when it comes to entering serial numbers and why this process, if done wrong, only helps to reinforce software pirates.

#1 – Serial Number is not trivial to locate. Either there is no mention whatsoever in the “Please enter your serial number” dialog where to find the Serial Number, or that information is wrong. It doesn’t happen very often but when it does, it’s a painful experience. There is no standard place where a serial number is printed but it’s very common to see them printed on the backside of the manual, at the bottom, or on one of the disks itself. Hopefully that disk isn’t in the drive while you’re asked to enter the serial number! Less frequent but very annoying are serial numbers printed on the inside of the cover pages, either the first or the last page, along with other text and not visually enhanced with a thick border, red color or something to that effect. One game i know hid the serial number on a label underneath one of the disks of the DVD box. This may actually be a good place if that disk is the first disk and the setup program asks you to enter the serial number right away.

#2 – Serial Number font makes it hard to differentiate certain characters. The game SpellForce i worked on suffered from this very unfortunate problem. Certain characters like 0 and O or 7 and 1 were so hard to differentiate, and printed in a font that was way too tiny and consisted of dots instead of lines (as if it was printed with a needle printer), that consistently users entered incorrect serial numbers. It was a customer support nightmare. A good serial number does not use look-alike characters and either print the zero with a slash inside or do not use either 0 or O in their serial numbers.

#3 – The Serial Number entry box is a simple textbox. Usually the serial number consists of dashes to seperate blocks of 3 to 5 characters. A simple textbox leaves it up to the user to enter the dashes and makes it hard to spot missing or extraneous characters in each block. Take a look at how Microsoft implemented the serial number entry boxes – each block of characters has it’s own box and the dashes are already printed between the boxes. The cursor advances to the next textbox when you filled in the exact amount of characters from the first box. This is the best way to ask users to enter a serial number and it should be standard with all other methods frowned upon and getting a 10% review score deduction if they don’t use it. Game companies, please learn this lesson!

#4 – Dashes are added automatically while entering the serial number. This is the poor man’s solution of Microsoft’s (and other’s) serial entry fields which uses several textboxes with the cursor advancing (see #3). In this case we have just one textbox but someone thought the user needn’t enter the dashes and so they are added while you are typing. It does help to get the number of characters per block right. However, the problem with automatically added dashes is that they’re not immediately visible and the user will type them anyway! Sometimes you’ll even end up with 2 dashes!

#5 – Dashes are not printed at all. In my opinion this and the following are the worst kind of mistakes. Your printed serial number contains dashes but while you enter it in the single textbox it does not allow you to type dashes. Some users may frantically try to type the dashes and get frustrated, they may even think their keyboard is broken. You’ll end up with a long chunk of non-seperated characters and it makes it very hard to spot any mistakes or missing characters. Game Developers: DON’T MAKE THIS MISTAKE!!!

#6 – Serial Number entry box is case sensitive. A serial number never contains lower-case characters. Any serial number entry box that prints the letters as they are typed, which is usually lowercase, is just downright dumb and stupid. I’ve seen it myself: users start entering the serial number, they notice that the letters are printed in lowercase, so they go back and delete them and then enter the characters with the SHIFT key held down. Of course this can lead to other mistakes, like holding the SHIFT key pressed while entering a digit. Major disaster! There is no excuse whatsoever not to automatically uppercase any letter entered in the textbox!

#7 – Serial Number has several entry boxes but cursor does not automatically advance. Someone tried to copy Microsoft’s system but forgot to implement the crucial element to advance the cursor to the next entry box once the correct amount of characters was entered in one. This is a user interface nuisance which simply need not exist. That is a 5-minute task anyone can implement even during a rush to get things done quickly (aka crunch).

#8 – Serial Number is entered using the game’s ornate font. This makes the characters not look at all like the ones that are printed and in some cases makes the characters hard to distinguish even if the serial number itself took care by not using characters like O and 0. Do not use ornate fonts for entering serial numbers, period.

#9 – The Serial Number contains upper and lowercase characters. Yes, seriously, WTF !?!?!?! Use a modern serial key generator service that adheres to certain usability standards. Serial Numbers with upper and lowercase characters should be outlawed.

#10 – The Serial Number entry boxes allow you to enter invalid characters. Developers already know which characters are allowed in the serial number and which aren’t, so why not filter them out? Do not allow the user to accidentally or incidentally type characters which can’t be part of the serial number, like any SHIFT+digit character if the users does happen to hold down shift while entering the key.

Let’s recap, a serial number should:

  • be all UPPERCASE
  • not use similar looking characters
  • be printed in a standard location (back of manual)
  • be printed in a readable and reasonably large font
  • be visually highlighted from surrounding text or images to make it easy to spot
  • not be printed on the disk if it may be in the drive when the user is asked for the serial number
  • not be printed under the disk in the DVD case if the user is asked for the serial number before having had to remove the disk during install

The User Interface Guidelines for entering Serial numbers are:

  • one textbox for each chunk of characters with dashes already drawn between boxes
  • cursor advancing to next textbox when exact number of characters has been entered
  • entered characters are automatically and properly uppercased
  • invalid characters are not allowed to be entered
  • uses a font that closely matches the printed font / does not use an ornate font

It’s really rather simple, so why do i have to see these mistakes repeated over and over again???

Tagged with:  

I’ve learned a lot about iPhone game programming, cocos2d for iPhone and Xcode, Objective-C and the Mac OS in the past year. I want to share my knowledge pertaining to cocos2d in specific and iPhone game development in general. I’ve created a completely new website dedicated to cocos2d over the last 2 weeks:


I made a 90+ (!) pages Tutorial about how to setup an Xcode project for professional work, including cross-referencing the cocos2d project, optimizing the build settings and adding targets for all platforms and purposes (eg debugging crashes). You can view the tutorial on my website or download it as PDF!

Since after 10 years in the game industry i’ve specialized in iPhone Game Development using cocos2d for iPhone i will always have something to say or add to this website. Let me know what you think and if you like it, please tweet it and recommend it to your peers, thank you!

Tagged with:  
Page 1 of 212