ECE4893A/CS4803MPG – Homework #1

ECE4893A/CS4803MPG – Homework #1

ECE4893A/CS4803MPG: Multicore and GPU Programming for Video Games

Fall 2008

Homework #1: History & Visual Studio

Due: Friday, Sept. 5 at start of lecture (as hardcopy)

Late policy: The homework will be graded out of 30 points. Homeworks
submitted after class starts will lose 5 points. Homeworks submitted the
next day will lose 5 additional points per day.
(We understand thst sometimes multiple assignments hit at once, or other
life events intervene, and hence you have to make some tough choices. We’d
rather let you turn something in
late, with some points off, than have a “no late assignments
accepted at all”
policy, since the former encourages you to still do the assignment
and learn something from it, while the latter just grinds down your soul.)

Note there is no “right” answer to the questions posed in (1) and (2). These
are intended to get your brain cells firing about these sorts of issues.
Enlighten and entertain us with your answers. You should consider the
capabilities of the graphics hardware in addition to the capabilities of the
main CPU.
You can find information about
the systems discussed on Wikipedia and through futher Googling.

1) Sega’s original
advertising pitted their Genesis against the NES. This was not
really a fair comparison, since the Genesis came out much later. A fairer
comparison would be to consider the Super NES, which came out in 1990, but that
isn’t really fair either since the Super NES came out a couple of years
after the Genesis. The
SNK Neo Geo came out at around the same time as the Super NES. Compare the
Super NES with the Neo Geo. Decide which of the two you think has the best
“bang per buck” (notice the Neo Geo was much more expensive than the SNES!),
and convincingly explain why in somewhere between 1/3 to 1/2 of
a page of elegant prose. (Yes, I am being deliberately vague about what I
mean by “bang per buck.”)

(As an aside, I just stumbled across
Last Hope,
a homebrew game created for the
Neo Geo and
Dreamcast in 2006!)

2) In the lecture on Friday, 8/24, we looked at the Sega Saturn,
Sony Playstation, and Nintendo 64, which were the most successful consoles
of that generation. A couple years before that, the Atari Jaguar,
Amiga CD32, and 3D0 Interactive Multiplayer were released. Although they were
nice pieces of hardware, they were all commercial failures.
Choose two of these three
devices. Decide which of the two you think is the most “powerful,” and
convincingly explain why in somewhere between 1/3 to 1/2 of a page of elegant
prose. (Yes, I am being deliberately vague about what I mean by “powerful.”)

3) This problem is intended to get you used to working with Visual
Studio and XNA, so you can get minor confusions out of the way before we start
anything serious. All you will need to turn for this problem
are two screenshots.

The machines in the back two rows of Klaus 1446 should have Visual Studio 2005
and XNA Game Studio Express 2.0 installed on them. You can also do
your work on your own machine, and in fact are encouraged to do so
to lighten the contention on the lab machines; see
for instructions on setting up your machine with XNA.
Even if your graphics
card is insufficient to run XNA games, you can still edit and compile.
(If you’re running Visual Studio 2008, you could try
, but we make no guarantees.)

  • Download the source code for an XNA 2.0 game you find interesting.
    Note that only a subset of
    games you will find on the web have source code available – also, you will want
    to make sure that the author of the code you use claims that it will work in
    2.0. (If you find a XNA 1.0 game you really like, you might want to
    try compiling it in 2.0 anyway.
    It might run in 2.0 OK as is, or run in 2.0 with just a little bit of hackery.)
    Here are some places to start
    looking; Google may turn up more:

  • Spend a little bit of time playing around with Visual Studio. Become
    accustomed to its features. Look over the source code of the game you
    downloaded to get a feel of how an XNA game is put together. (You don’t
    need to understand XNA’s structure yet, as we will cover that later – we
    just want you to start getting a “feel” for it.)

  • Make some trivial
    change to the game, preferably something involving
    changing just one line of code (for instance, change the number of “lives”
    or “health” you start with, change the color of an object, etc.)
    Turn in a
    screenshot of Visual Studio showing the code you changed.
    By hand, circle
    the place you changed on the printout and say what you changed.

  • Compile you game for Windows and run it.
  • Turn in a screenshot of the running game.

Note that you do not need to try running anything on the Xbox 360 at this
point. A fairly complex procedure is involved; we will cover that on a later