I would like to create an FPS game but need to manage bandwidth on servers. What things do I need to design in to do this?
For example should I use TCP or UDP?
What data do I need to send and should I compress it somehow?
I'm thinking I need position, heading, pitch, firing gun boolean.
Other considerations I've missed? Any help is appreciated.
May I direct you to the best online resource I've found on this subject?
Networking for Game Programmers
I highly recommend creating a 2D networked game before you even think about making a 3D one. Once you've read Fiedler's articles, you'll have a much better idea of how to accomplish this.
Some general notes:
Have fun!