I had an interesting conversation (Programmers step in)
Posted: Wed Oct 17, 2012 11:20 am
Riders of Rohan for LOTRO just launched, but today the servers are coming down for some maintenance.
I asked why it takes 4 hours to bring the server down for 2 or 3 things, and someone pointed out the "memory leak" problem people were having. This memory leak, by the way was reported client-side. So I pointed out it seemed like a client side problem to me.
Eventually this went to private conversation, At first I thought I was going to get an interesting lesson on how things apparently worked, by someone who perhaps did know.
But what happened is I couldn't follow this guys logic, or any of his claims. Many of them just seemed stupid and contrary to common sense.
Have I got it all wrong??
(I have censored our game names for obvious reasons)
I dunno. I thought it was poor form to insult me at the end, though. I am usually not this civil with my server-side compatriots.
I asked why it takes 4 hours to bring the server down for 2 or 3 things, and someone pointed out the "memory leak" problem people were having. This memory leak, by the way was reported client-side. So I pointed out it seemed like a client side problem to me.
Eventually this went to private conversation, At first I thought I was going to get an interesting lesson on how things apparently worked, by someone who perhaps did know.
But what happened is I couldn't follow this guys logic, or any of his claims. Many of them just seemed stupid and contrary to common sense.
Have I got it all wrong??
(I have censored our game names for obvious reasons)
So basically I tried to remain respectful through this entire debate. I don't claim to know a lot about game development or DirectX or any of that stuff. I just argued my opinion on how I thought it worked, and everything he told me seemed like he was just repeating stuff he has heard or gotten his own mixed up ideas from.### Chat Capture: IMs_**CENSORED** 10/17 04:50 AM ###
[04:38] **CENSORED**: would you like a private explanation?
[04:39] **MYSELF**: couldn't hurt to listen
[04:40] **CENSORED**: lets say this game was coded and created for DX9 info being sent to your computer. If you're running DX10 or 11, you're missing stuff, for example.
[04:41] **CENSORED**: hence, why people are having to revert to DX9 in order to be stable and not freeze up, get slide-shows, or not be able to target stuff, or do quest turn-ins without relogging, etc etc.
[04:41] **CENSORED**: that isnt a client-side issue since there's a lack of junk being sent to your computer. it cant draw what it cant 'see'.
[04:41] **CENSORED**: make moar sense now?
[04:42] **CENSORED**: the same thing is the essential part to what lag is.
[04:42] **MYSELF**: but I don't understand why that kind of data would be sent as Direct X information, whatever that is supposed to be in this case
[04:43] **CENSORED**: it's sent as info. what you 'see' is being sent from the server. all your computer is doing is drawing what is being sent.. and sending replies based on what you do.
[04:43] **CENSORED**: in fractions of a fraction of a second.
[04:43] **CENSORED**: its the same shit with aircraft elecontrics
[04:44] **MYSELF**: my problem here is the assumption that what is being sent is somehow Direct X version specific. If that is truly how turbine coded this game, they should be out of the job
[04:45] **CENSORED**: it is, to a certain extent. if they aren't sending the right info for the version of your PC, then only the version they're sending is going to work flawlessly.
[04:45] **CENSORED**: its how EVERY game is coded. they have to make sure their shit is compatible with EVERYTHING. that is no small order.
[04:46] **MYSELF**: Where I am in the world, and where I am going to is not the purview of DirectX, what I look like and how it tells the GPU to render that representation is.
[04:48] **MYSELF**: I just can't make the connection here between legitimate game data, and DirectX, beyond a network communication protocol it might support or something, the server shouldn't even know what DirectX version I am running unless the client tells it for statistical purposes
[04:48] **MYSELF**: *nor should the server care
### Chat Log: IMs_**CENSORED** 10/17 04:50 AM ###
[04:56] **CENSORED**: sorry, i didnt get any info from the server so i lagged out for the second time during this conversation lol
[04:56] **CENSORED**: internet still worked client-side, could still surf the web, use google, look at even the lotro forums.. which side is at fault?
[04:57] **MYSELF**: Can't say withought more info. But more than likely a node hop between you aren Turbine dropping packets
[04:57] **CENSORED**: exactly.. but that aint *my* fault now is it?
[04:58] **MYSELF**: No, but I don't see how that relates to our discussion.
[04:58] **CENSORED**: info was not being sent to this computer. ergo it could not draw what it could not see.
[04:58] **MYSELF**: you're attempting to draw a parellel where none exists
[04:58] **CENSORED**: and it could not react or reply with what i was trying to do.
[04:59] **CENSORED**: one DOES exist coldy.. thats what im saying.
[04:59] **CENSORED**: the DX 10 and 11 data is data that is sent IN ADDITION TO Dx9..
[05:00] **MYSELF**: I don't see it. Your client could sit there lagged out all day, even without code telling it to exit its communication procedures. That act in itself would not cause a memory leak and has nothing to do with any specific version of DirectX
[05:00] **CENSORED**: if your computer doesnt get that info, it doesnt draw it.. and chaos ensues man.
[05:00] **MYSELF**: and further more, if what you were saying was true even remotely. 100% of DirectX 10/11 users would have crashes.
[05:01] **MYSELF**: this is not the case - because errant data in itself does not cause a memory leak in the way you are describing.
[05:01] **CENSORED**: no, it wouldnt. because not everyone has the same computer, same drivers, same video cards, etc etc.
[05:01] **CENSORED**: what the hell do you think a memory leak is?
[05:02] **MYSELF**: I think the question here is what -you- think it is
[05:02] **CENSORED**: it's a loss of data.
[05:02] **CENSORED**: whether that's inside the PC, outside the PC, is what we're arguing about.
[05:02] **MYSELF**: how can the client lose data it never received? You have created a paradox
[05:03] **MYSELF**: because the memory leak is with the client. This is a fact.
[05:03] **CENSORED**: ....there can still be loss of data based on what the server is sending you.
[05:03] **MYSELF**: No, that translates to dropped packets, which the game have interpolation code to deal with and fix that kind of issue already
[05:04] **CENSORED**: *sigh* i give up. im going back to the game and leveling for the 55 minutes of time we got left
[05:04] **MYSELF**: you can't have a memory leak on the client with data the client never received
[05:05] **CENSORED**: then WHY IN THE BLUE FING HELL DO YOU NOT HAVE THE MEMORY LEAK WHEN NOT PLAYING THE GAME?!?!?!?!?!?
[05:05] **CENSORED**: sorry for yelling....
[05:05] **MYSELF**: For one thing, if you are not playing - your client is not Open.
[05:06] **MYSELF**: its impossible for the client to create a leak in that obvious scenario
[05:06] **CENSORED**: right.. sooo you arent receiving data from the server.
[05:06] **CENSORED**: ergo, there is nothing TO leak
[05:06] **MYSELF**: that's not how it works.. a memory leak can be any kind of data
[05:06] **CENSORED**: then why is it isolated to lotro?
[05:07] **MYSELF**: because there is an error in the source code for the game someone made.
[05:07] **CENSORED**: and why would they be hotfixing it to make both sides COMPATIBLE?
[05:07] **MYSELF**: correction - the game CLIENT
[05:07] **MYSELF**: that is what I asked originally, **CENSORED**. No one has been able to tell me
[05:08] **CENSORED**: EXACTLY!!!! the source code!! which is being sent FROM where? The SERVER....
[05:08] **MYSELF**: no, you're grasping at straws now
[05:08] **CENSORED**: ...... you just said what the problem was.
[05:09] **MYSELF**: Let me break it down into more clear steps for you
[05:09] **CENSORED**: no, you dont.
[05:09] **CENSORED**: BOTH sides of the connection need to communicate in a compatible manner. you're saying its client-side, im saying its server-side.
[05:09] **MYSELF**: the server does not send source code to us
[05:09] **CENSORED**: rofl.
[05:09] **MYSELF**: if the memory leak was server side do you know what would happen?
[05:10] **MYSELF**: we wouldn't be playing right now... or at any random point in the future
[05:10] **MYSELF**: because the SERVER would constantly crash after running out of memory - not the clients
[05:10] **MYSELF**: the problem people are reporting is a CLIENT side crash
[05:10] **CENSORED**: good god do you need to learn electronic theory. find out what ARINC is and let me know.
[05:11] **CENSORED**: until then, im going back to the game.
I dunno. I thought it was poor form to insult me at the end, though. I am usually not this civil with my server-side compatriots.