Computers get faster every month, nowadays nearly every new computer has a hardware accelerated graphics card. But still there are some performance issues to think about. This is not only a good design and programming style but also essential for the platform compatibility Blender provides. So to make a well-designed game for various platforms, keep these rules in mind:
Don't use properties in combination with AND/OR/Expr. controller as scripting language. Use the Python Controller.
Use as few inter-object LogicBrick connections as possible.
Use ALT-D (instanced mesh for new object) when replicating meshes, this is better than SHIFT-D (copies the mesh).
Alpha mapped polygons are expensive, so use with care.
Switching off the collision flag for polygons is good for performance. The use of "Ghost" is also cheaper then a regular physics object.
Keep the polygon count as low as possible. Its quite easy to add polygons to models, but very hard to remove them without screwing up the model. The detail should be made with textures.
Keep your texture-resolution as low as possible. You can work with hi-res versions and then later reduce them to publish the game (see Section 25.3).
Polygons set to "Light" are expensive. A hardware acceleration with a "Transform and Lighting" chip will help here.
Instead of real-time lighting use VertexPaint to lighten, darken or tint faces to suggest lighting situations.