Page 2 of 2

Posted: Thu Apr 14, 2005 7:15 pm
by emperorsnewmusic
psyclonist wrote:In essence: They are not throwing a few hundred audio sources at the sound hardware.

-psy
Absolutely, although I can see that would not have been clear from my quote. I felt it was relevant, though, as an illustration of a situation that could reasonably demand a large number of sound sources, and as such some extended techniques to deal with them convincingly, rather than just throwing them at the hardware.

Maybe you should take what I say on this with a pinch of salt. I'm just a crazy hippy who daydreams about physically modelling and spatializing the sound of each individual leaf rustling on a tree :lol: ... and don't get me started on rain. :shock: I've heard a blind person describe the sound of rain as painting the whole environment for them. It may well be that the sound of twenty engines, all moving around relative to the player, does actually have certain acoustic properties that couldn't necessarily be easily be mimicked. Wether that's pleasent to listen to is another matter, but if that's what the game calls for, then so be it. The original point being made with that example was slightly different, though - and no one here would like to have to use separate chunks of memory for the same texture on every particle in a particle system. However, in this context, if the buffers were all exactly the same I guess that would mean they were all playing exactly in phase, which would potentially damage the effect anyway. I don't know - I've done some audio programming, but not that kind of audio programming.

I'm just trying to present one side of the argument here. Of course, in practice - particularly in the context of a realtime situation like a game, it is all about creating a convincing illussion, enhancing the atmosphere and indeed not getting on people's nerves. The latter can be a real problem when there is only a limited number of sound files which get played over and over again - perhaps especially in a MMORPG which a user might play for hours at a time, for months on end, if it's successful. If there's a lot going on around the player, it seems reasonable that the sound get proportionally intense. But any game that sustained a very high level of intensity for hours on end would probably be rather unplayable anyway.

I could go on, but I'll leave it there. I'm sure I didn't come here to talk about audio :), but you may not have heard the last from me on the subject...

Posted: Thu Apr 14, 2005 7:37 pm
by Van
I don't understand why everyone thinks I need to play 32+ sounds at one time all the time. This wasn't the point I was trying to make. The "engine hum" was just a very simplistic example of a sound sourcing problem we faced. The real issue is the number of sound SOURCES and BUFFERS. My reason for mentioning this issues in the first place was to benfit anyone writing a multi-player app (especially an MMO) with sound so as to understand one of the problems they will face.

For example:
If the sound card only supports 32 sources and if you have more than 32 objects in a scene capable of creating a sound (i.e. a source), then which one do you attach to an audio source slot too? THAT was the point that I was trying to make. Of coarse you have to prioritize certain sounds based on some kind of criteria and you should generalize others. We do this now.

The point about the ochestra was that there are many sounds sources. Perhaps they do or don't contribute sound at the same time but the point is they could contribute a sound and they could do it at the same time. This is where you have to prioritize!

You think you can just swap out sources on the fly? Well, you can, and we do. But is the audio loaded into a buffer? Do you have any free buffers?. Opps, now your out of buffers, what do you do? Well, swap out a buffer. Which one? Don't forget there could be a penalty hit to go and read the audio file into the buffer. These are just some of the issues you face when dealing with sound. And, lets not forget to mention a VERY important but never discussed topic - RESOURCE CONSUMPTION. You can't (shouldn't) utilize every audio resource from the sound system (software or harware) and you can't assume all resources are available to you either. We found this out the hard way when we were testing our app and either TeamSpeak or our app wouldn't run because there were insufficient audio resources available. Its shit like this that isn't mentioned in any sound manual - another point I was trying to make.


Finally. monster,
edit
er, never mind, again
/edit

Posted: Thu Apr 14, 2005 7:46 pm
by jacmoe
WeeHee! This is getting interesting! :D ((and rather high-jacking))

The sound lib should take care of which sound to which buffer - you can have 800 sounds ready to be played, and the lib will know which buffer to use. Yes? :)

Posted: Thu Apr 14, 2005 8:27 pm
by emperorsnewmusic
monster wrote:If you were creating a computer simulation of an orchestra you would have to be utterly insane to model each of the 80-odd instruments separately, especially since (as I say) they're chosen in such a way as to blend together.
Coming, as I do, from a computer music background, I must say I find this assumption a little too sweeping. The way I see it, there are different contexts in which one might want to simulate an orchestra, rather than using a 'real' one (and I'm not talking about MMORPGS here,,, although...). One reason might be to allow the listener to move through the orchestra, honing in on different sections and exploring the music in a slightly new way. Perhaps this would even be useful as a learning aid to train musicians... anyway, I'd want to have a go. There was an interesting sound installation called 'Forty Part Motet', where each member of a choir was close mic'ed and played back on a separate loudspeaker.

Posted: Thu Apr 14, 2005 11:04 pm
by :wumpus:
*thinks of a new genre*
Mass multiplayer online orchestra!

Posted: Thu Apr 14, 2005 11:08 pm
by monster
I did get halfway through typing another post, which I thought was contributing to the "discussion" but obviously not, since I've just noticed this;
Van wrote:Finally. monster,
edit
er, never mind, again
/edit
If you've got something to say then say it. Otherwise edit out the whole text, don't just leave a huffy little stub. Obviously what I have to say has no value and just pisses people off. Rest assured it won't happen again.

Posted: Thu Apr 14, 2005 11:28 pm
by haffax
Don't let yourself drive away wumpus. What Van had in there wasn't pretty but not insulting either. Just his way in handling discussions. :)
Meaning you shouldn't talk when you don't know what you are talking about. That said, I assure you, Van and wumpus, from what I've heard in this thread and in others, I'd a-priori always first believe monster and then Van in what is said.

