Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

Game Performance Lag

All of my players are reporting random lag with my campaign. I've only experienced this once or twice and can't really pinpoint anything that I or anyone else did that by would trigger it. Two players actually were having difficulty loading the campaign because their browser would stop responding, even after letting the campaign load for 5+ minutes. We don't use the Rol20 chat (use Skype), we don't use the Jukebox for music, and we use the native Roll20 client (not Google+). One of my players who is more experienced with Roll20 said it could be because the campaign is old and might have some no longer used data somewhere in it, be it on a token or a map. I really have no idea where to start looking at this issue and any help would be greatly appreciated.
If you tell me the name of the campaign I'll try and take a look for you.
It is called "Eberron: Awakenings". Thanks.
I am one of the players in this game, the lag seems pretty exclusive to this game it will hang up slightly for a few moments (not that big of a deal) but a couple players have had trouble logging in exclusively to this game, and it is by far the best game on roll20 so plz halp XD
Okay, so the issue is that the campaign is just HUGE. I'm seeing that you have something like 20 pages (although 10 are archived), and many of these pages have hundreds of tokens/drawings on them. A few things: 1) Roll20 *should* still handle this. This actually seems to be a bug with one of our service providers where if your connection is slower, downloading this much data takes too long and they think you've timed out. So I'm working with them to get that fixed. 2) Although archiving pages does reduce clutter and only one page is ever rendered at a time (so you shouldn't be running into graphical lag issues), the problem is that there is just so much data stored across all 20 of those pages that making a change to that data structure can take a while (causing lag) and/or making it impossible to even load. I would strongly recommend using the Copy/Extend campaign feature to split it up so that you don't have more than 5 or 10 of those large pages in a single Roll20 campaign. Obviously this varies by campaign but especially if you are having hundreds of tokens on each map, eventually just the raw amount of stored data can become quite a bit. 3) If possible, try to "pre-combine" assets into a map as a single image file before you import it into Roll20. Roll20 is optimized to render some objects on a tabletop that move frequently. We're not as optimized to store/render 200+ objects to create a static scene of a village. Every object you put into Roll20 we have to keep track of all the information about it (where is it? does it have an aura? who can move it? etc., etc., etc.). So you can imagine how building a forest background out of 100 individual tree images, that's never going to be manipulated once it's placed, can really bog down your game. Compare that to building it in an external image program than importing it as one image -- it can really speed things up! So, I think a combination of us improving some of our network stack and you splitting this up into a couple different campaigns so there's not so much stored all in "one place" would solve this problem. Do let us know if you need help with any of that, as this is something we haven't seen much of so far :-)
Ah, OK. I was wondering if it was something like that. I'll work on reducing the clutter then. Thanks!
Would it be possible to optimize the map/background layer for static images not manipulated often?
Would it be possible to optimize the map/background layer for static images not manipulated often? It's really "the way browser canvas is implemented." Basically for each individual "object" (which has a corresponding source image), we have to go through and render that source image to the overall canvas. We have to do that every time we update the screen, which is every time you scroll, for example. Browsers are just much, much more efficient at rendering a large image one time than they are at looping through and rendering 200 small images. A thought just occurred to me that there *might* be a way we can "cheat" this by dividing it up into large sections and pre-rendering the small bits to those larger sections, then only updating the sections when something changes on the background layer...I'll have to look into it. It would come at the cost of memory vs CPU.
Sounds sorta like streaming the next bit of the world when you're running around in an MMO. Good luck!