It will take a bit of work. Definiately read up on networking, maybe even buy a book. It will also need to be "maintained" a little, making sure the packets are going to the right place, checking the logs and such. That being said, it sounds like a fun project, I say give it a go. At least you'll learn something.
A google directory
for some TCP/IP links.
Check out Linux Advanced Routing & Traffic Control HOWTO
as well. It will talk about using two uplinks (routers) to the internet. It will also allow you to prioritize the packets, so gaming packets go first, then http. Dynamic rate limiting is good as well (no one can capitalize the connection.)
You may or may not want to run the cache. On one hand, it conserves bandwidth, but then again, I don't want my friends to have a log of every web site I visit
Consider running a local mirror of the good stuff. Linux distros and such.
I would definately setup a test network (three machines) and try everything out before signing up. Use ethereal
(a graphical packet sniffer and decoder) to see what is really going over the wire. Really, start using ethereal now, it's cool and shows you the nitty gritty. You could use User Mode Linux
to set up 4 virtual machines that talk over a "virtual" network. More coolness.
How are you going to hook every one up? 802.11?