How should I prepare myself for a career in The Video Game industry (possibly software programming)
FRC,
As you may or may not now. I started a discussion about the best tech schools in the US. Now, the reason I did that was to find out what my best options were for a career in technology. I am leaning towards working in the video-game industry. Please do not post about how competitive that industry is,I am well aware of it. And I welcome the challenge. I enjoy playing video games a lot. And the Opportunity to combine what I like and make it my career, would be magnificent.
However, I have also begun to realize that most people obtain their knowledge of programming from the Internet, books,other sources etc. I was wondering if anyone has some useful tips and/or links to help me out. It would be even better if this helped not just me but others who wish to go down this path.
Comments
It really depends I guess on what kind of learner you are, and I would recommend looking at both types of schools and visiting them. Especially making sure to talk to the students about stuff. Or at least find game expos or fairs where some the schools sometimes have booths to recruit people/show off.
I can really only talk limitedly about RIT's game program since I'm doing a concentration in game design as a part of my Masters program, but the professors are pretty awesome here, and there are some really interesting classes as well (for instance next quarter I'm taking a class where we are working on an alternate reality game project with the Democrat and Chronicle Newspaper.)
1. Design as many games as you can using paper and cards and dice and counters. There is no need to spend days programming when you can spend minutes drawing and using pre-existing materials. You'll find loads of ideas that you can later build into computer games.
2. Tied to the above, keep copious notes in notebooks on all your ideas. You'll THINK you'll remember all your ideas. I can tell you now you won't... unless you keep writing things down. And not on your computer, write in notebooks. I'm a successful artist in my field, and I know many other successful artists in my field too. ALL of us have notebooks and we're always jotting things down.
3. Make game maps and levels. Start with simple shapes and run through them as much as possible. As you make up more complex shapes you'll discover the concept of "flow". Good flow, where one part of the game leads naturally into the next area, room, part, corridor, platform, etc, is what defines good level design. This is true from Super Mario Bros through to today's FPS releases.
4. Of all the platforms I've created maps for (admittedly very few), Unreal Tournament was the easiest. Instead of building walls, you cut rooms out of solid space. That idea sat right with me. Maybe you could try it.
5. More on this subject... try all those cool level design ideas you had, and discover why they've not been implemented in games before. Learning by repeating mistakes already made by others isn't the most efficient way to learn, but that knowledge will be deeply ingrained.
6. Keep asking for more advice, and never stop looking for things to learn.
That's probably not going to be particularly helpful but it's all I could think to add
The more of these you have, and the more you know about each job within the industry, the better chance you'll have of getting a job.
Trying to get an internship during college is also a great way to break in.
A lot of people come around saying they want to become programmers, computer scientists, software engineers, etc. They ask what college to go to, and stuff like that. However, a lot of these people have never programmed anything before in their lives. I started programming in Kindergarten with Turtle Graphics / Logo on an Apple //e. When I got to RIT, there were three kinds of people I saw in the CS program.
1) People who had programmed before.
2) People who had never programmed before, but were workaholics and studies like nutjobs.
3) People who switched majors and/or failed.
If you aren't programming before college, and you aren't some crazy workaholic, programming probably is not right for you. If you are thinking about doing it, don't start worrying about colleges or anything like that. Instead, start programming right now. This instant.
I think back to the first week of CS1. The lecture was basically welcome to CS. You have to learn UNIX, but I'm not going to teach you in lecture. Also, here is object oriented programming. They never taught a hello world, or basics of procedural programming, or anything. People either knew it already, learned it on their own, or got hosed.
This is part of why I think computers, and programming, needs to be the required fifth subject in school, every year from K-12.
Also, someone who has programmed before probably isn't going to ask questions about how to get a job programming, what school to go to, what to major in, etc. because they already know. If you have never coded before, and you're about to go to college, you're already behind.
Meanwhile, things like how to balance a checkbook, how to do laundry, how to cook and eat properly, how to fix a broken car, etc. are useful things for every day life that are not required, and are rarely offered as classes in public school. Just about every job in our society, even factory and retail workers, requires use of computers. The vast majority of jobs require no more than elementary algebra. So why is is that to graduate from high school you need triginometry, but you don't need to know anything more about computers than how to use Microsoft Word?
I'm obviously not saying we should not require triginometry and such in school. In fact, I think we should require much much more, especially things which are life skills.
- My school has students take a tech class every three days. It is in the "special" rotation with art and gym, and piggy-backs with their library class. This is k-3. Usually involves getting kids more comfortable with using the keyboard, typing, and doing research.
- While substituting, I have noticed that in most schools with Jr. High students there is some sort of practical economics math class offered. Not sure if it is a requirement, but it is there.
There needs to be an economics class in high school that teaches how bank accounts work, how credit cards work, how mortgages work, how to pay bills, how to budget money, etc.
Luke's advice is all very good. I would like to add some things and reiterate other ideas.
1. Join a modding community. One of the best animating/rigging interns on my team helped design Half Life Mods (he was very good at writing scripts for MAYA as well). If your level of skill isn't good enough to do the main art and scripting tasks, hang around the community as it will help you better understand how games are put together.
2. Make simple games by yourself. Don't start out with something overly ambitious. You aren't going to make Final Fantasy in your spare time. However, you might make a fun little SHMUP or something that you can put on the internet. Bedroom coding is a good idea. Make tiny little solid games!
3. Make friends with artists! Network in college or over the internet! Make a "game studio" with your friends to make mini games will give you so much experience and make it so you don't have to do everything yourself.
4. Like Luke said, if you want to actually be a game designer, understanding game mechanics is of utmost importance. Go back and look at board games, old NES and ATARI games, the FPS's of yore and study them. I mean like really STUDY them.
Here are some awesome links that I use a lot.
Gamasutra
Game Dev.net
A noob friendly book that I just bought. Covers all the basics of all areas of game production, the pipeline of development, the art and tech aspects, and the different elements necessary to create a finished product. Read this and then decide where you want to focus your efforts. This isn't a book for professionals, but for people who are just getting started. A great all rounder course.
Game Design: Principles, Practice, and Techniques - The Ultimate Guide for the Aspiring Game Designer
I understand what I learn intuitively, but now I need to learn new concepts in programming because there's not that much that I know. I know you can import stuff, you can make variables, loops such as if, while, and so on, and functions. I kinda know about arrays, just the concept, and have a shaky idea about what makes a language object oriented.
So, I've taken it up to myself to learn python by myself, but I don't really learn much because I'm too lazy. I really should practice more, especially now that I have read this.
Edit: Thanks a ton!
I mean, if your only goal were to learn woodworking, it just wouldn't happen. You need to have a goal of making a table, or something like that.
High school is meant to prepare you for entering such programs, entering lower-level positions in the work force, and giving you the basics to live a productive life in society. It should provide a wide platform on which peaople can hone their abilities through further studies, work, experience, and maturity.
Also, obviously people shouldn't be experts in everything. I don't have an expert, or even basic, level of knowledge in law, molecular biology, astronomy, or a million other areas of knowledge. However, we are talking about preparing people for not just society today, but also the future. When you have a kid in elementary school, you have to teach them what they need to live in the future world, 15 years down the road. As it stands today, basic computer skills are as important as basic literacy. A person who can't use a computer is as screwed in today's world as someone who couldn't read or write in the world of the past. It's only going to get worse. To survive in the world 10 years from now, you will need to be a computer expert. Therefore, it should be taught in public school.
The same goes for all those other things like using checking accounts, credit cards, doing laundry, etc. All the stuff that your school supposedly taught that none of ours did. Those are essential life skills that many people do not have. A high school diploma should be proof that you have all of the skills and knowledge needed to live independently in our society. It hasn't meant that in a very long time, and I doubt it ever will. But it should.
This would mean that anyone who has completed a normal first world high school should be literate, computer literate capable of doing standard mathematics and is capable of surviving in the modern world
As for cooking, cleaning, doing the laundry and other life skills call me crazy but where I come from (Australia) the general consensus is that you as a person will come into possession of these skills because you do house work and your parents spent the ten minutes explaining how you do the laundry. These skills aren't the domain of the state, these are things you should learn from your parents. The fact you guys have a class dedicated to these (in high school no less!) boggles my mind
I see your point. but I must say, you have to start somewhere. I am in 11th grade now. I have been practicing Python for a few weeks. It is not impossible.
I see nothing wrong with asking for advice from the FRC community. I would be more of an idiot if I didn't ask. And the only person that can stop me from being successful in the game-industry is me. I was trying to gather as much info as could about this industry, the skills you need to succeed.Not some cynical viewpoint.
Secondly, the reason a high school degree is worth less now isn't because the students aren't learning as much as they used to, but because industry has diversified and jobs specified. You need specialized skills for almost any decent job. Four years in high school cannot provide you with those skill sets. It used to be that anyone that knew how to type and use basic filing systems could get a job as a secretary/administrative assistant in almost any office. Now you need to know specific software, data entry programs, understand a range of filing methods, etc. Even basic jobs require more skill than high school alone can give them. Relying on trade schools and colleges is a good thing, not a bad thing. It allows people to prepare themselves for their desired industries. A high school should be providing them a basic working knowledge (and when I say basic, that doesn't mean shallow) on a wide range of subjects, so as not to limit them and pigeon whole them into one career path beyond those elective course they can take once the core subjects are fulfilled.
I agree with you that basic computer literacy should be provided, but we shouldn't be treating every student like they are going to be programmers to the detriment of the rest of the core studies. I just think we have a differing definition of "basic".
And yes, that means give more funding to public schools. Give them more money with which to build a stronger curriculum.
The experiences of the college-bound people I knew in high school were even worse. I know several people who couldn't deal with living on their own and, after a few weeks of barricading themselves into their dorm rooms eating ramen mailed to them by their parents, quit college and just went back home.
I see people in banks who can't effectively use the ATM. I see people at the post office who don't know how to address a letter. I would argue that most people don't properly manage even their basic, day-to-day finances. Actually, I'm of the mind that the vast majority of jobs in the US today require nothing more than general intelligence, common sense, and a basic generic skillset. Basic means able to use computers and all non-specialized software intuitively, with little or no instruction, and without causing any user-generated errors or problems. Basic means never falling for phishing scams. Ever. Basic means being able to perform (or seek professional to perform) all standard computer maintenance tasks. Someone who can't do these things will have great difficulty in the coming years.