Today I’m pleased to announce Roll20 Jumpgate, which is our exciting plan to modernize the Roll20 VTT and get it ready for the next decade of online tabletop gaming. 

Roll20 has been helping bring your virtual table together worldwide since 2012, and in that time we’ve continued to iterate and develop to improve the platform based on your feedback. As you might imagine, more than a decade is quite a long time when it comes to software. We’ve seen multiple major versions of Windows and Mac, the rise of tablet devices in our everyday lives, and multiple editions of your favorite tabletop RPG during that timespan. And while we’re very proud of our role in helping keep your group playing throughout that time, we also recognize that there are some underlying technical issues that we’d like to address to make sure that we’re here to support you for the decades ahead.

What is Roll20 Jumpgate?

Jumpgate is the name of our overall project to deliver to you the largest overhaul and modernization of our VTT platform since we started. It’s a major reworking of the lowest level of the engine code that powers our VTT, as well as an opportunity for us to bring together all of the recent strides we’ve made with our new UI redesign efforts. 

Bottom line: it means a faster, more performant VTT, with a beautiful modern interface, built on top of the latest web technology that will last us well into the future.

Engine Mark II

We’ll be diving more into the technical details of what we’re working on in future posts in this blog series, but generally speaking we are going into the foundational parts of the VTT to clean them up and also replace them with newer, more performant pieces. 

As an example, Roll20 currently utilizes an older rendering engine that was created more than a decade ago, and was designed for web browsers as they existed at that time – relying in many cases on software rendering with some WebGL sprinkled on top for things like dynamic lighting. In addition to that, as we’ve added new features over the past few years we’ve had to adopt newer tools on an as-needed basis, so we have large parts of our underlying codebase that are written in 3 or 4 different libraries with different coding styles.

This is our opportunity to rework that legacy code with an eye toward what browsers are capable of in today’s world. We also have better knowledge of what the VTT needs to be able to do as a complete package (as opposed to slowly building it piece by piece like we did originally), so we can pay down a lot of “technical debt” and write code with modern standards and practices. We can also move as much of the rendering work as possible to hardware acceleration and shaders, which will provide significant speed increases.

The end result will be a much more powerful engine that will not only deliver your tabletop games with speed, we’ll also be able to introduce new features to the VTT more quickly. And as new web technology such as WebGPU becomes widespread, we’ll be ready and able to take advantage to increase these wins even further.

The Need for Speed

As Roll20 has grown over the years, so has the desire of the community to push it to the limits. With massive campaigns with hundreds of NPCs and pages, and giant modules like Dungeon of the Mad Mage, Roll20 can sometimes struggle to keep up unless you have a truly beefy computer.

One of our primary goals with Jumpgate is to improve performance across the board so that everything from a potato to the latest gaming PC can smoothly play a game on Roll20. Although we have to caution that it’s still early in the process and these results are subject to change, we’re pleased to show an example of what a stress test looks like in Jumpgate versus the current Roll20 interface:

The first part of the video showcases a very demanding page with 100 animated dragon tokens. Legacy Roll20 really struggles with this scenario even on the high-end computer on which this was recorded, requiring 400% total “CPU” usage (this also includes GPU usage due to how Chrome reports), as well as 4 GB of memory. As you can see in the video, it’s pretty much unplayable in Roll20 right now. 

With Jumpgate on the other hand, CPU and GPU usage is a mere 50% combined, and only 1.5 GB of memory is used. We’re using just a fraction of the CPU resources we were previously – and it’s an incredibly smooth experience with all of those tokens happily animating away!

The second half of the video shows a more typical map test where a user is actively panning around. Again, Jumpgate delivers here with less than half of the current CPU usage and around the same memory usage as legacy Roll20. I’m not sure it’s well-captured in the video, but the feeling of panning around the map is much smoother as well and the tokens and nameplates don’t seem to “lag behind” as I move across the map. 

Although we still have work to do and additional optimizations that we want to make, we’re already seeing very strong early results that our efforts are delivering substantial performance improvements.

An Improved User Experience

In addition to the underlying low-level parts of the codebase getting a rework, we’re also taking this opportunity to lean into the recent UI improvements that we’ve been making (such as the new Measure Tool and Page Folders). This recent work has been done in Vue, and helps bring us into the modern age of web development. 
We’ll be continuing this work on other parts of the current Roll20 interface, with an eye toward things that interact with the VTT tabletop itself, such as the right-click context menus, token bars, and more.

There are also fundamental parts of the Roll20 user experience that have long been blocked by this legacy code. As an example, smoothly zooming directly to where your cursor is on the tabletop is something we’ve long wanted to do, but been unable to implement. This already works in Jumpgate!

We’ll be unveiling these fun little user interface wins alongside technical deep-dives in future blog posts, so stay tuned to see what new interactions will soon be possible in Roll20.

What’s Next?

We know that you’re eager to get your hands on Jumpgate and we’re excited to get it to you as soon as possible. Work has already been underway internally on this project for several months, and we’re currently nearing an Internal MVP milestone (meaning major pieces of Roll20 all work in Jumpgate, but it’s not ready for public use just yet).

Our goal is to launch Jumpgate into Beta for Pro Users by the end of Q1 2024. At that point you will be able to import existing Roll20 games into Jumpgate for playtesting. 

Between now and then I’ll be writing a series of posts talking about what we’re working on and letting you know about our progress. The entire Roll20 team is excited to bring you this major improvement to your gaming experience – and we’re well on our way to getting it to you. Stay tuned for future updates!

Riley Dutton Founder in Residence

Discover more from Roll20 Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading