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

Sp00 Final Exam Review: Design Networked Games

See Final Exam Review - Sp2000


i'm gonna give this one a crack.
a) I think using a VM is essential if you want to make the game cross-platform. the VM allows us to use the same code on pretty much any platform.

b)it all comes down to line-speed. if they're all on fast connections i would send the 3-d models but becuase of their size i would opt for flash if we expect slower connections. The 3-d models allow us to do more with less processing(ie-rotation) but the files are larger than flash

Are there situations where 3-D on the client is slower than Flash? Mark Guzdial

c)for the background music use midi. while midi doesn't have the quality of WAV it is smaller and it suit our purposes for background music which is just a few cute notes constantly repeating. For the recordings and voice i would chose WAV becuase it allows us to record voice and it has higher quality.

Alex Salazar

Uh, MIDI can have much higher quality than WAV. The quality isn't the point... Mark Guzdial

I agree with alex, and would add that for the recording of voices, it would depend on the amount of recording. if it's just some small samples, like the sound of Chuckie laughing, then a WAV is probably best, but something longer might need a better compression ratio. How about mp3's??

MP3's have better compression than WAV? Huh? Mark Guzdial
well, a song recorded in WAV is about 60MB, and the same song in MP3 format is around 3-4MB...so, yeah. if the voices are more than just a small squeak or something, then a better compression ratio might be needed to xmit the sounds -Stephen Belknap

also, for the first one... network stuff is some of the slowest code for VMs and not cross-platform. since it needs to be in native code, the only other thing would be to find a way to graphically show the game.

i think it would be better to not have a VM, since the network code needs to be machine-dependent. and, since this game IS a network game, the network-aspect should be as fast as possible


Network = No VM? Good thing that nobody does any networking code in Java or Squeak! :-) Mark Guzdial

You can have network code for a VM, obviously... but it is not cross-platform. Each client computer could be a Mac, PC, Solaris, etc.. and require different network code. Since the network code is implemented with native code, why have the VM? it's just an overhead. Granted, it might be able to do graphics cross-platform, but if we're talking about Flash, you don't need a huge VM for that...

My comment above about MP3 is definitely not right – let me try again. MP3 is pretty small, but with specific space/quality tradeoffs. Do you need those for recorded sounds?

well, i'm trying to say it depends on how long the sound samples are themeselves. if it's a small squeak, the WAV is fine, but for something longer, then MP3's might work better due to the better compression ratio. SO far as the space/quality tradeoff, MP3's are VERY near-CD quality sound, that's why they are so great ( and ppl want to charge for them ) -Stephen Belknap

Re: Network code: Depends on how much of the app is networking, no?

yes, true. Since it's a network-based game, i'm assuming at least a decent amount of it is involved in passing back and forth between all of the players the board status, what changed, who did it, etc.. So, in that respect, I think the network aspect is a big deal, and does take up enough time to impact speed. -Stephen Belknap

Re: MIDI. MIDI transmits no sound. The sound samples sit on the client. MIDI is just a series of "Play the piano at this note, Play the trumpet at this note," etc. Quality is great, compression is great, but where isn't this great?


hmm... is there a significant speed hit for MIDI ? I'm not too familiar with MIDI, so i'm stabbing in the dark. Is it too big with respect to a small sound that would be better xfered with WAV or MP3?

would it only make sense to transfer some background music ONE time to be looped forever, rather than xfering a bunch of small grunts and laughter the characters may make?



a) We think that a VM would be the best, since it would be cross-platform. True, it can be slower than native code, but in this case it doesn't really matter. It is not necessary for any kind of puzzle game to be fast. Since it is turn based, and not real-time, then speed becomes trivial.

I don't see the spec say it is turned based anywhere.. it could be real time, in which speed would be a factor, and a slow VM would be counter-productive -Stephen Belknap

b) For models, Flash is probably best. 3-D models must be stored locally because they are fairly large. Flash is vector based and designed for fast internet transfer.

c) For background music, I agree with Alex. MIDI is perfect, since it can be small and transmits quickly over the network. For voice, aiff or au would be good. Both are fairly small and widely supported.

Susi Rathmann, jeremy, Matt Flagg



[a] - I would use a Virtual Machine to ensure cross-platform capabilities. This would make coding the game much efficient (faster and easier), since it would not require a port to platforms other than the primary one.

[b] - I would like to say to use flash, but realistically if I was making this video game I would not use flash. The quality of the graphics is simply not good enough to outweigh the overhead of pre-loading the images on each individual computer. In order to get a representation of each individual Rugrat on screen all that child's computer would need to send is a small list of settings, such as the coordinates the rugrat is located, the rotation of the body, the rotation of the arms, legs, head, orientation of the mouth, etc. This data would certainly not be over 500 bytes, which can easily be sent back and forth over a gasp 14.4 modem. So that is why I would choose 3-D Models over Flash.

[c] - I would make the background music MIDI, because background themes are generally long ( 2+ minutes ), and MIDI in general takes up less space than WAV. Also, background music does not need a true audio recording, since they are instrumental and almost exact replica can be remade. For the voices of the Rugrats, you would have to use WAV or a similar format (ie. AIF), because any other format would sound pathetic. I would say to use MP3 or another form of compressed audio, but a decompression scheme would use up too many resources, giving low end users a less quality game. Anyways, the sound clips would be really short (avg about 2 seconds ), so the data could be stored locally on the machine.


I've been reading this thing, and really the conflicting concerns are really nice to see. I just feel I need to post on one thing. It seems like there is overwhelming support for midi, which for the specs and being a network game I agree with 100%. But, my concern is usually midi for network games are short and repetitve with the most simplest instruments. I just wanted to point out how flat out annoying midi's are in network games. If you don't believe me go play some of them at shockwave.com. My spill is unless we are talking really good composed midis (thinking around the lines of FF7) then leave them out. This way more resources can be used for loading graphics and say short wav or midi sound effects only. Midi's are the reason I always turn on my winamp while playing a game.

Adam Bryant




a.) To VM or not to VM? Pros and cons:

Pros

Cons

The idea of a VM attractive for this application, especially to people like myself who have no experience writing cross-platform applications in native code. Before committing to a VM, however, I would like to investigate the market: I imagine that one can buy tools (such as wrapper libraries) that make cross-platform development easier (at least on Mac/PC/Unix systems).

b.) The Tommy/Chuckie/etc models should be pre-distributed; that is, they should be installed when the user installs the application. What if we want to give users the ability to customize and distribute their own, unique avatars? I, for example, would prefer to appear as a mammoth ox instead of a two-year old humanoid. The answer is simple... when I enter a chat room, people see a place-holder avatar until their clients finish downloading and installing my personalized 3D/Flash model.

3D or Flash? While network concerns are a factor, the primary consideration is atmosphere: what type of environment do you want your users to interact with? A 1-minute difference in load time is relatively small compared to the experience.

c.) Sound format... I imagine that all sounds can be pre-distributed. Assuming this, I would employ the following guidelines:

  1. Don't use MIDI because:

  2. Look at the formats that are easy to play (i.e., directly supported by the VM you are using).
  3. Produce sounds in these formats, favoring the formats that provide better compression.

Stephen Bennett



a)VM for all the reasons mentioned above.
b)I think this question has a UI element to it that really hasn't been discussed. I mean, Rugrats (the last time I saw them) is a 2 dimensional cartoon show! I doubt an 8 year old will be impressed by 3D polygonal models compared to actual artist drawings that look exactly like the show. The 2D Flash is more like the show and that is why it should be used.
c)Midi for background and wav for small sounds (voices). See above.

Patrick Reyes



I have to agree with Pat here. You guys sound like you're designing this for yourselves (I hate midi has been stated at least twice), not for a bunch of kids about 10 years younger. As Mark has said repeatedly, "Know thy user, for he is not you."(or something like that) The user is most likely going to want "the experience" to be as close to the TV show as possible, so 2D Flash and MIDI should be fine.

Chad VanWie

Link to this Page