focus on “tractable abstractions separate from real problems”
2 is no longer
acceptable. In the conceptual age, we
need to change the direction of the
field or continue an unwelcome slide
toward irrelevance.
Cognitive and Creative assets
The conceptual age of technology is
defined by cognitive and creative assets, with the design side being just
as good. We see harbingers in recent
business success. For example, Apple has done well with design-driven
products enabled by great engineering. On the other hand, Microsoft is
a great engineering company that
deemphasizes design at its own peril;
the Vista operating system, despite
its technical success, was not built
with user experience as its ultimate
goal and had great difficulty with respect to adoption. Much of the rest of
the traditional computing industry is
shrinking, but the game industry is a
segment that continues to grow due
to its focus on design backed up by
great supporting engineering. The demand for computer scientists capable
of building games is high, with large
companies like Electronic Arts reporting that 65% of their hiring demand
is for programmers skilled in building games. Unfortunately, the kind
of computer scientist required by
the game industry is not exactly what
Components of a networked game.
traditional computer science departments produce.
The game industry wants graduates who are strong programmers and
system developers, skilled in game design, and capable of and experienced
in game development in large, cross-disciplinary collaborative teams.
Some computer science departments
produce graduates who are strong
programmers and system developers,
but most do not produce graduates
skilled in game design. Moreover,
most do not produce graduates facile
in large, cross-disciplinary collaborative teams. The typical computer science graduate has little experience
with team software development beyond one or two projects with three to
five other computer science students.
Computer science departments
can retool themselves to meet these
challenges, but, for game development, doing so requires a strong, experienced champion and proper resources. Here, I discuss a particular
approach we take at the University of
Southern California, outcomes from
that program, and questions with respect to transitioning a mature field
toward the conceptual age.
Game Development
and CS Education
If computer science departments are
indeed to make the transition, what
will they transition into? The game
industry also wants graduates with a
strong background in computer science. It does not want graduates with
watered-down computer science degrees, but rather an enhanced set of
skills. This is good news for the departments, meaning they can transition some courses to new material
or new foci, create new courses, and
still not abandon decades of hard-won knowledge. The best way to think
about the transition to the conceptual
age is to make the focus the “big idea
or big concept,” with a follow-on focus on how to build the concept and
with what technologies.
Strong programming skills is the
first item on the list, meaning an
undergraduate program’s first four
computer science courses—CS- 101
Fundamentals of Computer Programming, CS- 102 Data Structures, CS-
105 Object Oriented Programming,
and CS-201 Principles of Software
Development—must be taught in a
rigorous manner by excellent practicing programmers. While computer
programming languages abound,
and the historic computer science attitude “You learn one language, and
it’s easy to pick up the next one” is not
shared by industry. The game industry
will also tell you that it wants the first
four programming classes in C++, not
Java, according to M.M. McGill4 and
Real-Time
Rendering
Collision
Detection
AI
Other
Computation
Interface
Time and event
Ordering
Latency
bandwidth
App. Layer
Protocol
Inter-
operability
Game engine
Components
Control and
Communication
Devices
Networked Game
Data Network
Some crossover
Processing
Systems
Game
Controller
Keyboard
headset
hybrid eeG
Shared State
management
Scalability
multi-
Threaded
heterogeneity
Failure
management