I've worked on many, many platform games in my..uhm..klik career, as it were. Each time I made them, I found I could do something that would be better than the previous game, be it level design, enemy positioning, whatever.

I feel I know enough to suggest the best ways of creating a platformer.

The Main Character and General Graphics
Put some effort into the main character! Not a ball with a hat on, going by the moniker of testicle-man (and that was perhaps what I did wrong with Sleep Dreams). Don't use any library objects from TGF, MMF, whatever. Go to the trouble of making your own, however basic. Also, it might be an idea to design your level tiles in advance. It's always tempting to rush the graphic tiles and get on with designing the levels; don't do this. Pace yourself, and only begin level construction once you're happy with your graphics.

Level Design
When I first started making games, I crammed as much as I could into each level. I left no space un-turned, and looking back now, this was undoubtedly a bad thing. All the levels felt claustrophobic and tight, and often doubled back on themselves. Generally with levels, I tend to make them about 8000 pixels in length and perhaps about 800 pixels high. Obviously, if the level was based in some tall tower, the pixel rate would be reversed, but in general, I find it best to create the former size.

Also with level design, never ever make the levels too flat. I don't wish to cause arguments, but I'd like to refer to Mr Malibus 2, by Zellix. It was a pretty cool demo, with some nice graphics and enemies. However, the level as a whole was repetitive and very flat. Try to make variations on the type of terrain you encounter. In addition, try to avoid using ladders and instead use moving platforms or jump - through ones instead.

Platform Engines
This is probably the second most important part of a platformer, after level design. All the klik products come with standard platform movements which can be tinkered with (you can alter gravity and speed and the like), but in the end they end up being very limited. Plus they have a stupid flaw that always seems to be overlooked every time a new klik product comes out...the flaw being that your character seems to have velcro or something attached to his/her/it's head, and by holding down shift you can get stuck to ceilings. This is also notable when you stick to the side of the playing area.

For someone making platform games, the custom platform movement is invaluable. Some examples came bundled with The Games Factory, but they are fairly dodgy. Platform engines at first seem to be exceptionally complex to build, but I find the best way to make a great engine is to group them: Movement, Jumping, Falling and Animations, where the Falling group would only be activated if an action had been met during the Jumping group. It sounds complex, but the only way to get better is to practice. Several klik websites have good platform engine examples (<a href="http://www.faind.com">Fallen Angel</a>, <a href="http://www.klikresource.net"> Klik Resource</a> having good examples), and you could always search the <a href="http://www.clickteam.com">Clickteam Forums</a> for any other examples. Practice makes perfect. A year ago, I wouldn't have had a clue on how to make one. Now I'm picking it up quite nicely.

Level Obstacles
Imagine this: you have a great level design, great graphics, a perfect engine, but levels full of..absolutely nothing. There must always be something to do in a platform game, be it fighting enemies, jumping on springs, pushing blocks around, pushing combinations of switches, whatever. If you add enemies to a game, make sure you do NOT cram the level full of them. Pace them out, so that once the player has killed one, he can take a breather and move around a bit, rather than inch forward waiting for the next bad guy to pop up.

Another thing never to do is make frustrating jumps for the player. It's all very well wanting to increase the difficultly level, but don't make the game unfairly hard to play.

And make the obstacles relevant to the levels. For example, if you're in a green forest, you don't expect to be seeing laser guns and mechanical cogs clogging up the level. It takes away the realism. Likewise, in underwater level design, never use lasers. Didn't you ever learn science? Water conducting electricity and all that?

And on the positioning of enemies aspect, never put the player in a very difficult situation. For example, jumping on a spring, only to get blasted by a goat on two legs holding a rocket launcher that you knew you couldn't see. Make the game fair and reward the player for getting through a difficult bit.

To increase longevity even further, add collectables and hidden mini-games. Make the player explore the levels and earn his/her keep, don't just give the rewards if they don't earn it.

I hope this helps anyone who's having problems with platform games. Don't just use my style though. Try your own, and see what you come up with.