loftar wrote:NOOBY93 wrote:But anyway the tech savvy dude listed what is causing the lag:
[...]
None of that explains the discrepancy in difference between what you're seeing and what I'm seeing, however.
Vague ideas:
- You're using Linux while he's using Windows, right? Might be something in the driver stack.
- Does the possibility exist that this could be something that creeps out of the shadows when you're farer away from the server and the ping goes up (like packet roundtrip latencies adding up for some strange reason)?
- Deferred loading of resources blocking rendering, like a lock congestion between game threads?
- Many warriors seem to have customized shields/clothing: Maybe the GPU is running out of local memory when many textures are needed (for objects with sketches) and the driver resorts to swapping textures to main RAM to render the frame? This could explain the extremely low framerate NOOBY93 is reporting for being in a bigger fight?
- Characters/objects constantly dis- and reappearing from/into render range, with the client (or JVM) repeatedly releasing resources and having to reload them, burdening the client (and GPU) with additional I/O (and then maybe run into a lock issue as mentioned)?
- JVM running out of memory and going into a busy loop garbage collecting? This added to thermal throttling might well bring a client to a near halt.
BTW: Speaking of garbage collection:
Jacobian123 wrote:... but there's a pause in the game about every second which makes moving around even more of a pain than if you just have consistently low FPS.
I was able to remove this kind of repeating stutter by giving Java higher numbers for the -Xms and -Xmx parameters...
Suggestion: make a debug client that profiles the various sections of the game loop and logs per frame:
- game pipeline stats
- system memory stats
- network events
- (de-)instantiations of rendered objects (possibly from this one could see that a certain thing coming into existance kills off the render pipeline)
log to local debug server of yours in real time, so you could get onto a chat (skype, irc, whatever) with someone/some_more and coordinate them do stuff while viewing the resulting changes in client performance in real time - with this you could also possibly de-/activate certain kinds of profiling in their clients from your side to get to the metrics you need to see (without having to push a new client). Like the dtrace style inspection system we talked about a while ago, just for the client and with a remote interface for you to peek into it remotely when needed...