Van, you really really should relax before posting in this forum. You just seem to take every argument against your position as a personal insult. It just isn't. It is a discussion about a technical topic. There is no place for personal attacks.

So when you want to prove a point don't flee into biting sarcasm (http://www.ogre3d.org/phpBB2/viewtopic. ... 7351#67351) or downright unqualifiedly polish others off (http://www.ogre3d.org/phpBB2/viewtopic. ... 7323#67323)

Try it with arguments that support your position instead. :)

Posted: Thu Apr 14, 2005 11:42 pm
by emperorsnewmusic
:wumpus: wrote:*thinks of a new genre*
Mass multiplayer online orchestra!
You know it makes sense 8)

Posted: Thu Apr 14, 2005 11:47 pm
by Van
tanis wrote:Van, you really really should relax before posting in this forum. You just seem to take every argument against your position as a personal insult. It just isn't. It is a discussion about a technical topic. There is no place for personal attacks.
LOL. I don't take anything personally - I'm not that type of person. I do like to debate and argue - thats just my nature. And I have to constantly tone down my responses or they could offend someone which is not my intent. And, I do not try to personally attack anyone - which is why when I re-read my post I had to remove the monster response because it wasn't right to post something like that in public as it could/would be construde as a personal attack. :oops:
tanis wrote: Try it with arguments that support your position instead. :)
I am/was/were. It's just that my position was being twisted. That I can't tolerate. :wink:

Posted: Thu Apr 14, 2005 11:49 pm
by haffax
Cool. No hard fellings on either side then. That's how I like it. :D

Posted: Fri Apr 15, 2005 3:16 am
by johnhpus
Obviously what I have to say has no value and just pisses people off.
I'm pretty sure that "people" should more accurately be the singular "person".

Posted: Fri Apr 15, 2005 9:34 am
by :wumpus:
Van: you should really relax man... do understand that everyone you make pissed here will be one reply less when you do have a question

All: Everything being said, please go ontopic again, this topic is not about sound channels, knowing everything, or standing on each others toes. It is about our favourite subject: developing MMORPGs!

Posted: Tue Apr 19, 2005 3:15 pm
by vatzcar
well, after quite a little time I'm posting again :D. what the plug-in or something similer to that are you guys using (those MMO developers) for database. For MMO it's one of the primary thing :). I personally prefer MySQL. What you guys think?

Posted: Tue Apr 19, 2005 3:30 pm
by psyclonist
Go with whatever you like or have the bucks for :) That said, there are people who say that these kind of databases aren't ideal for MMO(whatever)Gs and that other data storage methods can be preferrable. You want to know details? Well, I kind of tune out when I hear MMO(...)G normally, so I can't recall, sorry :)

I think, you're question is a bit vague ;)

-psy

Posted: Tue Apr 19, 2005 4:53 pm
by lodi
I guess I'm a little late on the topic, but I thought I'd chip in anyway. Sorry to take this back to sound/mixing.

---

Coming from a musical background this next quote stuck out:

"The components of an orchestra are specifically chosen so that you don't perceive it as lots of different instrument sounds, you perceive it as one perfectly blended and balanced "orchestra" sound."

I'm sorry monster, I know what you're trying to say but that sentence in specific is completely wrong ;-). Sure there's something to be said about balance, but anyone can pick out a particular instrument (oboe, timpani) from a hundred-piece orchestra sound. Picking a particular part (violin 1, violin 2) takes a somewhat more trained ear since the sound is the same; you have to listen for musical separation.

Then again, if you're not moving around in the orchestra pit, you'll need only one stereo sample of the orchestra playing to capture all of those nuances. The only reason people record different sections with several mics is for mastering purposes (toning down the drums, etc.)

What is true however is that the ear is terrible with locating and positioning sound information. We basically can't track low-frequency sounds at all (that's why you only need one subwoofer), and the rest isn't great either. Mixing 80 different 'wheel' sounds is overkill because noone can perceive the different between the wheel sound at the head of the train, and the wheel sound 1 meter further down the train (not to mention all 80 going at the same time). Having one sound for each train car is more than sufficient.

In fact, you'd get better sound quality from recording a general 'train' sound than repeating a 'wheel' sound 80 times since the 'train' sound will capture all the complex interreflections and other nuances going on in the real world.

In practice it's all moot since most gamers uses $5 labtec headphones with integrated soundcards while playing abrasive hiphop mp3's in winamp in the background. Sigh.

