Hello, I want to get started to finding exploitable bugs on software. I already know assembly, C and reverse engineering. My aim is learn to exploit clients and server side applications, studying their protocols, etc. How can I do this in big applications like games?

How can I make a proxy that modifies sent/received packets on my game client?
What's the easier way to study a game server protocol?
And what's the easier way to implement a packet sender/receiver to delete the game client? (fake client)
Can I do all without a packet sniffer? Maybe injecting a DLL to steal packets on the game client? are there other ways?
An easy and powerful packet sniffer?
Does anyone recommend some good tutorials?