How does that follow, wouldn't it be much more practical to do a general cs curriculum and then to specialize in visualization and/or interaction rather than something so narrow as games?
How does that follow, wouldn't it be much more practical to do a general cs curriculum and then to specialize in visualization and/or interaction rather than something so narrow as games?
Your average top-tier game needs to do (just off the top of my head) -
- security
- database access (in real time)
- effective storage management, both in RAM and on disk, of gigabytes of data
- hard-deadline scheduling (every 60th or 30th of a second)
- some serious algorithmic work for physics simulations, rendering, AI and so forth
- networking
- asset management
- build systems
- scripting and customization
- user support, updates, in-game sales
... I could go on and on. Games span the entire stack of modern computing, from bare metal (worrying about how flash wear leveling works, or interrupt latency) to global-scale networking and how politics affects your ability to encrypt voice data.
Games are anything but "narrow".
A good theoretical CS degree will teach the same concepts, but in a way that prepares the student to apply the concepts on any platform or language. That's why I think that it's better to get a generalized CS degree, and dabble with game development on the side. That's what I did in college, and it taught me that I didn't want to become a game dev.
A mix of good theoretical CS with some hands-on OS, database, compiler and data structures work is probably best. Graphics, naturally (though you can be successful at a games company without knowing much about graphics -- honest).