Our Third Anniversary

I’m just a few days late on this one, but as of July 22, 2021, Velocity turned three years old! So let’s celebrate a little bit by recounting some of the biggest moments of the project so far, and how much things have changed.

Velocity in 2021

2021 has been a year of growth for the Velocity project. Plugin availability is increasing in pace, and several servers switched to Velocity for its superior performance and functionality, such as Minehut (one of the very largest Minecraft servers out there). In addition, there are many new servers coming out that have chosen Velocity from the very beginning.

The biggest event of 2021 has been so far the release of Velocity 3.0.0, bringing in features currently under development in “Polymer” (formerly Velocity 2.0.0).

A Look Back

(This is largely based on an earlier post I made in October 2018, and it’s well over time to give it an update.)

Before Velocity: July 2011-July 2018

I’ve been around the server community for ten years now. I had a natural progression: confused player, competent player, confused server owner, wiser server owner, confused plugin developer, wise plugin developer, and now a growing Minecraft internal hacker with a focus on networking.

But I’m not here to talk about my time in the community: that’s worthy of a series of blog posts.

Before Velocity, there was LibertyCord. And before LibertyCord, there was Waterfall. These projects share a common codebase and a common founder, but distinctly different purposes.

Waterfall was created in January 2016 to ease the barrier for entry to changes to BungeeCord. It became a popular alternative to BungeeCord, largely due to being mostly BungeeCord-compatible. If you’re familiar with Spigot and Paper, then Waterfall was the Paper to Spigot.

I left the Waterfall project in 2017 in an attempt to leave the Minecraft community (an attempt that did not succeed), but remained in place as a leader of the project. I transferred Waterfall to the Paper team in September 2018 and am no longer involved in the project. However, more recently, with the success of Velocity, Waterfall has entered de facto maintenance mode, with users strongly encouraged to move to Velocity instead.

I created LibertyCord in June 2018 primarily to experiment with radical changes to the BungeeCord code base. However, after a fateful conversation one day, I decided that it was better to start over.

Genesis: July 22, 2018

I decided to open up more about the LibertyCord project in the Paper Discord. Turns out that there was plenty of reason for a new proxy. I was encouraged primarily by kashike and electroniccat to do it. So I did. By early August I had a minimally-working proxy that could switch to another server, In mid-August the proxy had an API, and by early September it sported (legacy) Forge support, ports of a few popular plugins, and a small but growing community. October saw the merging of support for Velocity’s “modern” forwarding format into Paper, and in November Velocity saw its first deployment on Mineteria.

The Velocity 1.x.x Series: January 2019 - May 2021

Progress continued throughout early 2019 on adding new functionality and stabilizing the proxy for the eventual 1.0.0 release, which happened on June 12, 2019. By that point, development had began on Velocity 1.1.0, which would become the single largest release of Velocity to date.

Development on Velocity 1.1.0 continued throughout late 2019 and for much of 2020. 2019’s developments included integrating native support for the BungeeCord plugin messaging channel, flush consolidation support, initial optimizations for compression and encryption. 2020 saw native crypto support (by relying on the system OpenSSL for Linux), further optimized compression (using libdeflate), support for 64-bit Arm natives, a new command API, and integration of the Adventure API into Velocity. Velocity 1.1.0 was released on October 28, 2020. The rest of 2020 primarily focused on bug fixes to the 1.1.x series.

Velocity 3.x.x and Polymer: May 2021 - Now

Things were going smoothly. Velocity 2.0.0 had at this time gotten a brand new event system, translation support, and many other API changes. Until, of course, Mojang bumped the Java version requirement for Minecraft 1.17 to Java 16. This move was long overdue, but it was quite sudden and it jumbled our plans. We eventually decided to release Velocity 3.0.0 instead, which includes the async event system, improvements to the command system introduced in Velocity 1.1.0, translation support, bringing forward some of the API changes done in 2.0.0, and renaming Velocity 2.0.0 to Velocity Polymer. Velocity 3.0.0 was released on July 6th to that effect.

Velocity also gained a new core developer: the talented Five/Xernium, who had previously contributed protocol updates.

Today, Velocity is now a quickly growing project. Many of the plugins you’d expect are here, and more are coming over time. Come along for the ride, we want you!