Welcome to the nkk's code cache!

Before Releasing Your Game

Written by Nalin Kanwar (June 2008)


Hi! i'm nkk. Most of you on FBGD maybe knowing me. I thought i'd write a tutorial about how to give your game a good polish/finish. Many people forget simple things which if included in a game can avoid annoyance to the gamer. I've seen that loads of FB games lack the professional look(incuding mine. I recently acquired this knowledge). This is some basic things which people mostly overlook. Also, My english isn't that good.So bear with me :P. Now, Let's rock~!

Getting Started

First, Let's sort out the features.

1. Functionality and support
2. Game features
3. Polish and Presentation
4. Installation

Ofcourse this list isn't complete. But this is what i'm going cover in this little tutorial.

Functionality and support

Being programmers, Many of us would be a heavy multi-taskers. So, you must be aware how annoying it is when switching is disabled in a game. Do not disable this option! Disabling it will prevent many gamers from playing the game. Another similar feature is Windowed/Full screen mode thingy. Even if it is a mouse controlled shooter or something. If it is, then clip it to the window. Similarly, You should also allow the user to quit the game at any instant. And don't forget to unload the textures/memory before you quit. In FB, you can catch the close button press using inkey buffer (chr(255) + "k") and it's not that hard to implement. Another simple feature that should be added is Music "and" Sound control. Yes, Music and Sound are different things and you should allow the user to turn up/down individual volmes (Dont just put On/Off!).

Enough of this simple but needed crap, The next feature i'm telling you is generally added in EA games. You should add the machine compatibility tests. Ofcourse, this doesn't matter for small games but you should include it if your game is graphic intensive or processor/math intensive. Also, Checking for OpenGL compatibility before starting an OpenGL is necessary. People often ignore this one. But adding machine compatibility tests make your game more professional and though it seems useless, it tells the user whether your game will work on their pc or not instead of them waiting for the game to load when their pc is not fast enough to run it. Also, This helps in technical support and debugging.

Another important feature is to allow redefinable keys. Gamer should be allowed to change to the keys they are comfortable with. For example, Some people like to play "wasd" instead of arrow keys in some games. Adding Joystick/Keypad support is good but not neccesary.

The last thing i'd like to add in this is a website. Making a website of your game always helps publicizing it or even a page at your site. Website from where people can download the game, give feedback, Post screenshots and if its worth it or game is a large project, a forum.

Game Features

Lots of people slack when doing the things which i'm about to mention. Having music in a game always helps. Put sound effects for every possible event. Including those mouse clicks or menu options.

Highscore tables are effective way of keeping people interested in playing the game. An Online highscore system is really effective as the gamer can know how good his/her friends are playing. Really, its is more fun than it sounds.

Including beginner modes/tutorial levels is a good idea. It allows gamer to settle down with the game atmosphere. Ofcourse, Adding difficulty levels could counter this feature. Still creating tutorial levels is better than putting help screens or help files. Nothing is better than experience. In game hints/help are also fun to play with. Little popup/Chat captions work really nice and can explain games features. Including a strategy guide along with this is a nice idea. It works excellently with Rpg and Rts games.

Another option that many games lack is Pause option. It is really required, I don't know why many people don't put it in their games. Imagine this, You're playing an intense game and someone is at the door. but there's no pause in the game! (that poor person outside the door :P). Multi-taskers would understand what i mean.

Co-Operative/Double player mode is really fun and sometimes more interesting than single player mode. Nothing more satisfying than beating your game opponent! How much ever do you improve the AI, you're never going to make it as good as human brain. The real challenge is always when you play against a player.

Level Selection/Save games must be present. Although i think both should be present. Level selection with password is good enough. Allows gamer to skip through already played levels. A handy feature if you want your games to be played again and again. Level/Scenario is a sure shot way to increase the game replay value! Add some secret bonus levels and make sure they're worth playing the game again!

Polish And Presentation

I admit that the stuff i'm going to list out is far from complete but this are some of the most important things. Smooth screen transitions using alpha always rocks. Fade in and Fade out. Use it properly though, some times those alpha transitions can be annoying.

Another things which most of the FB games lack is screens! Loading screens can be useful to see if the game is loading or has frozen. High score screens are also a must. If your game is professional then you can put screens about what will be included in full version. Don't put nag screens though! They annoy the hell out of anyone. That'll detract some potential customers.

Adding screenshot support is a good feature though not always necessary. But it allows the gamers to show off their tricks/scores/achievements thus gives you more publicity. This works nice when you make a Rpg, Rts or Arcade game.

Most of the computers in world use English as primary language. But many people use different languages. If your audience is a specific community/region, Multi lingual support is nice feature and your game will spread farther than if you'd just used English.

For an Rpg/Campaign based game, A game progress indicator is a really good feature. Like maps with roads that have been played or marking out how much route has been covered.

Lastly, You can add skins and personalisation support. Like allow user to change the background, music, colours, choose/make his symbol, choose NPC's names etc. And last but not the least, Credits! Credits to all of your contributors!


Almost 99% games in FBGD lacks this! Most of them are just zipped. A good installer installs the game properly and gives options like link on desktop, program group with a meaningful name, option to run the game after installation is complete etc. Also, Your game installation must also include an EULA which stands for End User License Agreement. Read more about it here

Now that you got your installer done, only one thing remains. Yes, A good uninstaller as well. One that doesn't leaves any remains. Also, All the registry entries must be removed too. An option to remove player settings or not is necessary.


There you go! Many people might disagree on what i said in above paragraphs. But remember that this is all to make your game professional and polished. Ofcourse, These are optional features. But if you are serious about your game, you should follow this. Also, you may find this tutorial to be FreeBasic related but it also applies for games in any language.

Anyways, this was my first rant about anything :P. Hope you like it. And Sorry if my english was horrible. Cheers and keep creating excellent games!

This tutorial was written by Nalin Kanwar. You can mail him on nkk_kan@yahoo.com or visit his code cache.