I did some moving around in some active areas of the game for the first hour, and sat idle the rest of the time. Not all of the time I was idle was I alone, sometimes I'd be in the middle of various people fighting, but I'm never actually doing anything. I plan to do some testing tonight to see if simply idling on a server can produce it.
Thinking back though, this issue isn't entirely new. I remember having to reconnect due to a 'build up' of some sort even back when Byond and I were a lot younger - and I'm not talking about just on GOA, this went for any game. (The major difference between now and then, is now you have to fully reconnect to get the benefit - you could simply F1 -> reconnect in the past.)
I'm of the idea now that this is always going to be a thing when dealing with multiplayer games [on Byond], more or less based on the programming practices used in the game. The farther Byond goes, the more apparent the inefficiencies seem to become (or the worse they impact your experience). Would I be wrong in thinking that there are things now that you can't get away with, that you could back during, say... version 4 of Byond?
I feel this won't be as much of, if any at all, an issue once objects aren't force deleting all over the place, things are more generally cleaned up, etc.
1
2
In response to Lummox JR
|
|
The farther Byond goes, the more apparent the inefficiencies seem to become (or the worse they impact your experience). Would I be wrong in thinking that there are things now that you can't get away with, that you could back during, say... version 4 of Byond? Not really. BYOND's gotten much more capable over time, the problem is that programming practices have gotten worse over time. Garbage collection and memory leaks are a huge problem for the kinds of games you guys work in. |
In response to Ter13
|
|
Byond has gotten better, but these games' source code (my case included) haven't, which is where I think most of the problem lies.
(I also wasn't sure if your "not really" was to the first part, or the question at the end.) |
The not really is the question at the end.
games' source code (my case included) haven't It's not that the source code hasn't gotten better, it's that they've been getting progressively worse and bad approaches have been taught as the way things are done. |
In response to Ter13
|
|
In my case particularly, the source code hasn't changed in years, and it wasn't until the last month it's seen any change from myself (and even then the core remains intact). When this game would be played back during some of the earlier versions of Byond, there was occasional lag due to the amount of players, but never anything heavy. The client itself felt very light and played smoothly most of the time (I had a computer built from garbage parts at the time, so Byond was the only thing I was playing optimally). I was surprised the game ran the way it did once I saw the source code and knew what I was looking at.
Now, it's just a really heavy lag that drops your FPS to about 3. Before, even when the sluggishness kicked in from being online for extended periods of time, it was 10x better and actually bearable. Its just murder now and only getting more widespread as I encounter more people. I'm only coming from experience here, as I've been playing the same game the majority of my time on Byond and have seen it played on many different versions of it. (Although it may seem like I'm blaming Byond, that isn't my intention.) But anyway, I'm going to downgrade to the latest stable build, since I get less complaints on that version, and not worry about this issue anymore since it can't be helped right now. I'll continue rebuilding the game and see how it goes from there. You'll definitely see me back here again if it's still a thing when all is said and done. I'll also remember to do that testing tonight @Lummox, just to see where it goes. |
1
2
When you had this happen, were you just sitting around for 2 hours, or had you done a lot of stuff in the game?
The garbage collection issue I fixed (by reverting) worked like this: Normally the client does garbage collection after a certain amount of time or a high number of new appearances or icons have been created. At that point it searches all the atoms it knows about, and statpanels, and makes a list of which appearances are still in use and which can be recycled; likewise, which icons are still in use. I had made this check more aggressive based on the memory being used by the loaded icons, and that was likely causing churn.
If your issue can be achieved by literally sitting around and doing nothing in a blank server (no other users, nothing else going on), that's something I can test if you have the code handy.
Mind you if you were just sitting there doing nothing, it's also possible you saw some sluggishness from appearances and icons being reloaded after having been let go, and after that the problem should have gone away. I wouldn't expect that kind of thing to persist for very long, however, so I'm not sure how likely that is as a possibility.