What Should I Do to Become a Game Programmer or Designer

thellrazor

Estimable
Oct 13, 2014
5
0
4,510
0
Hi guys :) I'm goingt to study computer engineering and my dream is to make video games but Idon't know if I want to do game programming or game designing. Here is one of the things that I'm asking for your help. I want to work for well-known companies like Crytek, Valve, Rockstar Games etc. but I don't know what the engineers those work for them do. Of course there are so many parts of game but I want to be the one of those guys who makes the heart of game. And to do this I must learn something before the school starts. My questions: Do I want to be a game programmer or game designer? What should I do before I start studying? Which programming languages should I imphasis most to learn? I'd be so happy if you answer, thanks.
 

Pinhedd

Distinguished
Moderator


Hi, computer engineer here.

A Computer Engineering program will not set you on the right path for game development. It will certainly give you some of the right skills and the right mindset, but much of your academic experience will be inapplicable.

Most professional game developers have Computer Science or Software Engineering backgrounds.

As for what you will need to know.

Academics:

Data structures and algorithms. This is fundamental to computer science, computer engineering, and software engineering. I spend an immense amount of my spare time trying to think of more efficient ways to perform repetitive tasks.

Operating system design and theory. This is essential to knowing how programs interact with the system and with eachother. You can learn a lot of the nitty gritty details before school. Many computer engineering programs include this.

Real time systems. If you want a smooth and functioning game you must learn how to get your programs to meet real time constraints.

Calculus. This is a basic engineering fundamental. All engineers and computer scientists have to take multiple calculus courses. In terms of game development, most simulations boil down to discrete calculus. It's used everywhere, but it's hard to appreciate until one finds an application for it.

Geometry. This is not a topic taught in computer engineering and it will be a major gap in your knowledge if you intend on ever working on 3D game engines.

Technical Skills:

C. If you want something done right, do it in C. This is a good skill to have on your resume when applying to any computer-oriented job

C++. This is the most common game development language. It's also the most common source of crappy developers, who are easily identified by thinking that having written a few labs in C++ means that they are C gurus as well.

HLSL/GLSL: These are the languages in which GPU shader programs are written. They're not particularly difficult to learn on their own (they're quite simple) but shader programs have to be very efficient so the work that goes into them is immense. Having some exposure is always a plus.
 

grembandilla

Distinguished
Mar 9, 2011
3
0
18,510
0
Research your companies in question send them letters asking. But as far as design vs straight up coding. Are you artistic do you have a good imagination can you tell a good story? Ask yourself what you could bring to the table to these companies either by intelligent design or intelligent coding. I am not a programmer by any means. But having been in the IT field for coming up on 6 years i look at the bigger picture on what i can bring to a company. Send me a message if you have general IT questions on the life or work involved. Ive worked for a fortune 500 company and many hospitals as well as small and large business's as well as owning my own business.
 

USAFRet

Splendid
Moderator
There are many, many aspects of making a game for public release. Dozens or hundreds of people involved.

The engine - the API and actual physics of what happens.
Artwork - someone has to design and draw what you see on screen
Testing - Does it work?
Storyline - The best artwork and best physics fails without a good story

That's just a few of the aspects...
 

viewtyjoe

Estimable
Jul 28, 2014
41
0
4,610
10
How to get a job making games: Make games. The end. Make games, get them out there, then you can apply as a designer and show work you have already got out there.

Game programming is a job for people who love games more than they love livable wages and is basically the ghetto of programming because people are willing to accept awful hours and salary because "I GET TO MAKE GAMES."

Quick edit: I see you ask about languages. The majority of games are still written in C++ and that and C are the languages you'll want to learn.

That said, middleware (engines, etc) pays super well, but you better take a math minor because what they usually need is hyper-optimization on complex graphical algorithms.
 

thellrazor

Estimable
Oct 13, 2014
5
0
4,510
0




Guys I think I realised (after your comments) I want to work with game engine but I'd like to add my comments to artwork but my thing is engine I'm sure now. But there is still a problem and it is what should I do before the school start, I mean I don't know any programming language any code or any engine but I want to learn I want to be a part of a game so what should I do? Should I learn some engines or languages? If yes, which engine or language I should learn before the school start?
 

viewtyjoe