Posted: Tue Apr 19, 2005 8:30 pm
by Van
vatzcar wrote:well, after quite a little time I'm posting again :D. what the plug-in or something similer to that are you guys using (those MMO developers) for database. For MMO it's one of the primary thing :). I personally prefer MySQL. What you guys think?
We are using MySQL 4.x at the moment. We only store game and player data. No graphics. I read a book were one author was using a database to store graphics. I don't think that is a very good idea in an MMO and other authors have poo-poo'd the idea.

I made a past not to long ago asking for suggestions on what abstract/lib others would reocommend with MySQL:
http://www.ogre3d.org/phpBB2/viewtopic.php?t=9364

I got some public and private replies. I looked into a couple of suggested abstracts but they were clumbsy and either didn't fit our need or they were bloated beyond our needs. We ended up taking tanis and :wumpus: suggestion and just used the MySQL API and wrote our own simple abstract. I took me about a day to get handle on the API. Its very simple and straight forward.

LOL. I never posted this but when monster joking suggesting using Oracle that actually inflamed a discussion (argument?) amoungst some people I was consulting about databases. One of them is a die-hard oracle person who could get me the 37 libraries and abstracts it would take to make it work with our implementation. :roll: I kept telling him that I didn't have another five years to complete this project. :P I'm not sliding Oracle, its a fine database and when its running, it runs well. As others have pointed out, it's a monster to configure and get running. On the other hand, MySQL installs and runs right out of the box and the performance is pretty descent - and the price is right. ;)

Posted: Thu Apr 21, 2005 8:16 am
by vatzcar
Thanks van, good suggestion really. Anyways, noway i'm going to use Oracle, I'm not being offensive to it, but still, I'm more interested to MySQL. And 'course I don't want to store any sort of media content to my DB. It would be just int-char-float type things. But I asked you 'bout DB( specially MySQL) just because to know that, is it just good to use such DB in a MMO without compromising speed, security or any other issue of the game? And as you are in middle of a process (hope you progressed good enough with your game), and since you are using MySQL as your DB, I think you didn't find any major problem/bottleneck using it. If you'v experienced any such thing please share that with us, so I can decide accordingly.

Posted: Thu Apr 21, 2005 10:49 am
by :wumpus:
lodi wrote: In practice it's all moot since most gamers uses $5 labtec headphones with integrated soundcards while playing abrasive hiphop mp3's in winamp in the background. Sigh.
You can't actually blame them. After having played a game extensively for a week or so I'm usually sick of its sounds and music already, so I tend to disable those and instead put my extensive collection of industrial and metal noise in the background :-)
There are certainly exceptions, some games really do have sounds and music that bring an atmosphere. I really liked the music with Planescape:torment, descent, quake, freespace2, the old command&conquer series. Also, some game sounds are plain humorous like the warcraft ones, I love those too.

This has nothing to do with the kind of mixer, three dee positioning or the amount of channels, but the actual quality and how it matches with the game atmosphere.

Anyway, enough of the pointless rant.

Posted: Thu Apr 21, 2005 1:55 pm
by Van
vatzcar wrote:But I asked you 'bout DB( specially MySQL) just because to know that, is it just good to use such DB in a MMO without compromising speed, security or any other issue of the game? And as you are in middle of a process (hope you progressed good enough with your game), and since you are using MySQL as your DB, I think you didn't find any major problem/bottleneck using it. If you'v experienced any such thing please share that with us, so I can decide accordingly.
I can't really praise the performance because we don't have 10,000 simultaneous subscribers - yet. ;) It works very fast for our twenty project members.

Several large projects use MySQL as their backend. Pirates of the Burning Seas uses MySQL, Jumpgate uses MySQL and I think (if I remember correctly) Neocron uses MySQL too. So, I think MySQL is large enough to handle what you can throw at it. However, Eve uses Microsoft SQL.

The trick with any relational database is to keep it simple and have plenty of indexes - especially indexes on column(s) that are references alot (i.e. via the sql WHERE clause). In one of the Gem series books, it talks about database design (I think its Gem, I have so damn many of them). It recommends avoiding Unions, Joins, and Views usage - especially in your server side software. Advance SQL functions chewup alot of CPU time and when you have 10,000 simultaenous users the order of magnitude kicks in - very fast.

In our implementation we are using very simple tables. No union, joins, or views, etc. type statements are required for the server side applicication to service requests.

If you are writing an MMO you will most likely have more than one "server" running to service clients (the player app). If you are planning on running multiple servers I would recommend reading
ISBN: 1-58450-390-4
Publisher: Charles River Media (produces the Gems series too
Title: Massively Multiplayer Game Development 2
Author: Thor Alexander
Chapter: 2.5 - Massively Multiplayer Games Using a Distributed Services Approach
Our server application implements the philosphy of distributed services.

For database access, one of the philosphies you have to decide on is whether you will have a single service (or server) that access the data and all your other services access the data via a data service; OR all your services access the database directly from the server. We chose the latter to avoid a multiple of complexity issues. Every server service has its own database connection to the database server. This avoids a choke point and a potential single point of failure problem. And lastly, it avoids writing a complex messaging system for servicing data requests.