I'm currently teaching game development. I have taught it in the classroom and on line since 2004. I run a mailing list for wanna be game developers, I have run it for more than 10 years. I helped a college develop their game programming curriculum, for some reason they won't let me teach game dev there any more :-) I used to be game developer. I only did that for 2 full time years, but I was in the computer graphics industry for 10 years after I got my MSCS and before I went into game development. After being part owner of a game company, programmer, and technical director, I moved on. I went to work for a fortune 50 company doing technical and business analysis for games. Now I'm a teacher. And, I am damn near 60 years old. Oh, yeah, I also did 5 major start ups not counting my times as an independent software developer. I had founders shares in 2 of the start ups.
I designed my first game (not a video game :-) when I was 12 and my first paid programming job was porting games from a minicomputer to a mainframe back in the early '70s.
I have a large number of students from my classroom classes who are working in the computer game business. Most of them are developers. I have an even larger number of people who started on my mailing list who are now working in the game development business. I think I have something to say about this subject.
First off, the best way to get a job at one of the Majors is to create a successful independent studio and then sell you studio to one of the majors. Sure, you can get hired at one of the Majors, but then you will be just like the rest of the toilet paper. Cheap, disposable, and only really good for one use because after you use it it is covered in ... well you get the picture.
OTOH, if they have to *buy* your company they will respect you at least a little bit and you will at least have a nice office and a real salary. But, get the money in cash, not in stock. Stock is like toilet paper... Cash is something you can spend.
Secondly, the best way to get any job in game development is to develop games and sell them or find some other way to make money off of them. Yes, by fart the best, easiest, and most lucrative way to get a game development job is to start your own company. If you do not know how you can learn how quickly. Most states, the federal government, many cities, and every community college I know of in the US has courses on small business management and entrepreneurship. Take them, and make sure you get at least on class on contract law while you are at it. Those classes along with a couple of semesters of probabilaity and statistics will be worth more to you over the next 40 years than anything you learn about programming or graphics. All the tech stuff will be obsolete in 5 years, the business, statistics, and law stuff will still be accurate.
As for education. A degree in CS used to be a good place to start. I'm not so sure about that anymore. If you go to a school that only uses one language all the way through (especially if that language is Java or C#) you should find a real school. But, it is still probably better to get a CS degree than a physics degree. Math is kind of a wash. A math degree with a CSMS is not a bad combo. If you can find a school that offers CS degree with a strong emphasis on software engineering you are in pretty good shape. You need to take trigonometry, college algebra with computational geometry, linear algebra with lots of matrices, calculus, numerical analysis, and probably differential equations. I didn't get linear algebra and DiffEQ as an under grad so I had to teach my self linear algebra and I'm married to an ME so I go to her when I need help with DiffEQ. But, you really need at least DiffEQ to understand physics. Yes, you also need to take physics at least a good introduction. A couple of years of physics in high school is good enough. You need need to take a few art classes. I would suggest an art history course, and courses in something like introductory painting, drawing, or sculpture. You also need to take a survey of history. Learning to play a musical instrument, or doing a lot of singing helps. Take at least one class in creative writing, and one in technical writing.
In your computer science studies take a 3d graphics or multimedia programming class. But, seriously, if you have the background in math, art, music, and programming then learning computer graphic and sound programming is not a challenge. But, you must take everything you can about programming, software engineering, data structures, simulation (you may have to go over to the industrial engineering department to get that one), databases, formal language theory, machine architectures, theory of computation (yes, you need to understand the differenced between a finite state machine and an infinite state machine), network architecture, and anything else that looks interesting to you. Yes, you might have to get an MS to get all those classes or take night classes after you graduate to get all this stuff. BTW, you can take the classes without getting a degree. I have an MS but I have more than 45 "extra" hours that have not been applied to any degree. Education does not stop when you get your degrees. In many ways that is when it starts. I have a stock certificate in a non-existent company that I keep the same folder that has by BS and MS degrees. I learned more in 1 year than I ever learned in school.
Oh my, what a list. Do you have to have all that before you start writing games? *NO* you do not. If you want to be a game developer you are developing games right now no matter what level of education you currently have.
Here is the real punch line:
If you want to be a game developer you are already a game developer because you are already writing games. You have at least one game that you are developing right now.
You do not have to work for someone to be a game developer.
You can tell what someone really wants to do by watching what they are doing in their spare time. If you spend all you spare time at the pub drinking with your mates, that is what you really want to. If you spend your spare time reading books about game development and design and coding your own games then you really want to be a game developer. If you can not figure out how to start learning to be a game developer you do not have the problem solving skills needed to be a game developer.
The advice I give to my students is based on the history of Id software. That crew worked for a magazine that was published on a floppy disk (the 5.25 inch ones) and they had to write a game every month. The magazine paid them to write a playable fun little game every month that went out on the floppy. The skills needed to do that are the same as the skills needed to write WOW. Basically the ability to create a doable design. The ability to stick to a schedule. The ability to write code that works. The self discipline to stick to a plan. The ability to realize when you need to cut your losses. The ability to put down the joy stick and write your own games instead of playing other peoples games. The basic interest in doing something real instead of spending your life being entertained.
My best advice is to pick the design of a game you like that can be coded in a month. A week is better, but a month will do. Pick something that you can do using freely available art or something that does not require any art. If you can do your own art that's great, but remember that artists are cheap so don't waste time of being an artist if you can be a developer. Then code up your game and play it. Let your friends play it. Then put it in your portfolio file along with a document (yes you need to write) that details what you did right, what went wrong, what you leaned, and what you wish you knew more about. You need to write that document so that you will actually do the analysis of the game. BTW, if you get stuck or you hit the end of the month without being done. STOP. Write the document, go learn what you were missing. Write some test cases to make sure you know what you just learned. Then start a new design. Don't back and try to fix your old code. Even if you go back to your old design start over. DO NOT USE YOUR OLD CODE. People get emotionally attached to there old code. As a wise wise man by the name of Dr. Art Evens once said to me, "You fall in love with what you make love too". Too many programmers refuse to dump their old code because of the investment they have in it. They will spend years working on broken code because they can't bear to just flush something they have spent so much time on.
Everyone I know who has followed this advice, is now working for a game company as a developer or is making at least some money as an independent game developer or working for an independent studio. Most students refuse to believe this advice. Many students are incapable of following this advice. But, all who have are working game developers.
I explained all this to a student in a C++ for game programmers class. He started following it that night. He dropped out of the class because he got a job as a full time programmer at a fairly large studio. He recreated a number of the old block graphics game programs from the '70s and '80s in C++ using DirectX. He spent nearly a month on the first one. Less than two weeks on each of the others. He picked the best two and sent them around to local game studios. He got replies from most of the studios that he sent his portfolio too and he was hired during his second interview. Yes, he already had a CS degree which helped.
OTOH, I have had a couple of Ph.D physicists take my classes and immediately get good jobs at major studios. A Ph.D in particle or theoretical physics plus a portfolio containing a couple of simple games is likely to get you a good job in many parts of the entertainment industry.
Most of my students are not working in anything resembling game development. They expected to take a series of classes and then be hired by the majors because of their straight A average. That does not happen. You need the education, but you must love game development enough to do it on your own. You must have the problem solving skills needed to find solutions to problems like "how do I learn to program games". You must be willing to take reasonable will thought out risks like the risks involved in starting a business. And, you have to be able to figure out how you are going to make money.
Oh yeah, before the artists out there try to flame me down let me pass on a bit of conversation I had with our creative director one day. He asked me why we got so many applications from programmers who were also artists and musicians, even composers, not we never got applications from artists or composers who were also programmers? I have what I think are answers to that question, but I don't trust them enough to pass them on. But, it is a fact that a lot of programmers are writers, musicians, and artists, but the reverse is not true. As a result, there more people become artists than become programmers. In the market the scarcer good costs more. So, as a rule of thumb if you are a programmer you should spend you time on programming because it is worth more.
Last comment: Most state colleges offer the kinds of classes you need to become a game developer. Getting degrees in general areas like CS or Math is always better than getting a degree in a specialized area like game development. A person with a CS degree can get jobs in many places. A person with a degree in game development will not even be looked at for the same jobs. OTOH, a person with a CS degree and a portfolio can apply for any job someone with a degree in game development can apply for.
I have met a few outstanding people who graduated from Full Sail, I have met some outstanding people who have BS degrees in CS who took a few game development classes at the local community college who are every bit as good as the folks from Full Sail. I have met people with CS degrees from MIT who could not pass a game development course at the local CC and others from the same school who were exceptional. So, be careful about your choice of schools. Also, be very wary of on line schools. The economics of teaching on line says an on line class should cost no more, and maybe less, than the same class taught by a tax supported CC. But, that is not the case. If you are being asked to pay $2000+ for a half semester on line course then you are getting ripped off big time. Most of the on line "colleges" and "universities" are designed to get you to max out your student loans and give the money to them. They are not in the business of educating people, they are in the business of making as much money as possible while leaving you 10s of thousands of dollars of debt that you will be paying off for the next 40 years.