View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Sp02 Final Exam Review: Helping the Video Game Industry

Question 1: The computer game and video game industry is enormous these days. EA realizes that there are two different potential markets for these games: The 12-18 year old market (low-budget, intense competition with movie industry), and the growing 25-40 year old market (can afford more expensive hardware). EA wants to know if they can have one user interface for both of these markets, or should they think about two user interfaces. How would you help them answer this question? What should they do before they start designing their user interface(s)?

Know Thy Users For They Are Not You. I know this sounds very trite, but it really is the case. If "I" am the programmer, you're looking at someone in the middle of those two markets (eg, between 18 and 25), so you're in a unique perspective. Definitely make all the game options (load, save, jump level, etc) easily accessible through a good menuing system. Having never played Myst (don't hit me), I would definitely get a copy of the current game and see what is going on (just a fast overview...don't get used to it and you'll have a much better understanding of how to make it easier for a new-time player). Perhaps you could even code in two different UIs into the same program...so rather than having to install an extra "skin", the user could just select one of two predefined skins from the great menu system. ;-)
Chris Verges



Like Chris said, they should build a sound model for their game, and then worry about the different views later.
Hank Wilde

Anyone for the other questions? Mark Guzdial


1. The answer to this question lies in the needs and expectations of the user markets. The first thing to consider is do these markets have significant enough differences to require two different interfaces. This can be determined by doing several things. Firstly, look at the games that people of each group are playing, how different are they? Do the games played by these groups exhibit a different stlye of play or way of thinking, or are they all basically the same? You can then take a look at the original game and see how these two markets responded to that game. If they both responded well it's likely that they both were able to use the single interface, otherwise it might be a good idea to consider different interfaces. These are some questions that, when answered, would help to determine whether two interfaces are really necessary.

Bill Branan
.There are still three more questions here – everyone's focusing on Part 1. Part 3 is the most important. Mark Guzdial.


Question 2: Time passes, and now EA has some storyboards of the game and its interface. They want to know now, before they start coding and without spending too much money, if they're on the right path or have come up with a completely awful interface. What would you recommend they do and why?

Code a "sample" interface VERY quickly and run it against some users of ALL ages. While this may prove to be a complete bomb, at least you'll know from the get-go if the UI is good or bad.
Chris Verges


How about go seek out their target audience and ask them. Go to the arcades, the malls, the schools, show these storyboards to whoever is their market group, and get feedback.
Hank Wilde

How about cognitive walkthroughs? Heuristic evaluation? Expert evaluation? As well as focus groups etc. Users are EXPENSIVE–get it as right as you can before you see them. Mark Guzdial


Question 3: EA is considering using a Model-View-Controller (MVC) structure for implementing the user interface for their new game. For example, if the user opens the Arkenchest, all the objects in the room touched by the evil ArkenLord should begin to glow. Trace out for EA the flow of messages in an MVC structure (assuming an object-oriented language, and that all objects in the visible world are View objects) between the user's opening the Arkenchest and the glowing of the objects.

So...I'm not going to touch this only because it's 1:08 am (and though still early, I don't want to SNAFU it).
Chris Verges



First the Arkenchest would realize there is a change.
Then the Arkenchest would announce the event to all of its dependants, in the form of an update message, probably something like #open.

Those objects that were touched by the Arkenlord would then get this message and see if they were set to perform a message when that update event occurs, and in this case the message would be glow.

This question is the same as "Help the MVC Novice" from the midterm review http://coweb.cc.gatech.edu/cs2340/2040
Hank Wilde

Just to clarify, objects touched by the Arkenlord would need to add themselves as dependents to the Arkenchest, or all objects would need to be dependents and objects touched by the Arkenlord would need to start caring about broadcasts from the Arkenchest.

I never promised a lack of redundancy...:-) Mark Guzdial


Question 4: EA used Squeak for their implementation, especially for the multimedia and portability aspects. Now they're looking to optimize some features. For example, parsing the 3-D objects is taking too long. Name at least two things that EA could try in order to speed up their code.

Don't use Squeak!!! Especially for any sort of 3D rendering. Hehe. No, if you have to do it in Squeak, then definitely run the debugging tools given with the language (I can't remember what they are and am too lazy to look them up right now). You can see (1) which methods are taking the longest and (2) ways you could possibly speed it up. Or maybe code SOME stuff as VM plug-in code (from C or C++ or something lower level and faster). As far as optimizing Wonderland...good luck is all I have to say. I think this is why Quake was written in C++....
Chris Verges

Maybe there are issues about tracking message sends and/or tracking time in different methods? Maybe we talked about that in class? Mark Guzdial


They should just buy better hardware.
Or better utilized hardware, for example our p7 ran faster on the titanium powerbook g4 than on an intel p4 1.6g with a 64mb ati radeon 8500 graphics card, even tho the powerbook has less memory specifically set aside for video. Optimizing code is really only worthwhile in theory, as any code, once actually running, is by that time obsolete.

They could also look into distributed computing, oh wait, that's exactly what sony's plans are for the next generation of playstations. I guess they've thought of everything..
Hank Wilde

Macs have always been better at graphics – definitely a hardware thing, combined with some good underlying OS support. I need to talk to a hardware junkie to find out why the Intel supporters haven't jumped on that bandwagon yet.... Chris Verges

I am taking a stab in the dark. They could use flash instead of actual 3-D models if only a few angular views are required. Also, rethink what kind of format they are using for reproducing sound. For the younger age group maybe a midi would a more viable alternative which would speed things up.

Jai Kejriwal


I know one thing we discussed in class was that using the correct data structures in Squeak can really make a huge performance difference. If you're going to be doing a lot of looping then use an ordered collection, but if you're doing look-ups and such use dictionaries, bags or sets.

Bill Branan
YAY, BILL! Mark Guzdial


Explore the use of primatives. Boxing and unboxing can eat up time. Also, I remember in doom how they used a 2d plane for the background.

As a note the some optimization methods in squeak are in the MessageTally class.

Randy Rockinson

Boxing is turning native code into an object and unboxing is the opposite process. The slides give this for unboxing:
Object -> Class -> Native Form
Why do you have to go to class first? Mark Guzdial


Along with the lecture slide notes, you would make sure that you are:
Stephanie Smiegowski
YAY, STEPHANIE! Mark Guzdial




Link to this Page