If any of you have done any pvmp lately, you may have had an event where a warg attacks you and you are dead before you can do anything. I've even turned on time-stamping in my log and it appears that multiple attack skills are all firing at once, leaving my client locked until I'm already dead. I even hit Hunter's Cry immediately after being pounced, but it never went off!
Michaleo and I were both curious about this so we I did a little experimentation (me on my warg and him as a freep) and discovered that when I simply appeared (un-hid) in front of him, his client briefly locked up while his performance monitor showed a bunch of disk I/O, indicating that the lock up was caused by the client loading from disk (in what's called an I/O wait state). We continued this test on various other warg attack skills, each caused a brief lock up the first time they were executed (with disk I/O). However, (as I had expected) re-appearing or repeating an attack skill a second time did not cause this, as likely the data for those sounds, animations and particle textures were already loaded
So I'm hypothesizing that pre-loading this data, at least at the operating system level, may prevent this lag, although the client will still have to read it in (hopefully from the OS file cache), decompress it etc, this should be much faster than hitting 283 separate places on disk. I would venture to guess that people with SSDs may not experience this lag at all (or as badly). So for anybody interested in trying, I have logged (via strace
on Linux) the file reads that occur when performing a full barrage of a typical warg attack. I haven't yet written a script or program to do this read, but here is the information anyway. Also note that this was with the R6 warg skin and any other skin would not be loaded by this, although I'm guessing that this is just the two reads from the highres* files.
File Name Offset Size
========= ====== ====
client_gamelogic.dat 107389100 296
client_gamelogic.dat 131362372 487
client_gamelogic.dat 131384932 2460
client_gamelogic.dat 135179296 550
client_gamelogic.dat 135185588 2460
client_gamelogic.dat 158689204 296
client_gamelogic.dat 158689756 2460
client_gamelogic.dat 158700340 586
client_gamelogic.dat 158762852 568
client_gamelogic.dat 158782428 2460
client_gamelogic.dat 211610296 427
client_gamelogic.dat 217923412 427
client_gamelogic.dat 218040596 526
client_gamelogic.dat 220178076 557
client_gamelogic.dat 225554192 568
client_gamelogic.dat 225555896 487
client_gamelogic.dat 225559064 487
client_gamelogic.dat 225560120 487
client_gamelogic.dat 228986256 243
client_gamelogic.dat 230385552 134
client_gamelogic.dat 230806600 556
client_gamelogic.dat 232168320 607
client_gamelogic.dat 237765500 283
client_gamelogic.dat 238296740 2019
client_gamelogic.dat 247014828 1485
client_gamelogic.dat 247037588 556
client_gamelogic.dat 251890468 243
client_gamelogic.dat 254668072 556
client_gamelogic.dat 287020824 3489
client_gamelogic.dat 290300012 50
client_gamelogic.dat 2915480 2342
client_gamelogic.dat 291932444 1912
client_gamelogic.dat 292346496 26
client_gamelogic.dat 295251348 2460
client_gamelogic.dat 295266540 380
client_gamelogic.dat 307735008 364
client_gamelogic.dat 312461412 3531
client_gamelogic.dat 313832056 462
client_gamelogic.dat 313833988 517
client_gamelogic.dat 313834872 373
client_gamelogic.dat 323120860 434
client_gamelogic.dat 323121296 440
client_gamelogic.dat 323121736 437
client_gamelogic.dat 323122176 440
client_gamelogic.dat 323122616 437
client_gamelogic.dat 323123056 434
client_gamelogic.dat 323123492 435
client_gamelogic.dat 323123928 436
client_gamelogic.dat 323124364 434
client_gamelogic.dat 323124800 433
client_gamelogic.dat 323125236 435
client_gamelogic.dat 323125672 431
client_gamelogic.dat 323126104 434
client_gamelogic.dat 323126540 435
client_gamelogic.dat 323126976 435
client_gamelogic.dat 323127412 436
client_gamelogic.dat 323127848 435
client_gamelogic.dat 323128284 432
client_gamelogic.dat 323128716 433
client_gamelogic.dat 323129152 431
client_gamelogic.dat 323659072 399
client_gamelogic.dat 323659728 359
client_gamelogic.dat 323660344 317
client_gamelogic.dat 323693856 3489
client_gamelogic.dat 324137620 532
client_gamelogic.dat 349654428 401
client_gamelogic.dat 35607656 3489
client_gamelogic.dat 361966440 3567
client_gamelogic.dat 370926644 4841
client_gamelogic.dat 370931488 2374
client_gamelogic.dat 405683676 492
client_gamelogic.dat 405691832 2290
client_gamelogic.dat 405706580 2460
client_gamelogic.dat 410497160 528
client_gamelogic.dat 418806792 2460
client_gamelogic.dat 418809856 364
client_gamelogic.dat 418833456 592
client_gamelogic.dat 418929000 524
client_gamelogic.dat 418958772 2460
client_gamelogic.dat 494178492 2304
client_gamelogic.dat 497620480 459
client_gamelogic.dat 49837504 1397
client_gamelogic.dat 507204040 438
client_gamelogic.dat 507340392 492
client_gamelogic.dat 50914524 296
client_gamelogic.dat 510191044 1930
client_gamelogic.dat 51148500 78
client_gamelogic.dat 519121624 524
client_gamelogic.dat 519123196 484
client_gamelogic.dat 519126220 484
client_gamelogic.dat 519127228 484
client_gamelogic.dat 523948032 1780
client_gamelogic.dat 524576976 302
client_gamelogic.dat 526438640 58
client_gamelogic.dat 526962216 998
client_gamelogic.dat 528437376 568
client_gamelogic.dat 53224476 2460
client_gamelogic.dat 53238424 296
client_gamelogic.dat 534464616 427
client_gamelogic.dat 535205224 926
client_gamelogic.dat 537001456 3489
client_gamelogic.dat 539756300 3489
client_gamelogic.dat 547171172 998
client_gamelogic.dat 556039376 335
client_gamelogic.dat 559901876 998
client_gamelogic.dat 583584020 2330
client_gamelogic.dat 584444 2276
client_gamelogic.dat 602143604 2262
client_gamelogic.dat 62317536 296
client_gamelogic.dat 623820 2526
client_gamelogic.dat 65525180 472
client_gamelogic.dat 65525652 2460
client_gamelogic.dat 65529296 538
client_gamelogic.dat 65530132 296
client_gamelogic.dat 72532548 666
client_gamelogic.dat 72535676 666
client_gamelogic.dat 72536344 666
client_gamelogic.dat 72537012 666
client_gamelogic.dat 72537680 666
client_gamelogic.dat 72538348 666
client_gamelogic.dat 72539016 666
client_gamelogic.dat 72539684 666
client_gamelogic.dat 72540352 666
client_gamelogic.dat 72541020 666
client_gamelogic.dat 72541688 666
client_gamelogic.dat 72542356 666
client_gamelogic.dat 72543024 666
client_gamelogic.dat 72543692 666
client_gamelogic.dat 72544360 666
client_gamelogic.dat 72545028 666
client_gamelogic.dat 72545696 666
client_gamelogic.dat 72546364 666
client_gamelogic.dat 72547032 666
client_gamelogic.dat 72547700 666
client_gamelogic.dat 73039296 707
client_gamelogic.dat 73040316 626
client_gamelogic.dat 73041256 566
client_gamelogic.dat 73261624 2318
client_gamelogic.dat 73362784 3563
client_gamelogic.dat 73372636 568
client_gamelogic.dat 85049960 686
client_general.dat 197333156 872
client_general.dat 209958540 510
client_highres_aux_1.datx 2010742796 2460
client_highres.dat 2797145964 2460
client_local_English.dat 606140816 8525
client_local_English.dat 606197740 1176
client_local_English.dat 606488340 5629
client_local_English.dat 606540820 36350
client_local_English.dat 606830016 477
client_local_English.dat 607230552 1132
client_local_English.dat 608129676 206
client_local_English.dat 608136332 2460
client_local_English.dat 613197096 244
client_local_English.dat 613232408 2460
client_local_English.dat 615592028 314
client_local_English.dat 615592344 198
client_local_English.dat 615592856 106
client_local_English.dat 615600072 2460
client_local_English.dat 617945936 196
client_local_English.dat 618185260 135
client_local_English.dat 618186964 208
client_local_English.dat 618187220 425
client_local_English.dat 618193136 2460
client_local_English.dat 624007824 162
client_local_English.dat 634456652 230
client_local_English.dat 640958176 48
client_local_English.dat 640958688 415
client_local_English.dat 640959616 302
client_local_English.dat 640961528 327
client_local_English.dat 640963996 2460
client_local_English.dat 643134416 58
client_local_English.dat 646243948 150
client_local_English.dat 646248600 60
client_local_English.dat 646261316 505
client_local_English.dat 646266264 2460
client_local_English.dat 665280812 17629
client_local_English.dat 670657316 74
client_local_English.dat 673698876 367
client_local_English.dat 673722192 457
client_local_English.dat 673747388 58
client_local_English.dat 673760772 2460
client_local_English.dat 673784536 62
client_local_English.dat 673785560 397
client_local_English.dat 673792460 2460
client_local_English.dat 677564308 172
client_local_English.dat 677565716 156
client_local_English.dat 677565972 253
client_local_English.dat 677566484 184
client_local_English.dat 681149796 220
client_local_English.dat 681164212 2460
client_local_English.dat 682616736 10752
client_local_English.dat 683543232 110
client_surface.dat 1397867660 4128
client_surface.dat 1793202536 3037
client_surface.dat 1877682964 3784
client_surface.dat 1901606500 2460
client_surface.dat 1901614692 3201
client_surface.dat 1901643396 4128
client_surface.dat 1901745524 2460
client_surface.dat 1985316408 6227
client_surface.dat 224464464 3104
client_surface.dat 224603180 2460
client_surface.dat 2310688264 2623
client_surface.dat 2310721032 2868
client_surface.dat 2310737416 2882
client_surface.dat 2310741512 2973
client_surface.dat 2310766088 3098
client_surface.dat 2310786568 3137
client_surface.dat 2310794760 3727
client_surface.dat 2310807048 3096
client_surface.dat 2310815240 3119
client_surface.dat 2310827528 3027
client_surface.dat 2310835720 3038
client_surface.dat 2310848008 2887
client_surface.dat 2310856200 2949
client_surface.dat 2310868488 2854
client_surface.dat 2310893064 2672
client_surface.dat 2310901256 2667
client_surface.dat 2310913544 2601
client_surface.dat 2949376108 2976
client_surface.dat 2983774524 160
client_surface.dat 2983778620 544
client_surface.dat 2983782716 40
client_surface.dat 2983786812 2080
client_surface.dat 2983790908 64
client_surface.dat 3349450824 1169
client_surface.dat 3364522716 537
client_surface.dat 3365502480 554
client_surface.dat 3366241804 556
client_surface.dat 3366254092 544
client_surface.dat 3366274572 543
client_surface.dat 3366282764 530
client_surface.dat 3366286860 555
client_surface.dat 3366299148 530
client_surface.dat 3366303244 531
client_surface.dat 3366307340 556
client_surface.dat 3366331916 542
client_surface.dat 3481989732 2852
client_surface.dat 3482006148 3158
client_surface.dat 3482010244 3204
client_surface.dat 3483379852 130
client_surface.dat 389838860 1309
client_surface.dat 391869204 128
client_surface.dat 392636056 8311
client_surface.dat 392644368 8326
client_surface.dat 392652696 8302
client_surface.dat 392661000 8334
client_surface.dat 392669336 8233
client_surface.dat 392677572 8181
client_surface.dat 392685756 7988
client_surface.dat 392693744 7872
client_surface.dat 392701616 7861
client_surface.dat 392709480 7737
client_surface.dat 392721316 7805
client_surface.dat 392729124 7789
client_surface.dat 392736916 7744
client_surface.dat 392744660 7563
client_surface.dat 392752224 7585
client_surface.dat 392759812 7444
client_surface.dat 392767256 7371
client_surface.dat 392774628 7462
client_surface.dat 392782092 7587
client_surface.dat 392797272 7740
client_surface.dat 392805012 7828
client_surface.dat 392812840 7767
client_surface.dat 392820608 7790
client_surface.dat 392828400 7843
client_surface.dat 392836244 7893
client_surface.dat 392844140 8024
client_surface.dat 392885148 8336
client_surface.dat 396507100 2167
client_surface.dat 396609500 2460
client_surface.dat 399898800 2357
client_surface.dat 4262759060 24372
client_surface.dat 4262798264 2460
client_surface.dat 432009376 4128
client_surface.dat 432017632 4128
client_surface.dat 432039628 2460
client_surface.dat 557764700 2615
client_surface.dat 644660 4128
client_surface.dat 92640516 2230
In the end, it all comes down to the client putting appearance before performance. A more modern game engine will replace fancy textures & such with grey placeholders and load the data in the background, allowing the player to still respond rather than locking up their client (even though the mob may briefly look stupid). Maybe Turbine developers all use SSDs and can't imagine anybody else not spending money every time a new gadget comes out.
Nimithier