I already have a working concept of this.
I plan to be releasing a WIP with a demo in about a month.
I can speak from experience there's a few key things about speed:
1. Don't Use The 2D Draw Commands.
Even a single dot on the screen can half your framerate. Use a 2D Plugin instead if you have to.
2. Break Levels Into Invisible Sections.
You can hide whole parts of the level without any calculations by knowing the camera is inside an area not visible to the others.
3. Use Timer Based Movement.
Don't forget to apply this to player controls. They need to be scaled with framerate also.
4. Use A Heart Beat.
A lot of stuff doesn't need to be checked every frame. Especially gameplay related things like taking damage in traps, etc. You can group this work into a function that is called once a second or half second etc.
5. Build An Image/Object Management System.
Instead of directly using Load Image or Load Object, have a system that manages what images/objects are loaded. So when images are loaded, the system can return the image number of the already loaded image, or clone the object and return the new object id. This vastly reduces memory usage and load times.
6. Cull Everything You Can.
Cull everything outside of the screen, and too far away. For things nearby behind walls, see advice #2.
7. Use Box Detection, Avoid SQRT() Usage.
A lot of times when comparing distances, using a box area instead of a circle is good enough. A lot of times you can compare squared distances and skip taking the square root also.
8. No Video Media.
Don't use AVI files to animate textures. Build a texture cycling system instead.
9. No Shaders.
You might want to ignore this one a little. Problem is a lot of netbooks won't be able to use your shaders. Either don't use them or include a fallback inside of a settings menu.
10. Video Settings Menu.
This is important because you need to support several resolutions, and you need a way to turn off any shaders you might be using. Things like draw distance also go here.
11. Make Mute Sound/Music Turn Them Off.
Why process sound if you can't hear it?
12. Don't Use Extra Cameras.
Anything that uses additional cameras is going to be slow.
13. Don't Process AI Every Frame.
Build the AI to keep doing what ever it's last action was. Then process some of the AI each frame. That way nothing stutters.
14. Decouple Game Loop From Display Loop.
This is more important if you have any plans of including multiplayer. You need to be able to handle things like networking more rapidly.
15. Don't Draw A Sky Indoors.
You can't see the sky anyway.
16. Reduce/Omit Distant Effects
Anything far away should be reduced or ignored completely.
17. Ignore Animating Hidden Objects And Effects.
Don't process animation for anything that is culled.
18. Load Media You Know Will Be Used.
Common objects, images, sounds should be preloaded and not streamed in when needed.
19. Build A Sound Management System.
Keep track of what sounds are used. More frequently used sounds are kept loaded and given loaded status priority. This reduces the need to load sounds during active gameplay.
20. Don't Unload What You Need When Level Changes.
Try to avoid reloading things that are already loaded. Don't keep what you don't need, or you might run out of memory. Just try your best.
21. Turn Off AI When They're Dead.
Dead people don't LOS hitscan for targets.
22. Turn Off Collisions For People You Can't See.
Do this ONLY if you can get away with it. And don't do it for anyone nearby.
23. Turn Off Collisions For People Far From Collision.
If you can figure out a quick check method eliminate the workload.
24. Turn Off Collisions For People Not Moving.
If they don't move, they can't collide with walls. This includes overriding gravity if standing on the wall.
25. Use FOG To Hide Distance Clipping.
What they can't see can't hurt them.
26. Use Dark Levels To Hide Crappy Object Detail.
It's what the professionals do.
27. Distance Clip Sounds.
If they are too far away to hear then don't process them.
These are some of the most important Speed tricks I've learned making a FPS. I could hit 100 with non-speed related advice.
Edit: Threw in some screens to spice things up.