Where I live my ISP does not give IP addresses out. My external IP address is the same as my external if I plug directly into the wall with no router. My ISP does give everybody a "router", that is really terrible for gaming. I have heard that it's really dangerous to plug my computer directly into this line since there's no router, but how can someone access my computer with my IP address? Do they have to use software to sniff packets, or is there something as simple as basically remotely accessing my computer by typing my IP into software? I am buying a router that is better than the one provided, but I was just interested.
Most if not all ISP's now only give out one IP and expect users to have a router. IP addresses at least for IPV4 are a commodity.
It is much more likely that you will initiate the compromise of your system via flaws in software already running on your PC, than someone external cracking their way in. With any basic firewall running on your PC or router most attacks from the internet are silently blocked.
That being said, a compromised PC which is directly connected to the internet can immediately become a web or file server/email relay/whatever the cracker wants as once the PC is compromised,he can then simply disable the firewall. A PC behind a router (where the cracker doesn't have access to configure the router) can still only affect the PC's on that local network and generally initiate outgoing traffic.
Having your PC directly connected to the internet is dangerous if your PC is not configured correctly and a router is better suited for most every task you would then be asking your PC to do anyway.
In short, the benefits of having a router outweigh the negatives.
I've tried a lot of brands of routers over the years and I am partial to Cisco. Get a mid-level Cisco or a high level Linksys (made by Cisco) router.
Change the default username and password used on the router!
uPnP allows an application running on your PC to open holes as needed in the router firewall. Very convenient for setup, but another security hole. Enable uPnP during the setup and initial usage of your application. Once your app is up and working correctly, disable uPnP at the router.
Don't use wireless unless you have to. Getting wireless to work without any hiccups is a whole other discussion. It also adds to the latency.
If your pc has a firewall which blocks all incoming packets, and is patched up to date then you can be relatively safe. I wouldn't recommend it though, add you are missing layers of protection which a router can give you.