Yes, this is probably the wrong place to post this, but i don’t know what else to do. The right place should be here:
http://na.leagueoflegends.com/board/sho … ?t=1643508
But it’s just ignored there.
Anyways, the problem is that the game is reading data from the HDD all the time, even with more than 1 GB RAM free at the same time(notebook with WinXP). If the audio playback is disabled, it’s not reading those files over and over. There are 2 dll files: fmodex.dll and fmod_event.dll which tell that League of Legends is using FMOD version 4.32.7. Tinkering with those files actually changed stuff, so these files are not just there for fun.
I do not know if this is a general issue or bug with FMOD, if this was fixed in the meantime(the used version is over 1 year old) or if this is a simple oversight by riot games. Most likely it requires a change of 2 or 3 lines of code in League of Legends and this issue is fixed for good, but i’d like to know where those lines of code are found.
Anybody got an idea what could cause this issue? WIth more information, i hope riot games would listen to me, or maybe they would react to emails from you.
PS: fmodex.dll and fmod_event.dll modifed from version 4.32.7 to read all sounds into a buffer instead of reading them on demand, that would fix this issue for me. But a solution that fixes this issue for everybody, so League of Legends can become even bigger, that’s what i really want.
- Blob asked 7 years ago
I understand your concern but without some hard numbers it’s hard to say there is any problem with streaming performance. With regard to the other issue it is hard to diagnose from the description but it does not sound directly related to FMOD. Although it is related to sounds, it sounds to me that it’s just some logic in their engine.
Neither of these really rate as show-stopper bugs, and at the end of the day all games have [i:2iwqmbz5]some[/i:2iwqmbz5] bugs. If these are the worst of them then it sounds like they’ve done a pretty good job overall.
[quote:2iwqmbz5]You get into contact with riot games and help them to use your engine better. And in exchange, you ask them to do some promotion for you on tournaments and similar or something else.[/quote:2iwqmbz5]
That is an interesting idea but it’s not really our place to chase up customers and tell them how to do their jobs.
What you are probably observing in League of Legends is a feature called "streaming" sounds. The idea is that some sounds (such as music, or long ambiences) are not worth loading into memory. They may be many megabytes, and the memory cost is not worth it. Instead, these files are streamed from the disk in relatively small chunks. But because the whole sound is not in memory anymore, the system has to continually read these small chunks off of the disk.
It is a tradeoff. As a developer, you have a memory budget for things like sound and graphics. You also have to make sure that your entire program stays within 2 gigabytes of address space usage, so that it doesn’t run out of memory on 32-bit systems. (On 64-bit systems, a 32-bit process does get access to all 4 gigs of address space, but on 32-bit systems, you only get 2 gigs.)
Clearly, the developers of League of Legends decided that streaming these files off of the disk was cheaper and better overall for the game’s stability and performance than loading the files into memory. As I’m not on the development team and never having played League of Legends, I cannot provide more insight than that. All I can say is that you should rest assured that they are working hard to provide you with the best and most fun game experience that they can, and if that involves streaming some sounds instead of loading them into memory, I say "enjoy the music!"
Hope that clears things up.
- Adiss answered 7 years ago
Excellent detective work to track it back to FMOD. We are just a software provider, they use our software but how it is used is up to the developer, in this case RIOT games.
With regard to your concern for performance this should not be an issue regardless of the HDD access speed. Streams are commonly for games running off a DVD (e.g. an Xbox 360 title) which has a much slower read and seek times than a HDD. When running on PC streams are extremely efficient by comparison. The streams read data from the HDD asynchronously which means it happens in the background, so even if it takes a long time to fill the request that is fine because it’s reading ahead and has plenty of extra sound data to play while it’s waiting.
If you see a significant performance difference when disabling the sounds, then I suggest you contact RIOT directly. If you were just concerned about the frequent HDD access then rest assured RIOT are professionals and they know what they’re doing. Have fun gaming!
Thanks for the replies. Now i’m convinced that this is not a FMOD issue, but i’m only 80% convinced that this is a non issue overall. The game is reading from 2 different types of files, which is why i doubt it’s only streaming the backgroud music. BTW, the streaming feature sounds really nice for background music, sounds in videos, voice files while no action takes place and other stuff.
In the game, 5 people play against 5 other people, and everybody is able to use different skills, each using different sounds. Even if the sounds are read in the background, i’d expect issues on non SSDs, if all 10 players are on screen, spamming their skills.
I did play with all sounds disabled, and my subjective impression was that the game run faster when several people were on screen. But it’s just this, a subjective impression.
Anyways, thanks again, i will try my luck with riot games again.
While looking around, i found another problem, that is not your problem…
http://na.leagueoflegends.com/board/sho … ?t=1778293
Can you please help riot games to get the max out of your engine? It looks like they don’t know what they got. After reading this here on your website:
"The software mixer even has a ‘HRTF’ (Head-Related Transfer Function) mode to provide 3D realism through headphones! "
I’m actually becoming a fan of FMOD!
You get into contact with riot games and help them to use your engine better. And in exchange, you ask them to do some promotion for you on tournaments and similar or something else. Afterall, a game using your engine only poorly, is a bad advertisement, and a game that uses it well, could help to sell it like hot cakes…
[quote="rcohen":1t9jn1i6]Is there a way you can create a RAM-based disk, and run the game from there to test your theory?
I can’t do that, the game folder is around 2 GB, the game uses about 500 MB RAM while it’s running, my graphics chip is eating 128MB and i only got 2 GB RAM to begin with. BUT: If i disable all sounds, the HDD access does not happen. It feels a bit faster if i do this, but it’s just a subjective impression. Also, the sounds are actually disabled when doing this(…), so the CPU load is less than usual.
I was thinking about testing the opposite, using a slow sd card in a slow card reader. But apparently it’s not slow enough to make a difference, it even loaded the game as fast as my HDD. And since it’s flash memory, the access times are lower than the ones from my HDD, so chance are that using this sd card would actually improve the performance, even if it has a slower read speed than my HDD.
PS: From the FMOD changelog for version 4.33.00:
– Streams that have priority 0 now are -not- affected by FMOD_INIT_VOL0_BECOMES_VIRTUAL flag. Saves pointless disk access.
Does this mean that streams that are muted and set to priority 0 are not read from HDD anymore starting with version 4.33.00? I’m asking because the game is reading everything from HDD, even if the sounds are muted. Only if the additional checkbox to disable all sounds is checked, then the HDD access stops.
Please login first to submit.