Try programming some simple 2D games first.
Don't expect you're going to write networking code or advanced collision detection systems any time soon.
If you want to succeed in college you need to have a passion for creating these internal systems, not just playing them.
And it's not like highschool where you simply need to do your homework to pass.
You need to do work that shows you can problem solve and be creative at the same time.
They'll expect you to go beyond their simple instructions and make something your own.
Just saying.
I know a 13 year old who built a working Quake3 level renderer from scratch.
There's a bunch of those kind of people, and if they do it, so can you, if you're persistent.
But that also means those people will be the ones you'll be competing with on the job market.
However, it's al about your drive to improve yourself, to be self critical and to be thinking outside of the box.
Having a steady evolution is more important then where your skillset is right now.
What supermoose said about FINISHING stuff is extremely important aswel
If you want to be a game programmer, or for that matter, any sort of programmer at all, here's the secret to success in just two words: Ship it. Finish the product and get it out the door, and you'll be a hero. It sounds simple, but it's a surprisingly rare skill, and one that's highly prized by software companies. Here's why.
My friend David Stafford, cofounder of the game company Cinematronics, says that shipping software is an unnatural act, and he's right. Most of the fun stuff in a software project happens early on, when anything's possible and there's a ton of new code to write. By the end of a project, the design is carved in stone, and most of the work involves fixing bugs, or trying to figure out how to shoehorn in yet another feature that wasn't planned in the original design. All that is a lot less fun than starting a project, and often very hard work—but it has to be done before the project can ship. As a former manager of mine liked to say, "After you finish the first 90 percent of a project, you have to finish the other 90 percent." It's that second 90 percent that's the key to success.
- Michael Abrash
About specialization: it's true that most developers search for people that are the very best at a given problem,
rather then bieng 'merely' good at everything.
However, if you're just starting out I'd focus on being a good all-around coder.
Firstly, you'll have some time to find out what kinds of stuff you enjoy doing most,
and secondly it's always good to have surplus skills down the road.