Advertisement

What's the difference between studying computer science and studying game programming?

Started by June 12, 2016 08:27 PM
7 comments, last by ApochPiQ 8 years, 5 months ago

All my companions have only learnt game programming and they claim that there's a huge difference between studying game programming and studying computer science. Is this true?

I mean, most programmers I know of learnt computer science and were able to do game programming easily.

The terminology is fuzzy because people use the words differently, and also often misuse the terms. But in a nutshell:

- CS is about the theoretical process of computation: how to do meaningful work with information and instructions.
- Game programming is about the applied practice of writing game programs. It uses concepts from CS.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Advertisement

I did a game oriented degree, there is (as should be) a lot of cross over with a traditional degree. A few things off the top of my head (it was a few years ago).

We did our main programming in c++ rather than Java.

Taught a lot of graphics related programming and the maths to go with it.

Taught a fair bit of AI.

Taught a lot more maths.

Missed out on things like databases, networking (though I did do the networking course).

There were other things that I feel are important that were missed but I really can't remember them now.

I found the first year to be a bit too general makes me think jack of all trades - master of none.

The graphics related things did land me my first job (not games though) so I can't complain about that but I do always feel a slight stigma with the qualification. There's only so much that you can be taught in preparation and you'll have to learn much more anyway regardless of where you started.

For better or worse there is a difference, I think it varies far too much per university to really say though.

In general though I think you learn things as you need them. If you need to know game related things a competent programmer will pick them up and vice-versa,

Interested in Fractals? Check out my App, Fractal Scout, free on the Google Play store.

Computer Science is more general in usage. Depending on your University, you might be able to learn game programming courses, and be able to do nearly as much math if not more math. You do have elective courses, but the graphics bit completely depends on your university. You might get stuck with learning OpenGL 1.0 like I have... but I don't quite regret it surprisingly.

In the degree plan, you can choose most of the classes that will help you for game dev. But that all depends on your university.

The amount of math I've taken is...

College Algebra, Trig, Pre-Cal, Cal 1, Cal 2, Cal 3, Linear Algebra, Differential Equations, Numerical Analysis, Probability

University Physics 1 and 2 is basically applied math, but the degree counts this as math. So... shrug.

Currently, I'm going to be taking two game development courses, when the certificate requires 4.

Moving to the jobs section of the site. Read the links under FAQ Section 3 that cover this as well.

Practically speaking, not much. Depends on the school and degree.

By far the largest employer of graduates from my "game school" alma mater is Microsoft (non-games). The core curriculum should be identical (lots of CS fundamentals, heavy math, and a smattering of liberal arts) and the skills transfer relatively easily either way. Programming is programming.

A game school/programs's possibly largest advantage is that it keeps you interested and engaged if you're only interested in games (meaning you put in more effort and retain more knowledge) and that it surrounds you with like-minded individuals. The game education can be a better _environment_ for learning for some people, even if the _curriculum_ is the same or worse. It can be that the advantages of the environment even outweight disadvantages of the curriculum.

A good game program _is_ just a CS program, only with a small change in focus. The projects will be games instead of non-games, lectures will be framed in terms of games, higher level curriculum choices will focus on games (e.g. C++ instead of Java, Windows instead of Linux, etc.), electives will be available for game design or interactive writing, etc. All the core stuff will be the same.

Sean Middleditch – Game Systems Engineer – Join my team!

Advertisement

two things to keep in mind:

1) with a CS degree, you will be able to find a job as a programmer in ANY industry. Given how scarce jobs in the games industry are and how many are trying to get into that industry, that is a big boon should you either not be able to find a job as a game programmer, or grow tired of the industry (the rate of people switching to other industries seems to be rather high too).

Granted, the longer you work, the less worth your degree is compared to your work expierience. Given you work in the games industry for a long time, your choice of degree will no longer matter if you try to switch industries. That choice between CS or Game Programming as a degree pales compared to 10+ years of expierience as a game programmer. You will most probably not be as highly rated as a specialist in the industry you switch to, but given demand for programmers is high enough in that industry, you will land a job (given you don't suck at interviews and the whiteboard tests). You are a senior programmer, and while most probably not specialized in the skills the employer is looking for, should be able to quickly adapt to the new role.

2) You will most probably have just as much of a chance finding a job as a programmer in the games industry given you can show related personal projects. Which you should do anyway, as no school in the world a) trains you nearly enough to be a competent programmer, it will just teach you the basics, b) will give enough "realworld projects" to really build a portfolio of work you can show (and given how competitive the games industry seems to be, you really should have a portfolio ready if you look for a job).

If you do a CS study, you will need to learn the games specific parts in your freetime and try to build some games and showcases, both to deepend your knowledge and have something to show.

If you do a Game Programming study, you will need to deepen the games specific parts in your freetime and try to build some games and showcases.

In the end, both studies will give you almost the same: just the basics. A game programming course might give you a little bit more basics specific to game programming, but you shouldn't expect college/university to train you indepth in game programming. To really become competent, you have to sink a considerable time into working indepth in a certain field. Colleges/universities always try to cover a broad range of basics, with never enough time to really get indepth.

If you really want to become attractive for future employers, you will need way more than just that basics and the degree.

Thus the choice of your degree shouldn't matter too much for what you have learned in practical skills at the time you finish your studies. Most of the skills you learned will not be learned during school hours.

The question is if you want the added job security of a CS degree or if you are ready to put everything on one card, and as Sean said above, if you are interested in CS enough to study it without a strong game related focus.

Ok so what about in the case of figuring out how to do specific game logics like the ability to use touch draw functions and such?

In that sense, will it benefit if you learn Computer Science or even a game programming course is good enough?

Whatever concepts I pitch, it tends to get rejected because these programmers I work with can't figure out how to do the logic behind them.

Also, I'd like to know just how many programmers are able to finish tasks in just a matter of few days compared to others.

Neither computer science education nor a game programming education is going to magically make a programmer good at picking up new APIs and tools. That comes purely from practice and exposure to many ideas. Arguably a game education is going to be more likely to help with exposing a programmer to many different real-world APIs/etc., but it's also common for game-educated programmers to struggle when transitioning into, say, web development.

Remember that programming is a very broad field these days. Just because a particular idea makes sense for one subset of programmers doesn't mean you can expect it to translate automatically to any other arbitrary programmer. For example, writing office/business back-end tools and intranet sites is going to be pretty foreign to someone who works on embedded robotics.

As for how long things take... that's the hardest question of software engineering. It also depends entirely on the task. Some things take longer than others - that's about as good as it gets before falling into a pit of "except"s and "depending on"s.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

This topic is closed to new replies.

Advertisement