Estimable
Jul 28, 2014
41
0
4,610
10
Your school will teach you most of what you need to know to work in the industry. If you have free time and money, license a copy of the Unreal 4 engine or something once you have some programming skills (or 5 if we're there by then) and make changes to do something cool and demonstrate what you can do. Alternatively, look for open source engines and add to them, or as I already said, make your own games from scratch or using an available engine.

Forewarning, this is not glamorous work. It is heavy math and knowing how computers operate at a very low level and making the machine behave the way you want it to. It is not easy, and your degree will only do so much on teaching you what you really need to know, but your own work should be able to bridge the gap.
 

viewtyjoe

Estimable
Jul 28, 2014
41
0
4,610
10
Also, FYI, computer engineering typically is more related to circuit analysis/design and is much more about actual physical hardware. If you haven't started yet, I would suggest checking in with your school on that and if it is as I described, changing to a computer science/software engineering program if offered.
 

USAFRet

Splendid
Moderator
There are several game engines where the source code is free to download. Generally, those are older games. Download a couple, and see what happens under the hood.

As said above, this is NOT glam work. Like with cars. You would be the guy designing the shape of the piston head for optimal fuel mileage.
 

thellrazor

Estimable
Oct 13, 2014
5
0
4,510
0
Gus, first of all, I'm prep and learning English because I'm not British or American so I have tons of free time(like 11 months). That's why I want to learn before the school start. I checked the net for the answers for my questions I think c++ is necessary but I don't know if I can learn it by myself so will try game engines. What do you suggest? Cryengine is free but they say It's so complicated for beginners but unreal engine is good.
 

USAFRet

Splendid
Moderator


Whatever free games engines you find, download and investigate them. All of them.
Cryengine, Unreal, old Quake, etc, etc. Only you can tell if it is too 'complicated' for you.
 

Pinhedd

Distinguished
Moderator


Hi, computer engineer here.

A Computer Engineering program will not set you on the right path for game development. It will certainly give you some of the right skills and the right mindset, but much of your academic experience will be inapplicable.

Most professional game developers have Computer Science or Software Engineering backgrounds.

As for what you will need to know.

Academics:

Data structures and algorithms. This is fundamental to computer science, computer engineering, and software engineering. I spend an immense amount of my spare time trying to think of more efficient ways to perform repetitive tasks.

Operating system design and theory. This is essential to knowing how programs interact with the system and with eachother. You can learn a lot of the nitty gritty details before school. Many computer engineering programs include this.

Real time systems. If you want a smooth and functioning game you must learn how to get your programs to meet real time constraints.

Calculus. This is a basic engineering fundamental. All engineers and computer scientists have to take multiple calculus courses. In terms of game development, most simulations boil down to discrete calculus. It's used everywhere, but it's hard to appreciate until one finds an application for it.

Geometry. This is not a topic taught in computer engineering and it will be a major gap in your knowledge if you intend on ever working on 3D game engines.

Technical Skills:

C. If you want something done right, do it in C. This is a good skill to have on your resume when applying to any computer-oriented job

C++. This is the most common game development language. It's also the most common source of crappy developers, who are easily identified by thinking that having written a few labs in C++ means that they are C gurus as well.

HLSL/GLSL: These are the languages in which GPU shader programs are written. They're not particularly difficult to learn on their own (they're quite simple) but shader programs have to be very efficient so the work that goes into them is immense. Having some exposure is always a plus.
 

thellrazor

Estimable
Oct 13, 2014
5
0
4,510
0


Thank you :) Your answer is really helpful.
 

Pinhedd

Distinguished
Moderator


You're most welcome. If you're looking to get a bit of a head start, start learning C.
 

thellrazor

Estimable
Oct 13, 2014
5
0
4,510
0


Yeah, I will :)
 
Thread starter Similar threads Forum Replies Date
A Apps General Discussion 4
A Apps General Discussion 1
A Apps General Discussion 2
ebmurray21 Apps General Discussion 3
S Apps General Discussion 2
K Apps General Discussion 3
S Apps General Discussion 3
S Apps General Discussion 9
C Apps General Discussion 2
R Apps General Discussion 1
S Apps General Discussion 5
V Apps General Discussion 4
D Apps General Discussion 2
T Apps General Discussion 4
D Apps General Discussion 3
B Apps General Discussion 1
M Apps General Discussion 2
F Apps General Discussion 1
F Apps General Discussion 5
G Apps General Discussion 3

ASK THE COMMUNITY