Advertisement
Guest User

Untitled

a guest
Nov 12th, 2012
530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.74 KB | None | 0 0
  1. I/O is pretty much always the biggest bottleneck in anything. I unfortunately haven't looked too much into the game's loadscreen (I mean, once again, it's 30 seconds compared to the rest of the game taking 40 minutes!). There are a hell of a lot of things which could factor in here (background processes, power states, drivers, antiviruses, garbage software from National Instruments/HP, just to name a few), so it's not possible for me to pinpoint what's happening.
  2. I'm not going to act as if I know anything much about the loading stuff, though - there are a ton of people who probably know way more than me, especially since I'm only 17 atm, with not enough real world experience to be happy (which is why Dargon and RAF Manager didn't have good file drop functionality - I can't get a software developer license from most places for code signing).
  3. I just know the file operations which the game goes through, and I never really bothered stepping through that stuff with a disassembler (didn't have to, somewhat fortunately). The summary would be that LoL loads a crap ton of stuff (get an api monitor to watch CreateFileA and CreateFileW), though a lot of that stuff may or may not be due to the APIs which it uses. If you want a real answer of what I know: you start the game, it loads solution manifests, configuration manifests, and release manifests (I haven't bothered REing these), followed by 0.0.0.25 (or 0.0.0.1 on PBE), followed by a crap ton of stuff. FMOD initializes at around the 32% mark, and Jesus takes the wheel somewhere along those lines, with Carrie Underwood singing in the background. Somewhere after the manifests and 0.0.0.25, Dinput and Direct3D devices are created and configured.
  4. Once again IO is the slowest thing, so that'll be things like networking (local and remote, though this is probably done asynchronously) and file operations. File operations includes figuring out where your files are (which can have many levels of indirection), and loading/unpacking those files. The League of Legends resource files are actually mostly compressed on disk (Archive 0.0.0.25 was a GB unpacked back in 2010, and I have no clue how big things are nowadays, scaleform and fmod-related files are the exceptions, which remain uncompressed in the game archives), so I'd assume a lot of time is also spent simply uncompressing those things (zlib). And then you have to take things over to the GPU, which would take some time. On the other hand, non-IO operations (ie: moving stuff around the map via transforms, or unpacking character data) happen really fast, as you can probably imagine. If you've ever serialized a map with different data types, it's sort of the same thing (sort of...).
  5. Tl;dr: I have no clue what's causing your problem. Drivers can slow you down anywhere, as can any other software running in the background, antivirus scanners, a creepy person named John spying on your computer, etc. I'd recommend checking the performance of your SSD, and seeing if there are a lot of background operations going on, or if your desktop's actually running at full speed (high performance mode in power options, CPU not throttling, GPU not throttling, etc)... I'm not even close to an expert in terms of talking about that stuff :P, sorry dude!
  6. Apologies for the crappy answer :P I actually plan to look into this stuff next summer, if I don't get an internship somewhere fun. I should note that I don't consider myself innovative at all, which is why I get a laugh out of whenever someone puts me on a pedestal in game. I should note that when working on Dargon/RM, I pretty much worked with already known knowledge - I'm more working on taking something that's already working, and making it better (faster, or less error-prone) while also trying to make it sort of friendly to the average person. If you want an example of what I consider to be a really awesome project, look at LoLReplay.
  7. edit: I should note that the loading process doesn't have to be as complex as what LoL has (tbh at a high level LoL's loading process isn't so complex. It's just sort of innately larger than a small personal project). In computer science there never really is anything "magical" going on, especially in projects like LoL (where code has to be maintainable, and things probably have to make sense the majority of the time). Game loading could be as simple as: Create your window, create your direct3d device, initialize input, initialize sound apis, load textures, load actors + audio, load map (ie: tile based is a simple thing to load), gameLoop().
  8. edit2: And once again, I'm not even close at all to being an expert. a better tl;dr is: most of your loading time is IO, though you can have fairly significant delays due to other factors. Game initialization is fairly intuitive, so there's nothing hugely amazing going on there.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement