What are some prerequisites to game design and programming? (i.e. 3d modeling, scripting, etc).
You might want to take a look at Unity. It has a pretty strong community to help you out with game design stuff. If you're interested in 3D Modeling, 3DS Max and Maya are the standard industry tools.
Fortunately if you have an .edu address the world is your playground. Alot of engines and products out there offer an "education" version that you can download and use to play with. They are usually free. I would just recommend stay up to date with technology because landscape is always chaning.
I really like Gamestar Mechanic if you have not tried it. In addition to online skills building, they have a number of exercises that get you thinking about game design in different ways, and can be done with friends.
I second looking into Unity for a solid game engine. Unreal Engine is another popular one that recently became free for students. If you're interested in the game design aspect of game development (i.e. gameplay mechanics, level design, etc.) I recommend also reading resources about game design. One I've read in the past was a text called "I Have No Words & I Must Design: Toward a Critical Vocabulary for Games" by Greg Costikyan. It's a really interesting read that allowed me to think about gameplay in a more structured and logical manner. On top of that - play a ton of games. The more exposure you have to games, the more resources you can pull from to create the best game you can yourself.
As people have mentioned, Unity and Unreal Engine are two very powerful game engines that you can start tinkering with right now without paying a dime. From there it's really all about consistently working on projects that interest you, and you'll soon have a pretty good understanding of everything that goes into making games. There's a wealth of resources available to help you along your way - one website that I'm particularly fond of is PixelProspector which covers all aspects of game development from design to distribution. I would also look into Ludum Dare, which is a regularly occurring game development competition. It's a great way to meet like-minded (and often very talented) individuals as well as keep yourself motivated.