How to make a game run faster

My blend file is 12MB while, when packed with all textures, is 32MB.

There are 22k vertexes in 110 objets.

Mem: 30.47M (302.84M)

I don’t think it’s so much, but while playing it my AMD Athlon 64x2 dual core 5200+, 2700 Mhz runs up from an average of 15% at idle, to 80%-90%.

From time to time the game framerate falls sensibily and once in a period of 90-120 secs the games stay blocked for 2-3 secs.

There are only a few box type bounds and a sphere-type bound.

How come is it so difficult for my PC to play it? Could it be a problem of my graphic-card ATI Radheon?

I’m sorry I can’t upload the game itself but my connection to the net also is tremendously slow this period.

In general, how do I make a game run faster, once the objets are given? Use less quality texture? Seperate in multiple scenes or even multiple files?

Unless you’re actually suffering framerate problems, then I wouldn’t worry. The BGE is designed to use as much of a core as it can (it shouldn’t use more than one core because it’s not threaded), to get the maximum performance. This makes CPU usage a poor indication of actual performance. Also, it would help to give us the stats listed in the profile (Game -> Show Framerate and Profile).

The frame rate is 35, but during my game play of 150 sec, it falls three time to 5

Can you give us a blend file. Frame drops can be cause by bad scene setup, python scripts triggering on every frame…etc.
Just, the info you are giving us is not enough to help you.

python scripts triggering every second.

That one!

I controled and tapped two always sensors and I feeled it’s a bit better.

What do you mean with bad scene setup? I’ know it’s difficult but try listing anything it occours to your mind that can slow down the game and I’ll control.

I’ll try to get the blend file to the net in two days time.

http://www.megaupload.com/?d=AK2NZ9LN

I made it!

I think it is blender 2.5 so I had some problems getting it to load up, it’s missing some dynamic links I think.

Anyway. The main thing that could slow down the game is collisions and textures.
1. collisions.
It seems like in your game you have many objects which the player interactes with.

You can choose a different kind of collision type based on what you need:
>Triangle collsion box = good for a large ground area like outdoors with hills and valleys.
>box, cylinder or sphere collision box= good for the player and enemies. Keep it simple for anything that is moving around to stop them getting caught on edges or falling through stuff.
>Convex hull= good for objects in the level which have to fall over, roll or bounce. Can give a good representation of the real shape of the object without using a lot of computing power.

You don’t seem to have set any kind of collision type for your level objects. This makes the game very slow as it trys to figure out how to deal with them on the fly.
So you can set them to triangle collsion mesh, or you can set the visible objects to “no-collision” and then use invisible bounding box objects to represent the physical shape of the objects. This would be much faster.

2. textures.
Most of your textures are too big. You have a 2048x2048 texture called ground which is just plain tan colour. It’s really crippling your game. Also many of the packed textures are duplicates. I guess you have imported some objects which share the same texture.

Go through every object and remove the materials. Save and load the game a couple of times to clear out the unused textures.
Disable texture packing and start over with adding textures.

Make sure the textures are, at maximum 512X512. You can pack a lot of textures in to a sheet that size too. It shouldn’t just have a single crate side on one texture sheet.

Also make sure the textures are a size which is a power of two.
So 64x64 is ok and 256x256 is good, but 486x313 is no good for your graphics card.

After doing these things your game should run silky smooth.