Skip to main content
Expanded answer to better answer question
Source Link
Kirbinator
  • 511
  • 3
  • 11

If you are already down the CS path, C++ then conversely becomes a good choice, as it basically has very core concepts built right in, such a memory management, algorithm design, and on top of that, you will need to do things akin to how the computer would do it. A lot of these things are lost on more powerful languages. Take a class on that or C, either will be good foundations. If the starter language is Java (like my school), consider taking an ECE class with assembler or micro-controllers, so you get hands on with lower level languages.

You will want to avoid "pop" classes, as the technology you learn there will already be on its way out when you get out. Conceptual classes are better. Math classes may seem pointless in the moment, but it all comes around when you are trying to maximize processes or transform 3D imagery. Algorithm analysis is good, Statistics is a must. Linear algebra is basically all of Graphics. Software Engineering is learning how to program as a team. Human Computer Interfaces teaches how to program a app for an actual person, not just your (tech-savy, command line master) self.

If you are already down the CS path, C++ then conversely becomes a good choice, as it basically has very core concepts built right in, such a memory management, algorithm design, and on top of that, you will need to do things akin to how the computer would do it. A lot of these things are lost on more powerful languages. Take a class on that or C, either will be good foundations. If the starter language is Java (like my school), consider taking an ECE class with assembler or micro-controllers, so you get hands on with lower level languages.

You will want to avoid "pop" classes, as the technology you learn there will already be on its way out when you get out. Conceptual classes are better. Math classes may seem pointless in the moment, but it all comes around when you are trying to maximize processes or transform 3D imagery. Algorithm analysis is good, Statistics is a must. Linear algebra is basically all of Graphics. Software Engineering is learning how to program as a team. Human Computer Interfaces teaches how to program a app for an actual person, not just your (tech-savy, command line master) self.

Source Link
Kirbinator
  • 511
  • 3
  • 11

It depends.

If you want to work on game design, CS is actually not the best way to go. Game Design is more straight math, art, and Communications. Knowing CS is good for implementing prototypes, but the heavy lifting should be done by someone else if you are serious about seeing your vision through.

"Game Development" is fairly broad, you could argue that concept artists "develops" games (which actually happens far more often than you would believe, Ed McMillen of Super Meat Boy and Binding of Isaac fame spends most of his time on Art and Design, he has others do the technical bits for him), so pick an aspect (art, sound, programming, whatever) and push it as hard as you can. Being really good at one thing makes you far more attractive in most cases than being "eh" at most of them.

So lets assume you are set to make a game from start to finish, by yourself. In that case, CS definitely can't hurt. You will be able to make game engines do things they weren't quite built for, you'll understand why a computer is freaking out the way it is, and best of all, you'll know how to at least figure out how to fix it. It is a commitment, and far worth it if you put time in it. You will also find the truth in the saying "Those who make games, don't play games." It takes time.

If you are just in this to "make games", there is no faster way to discourage yourself than learning C++/C. I'm sorry, it is the worst starting point. If it is your first time programming, learn Python, Java, or Game-Maker script, or heck, C#. Only learn C++ if you are willing to commit to the time and effort to master it. You will spend most of your time with C++ LEARNING C++, not making games. You have been warned.

Also be aware, CS itself splits into a lot of sub-fields that may or may not deal with games. Off the top of my head, there are:

  • Algorithms
  • Networking
  • Graphics (shaders)
  • Graphics (hardware)
  • HCI
  • AI
  • UI/GUI
  • Image Processing
  • Database design

...among others. Getting as CS degree is akin to getting a "Teaching" degree. A person who knows better may squint and ask you what your specialty is. Always be asking yourself what you want to do, and do it on your own. Because above all, Computer Science education is based off of methodology more than technology. You "learn to learn". You may learn Java in school, but who knows how long that will be around. Your employer won't teach you the latest and greatest, and your time at work will be spent working on what they give you. Know what you are paying for if you decide to go this path in higher education.