There’s been a lot of chatter in the past two days as Zwifters have hopped into the Pace Partner groups only to discover the bots’ paces are different than usual.
We initially covered this topic yesterday, explaining that the bots had stopped drafting. At that time, based on a message we had seen from Zwift support, we assumed the lack of drafting was done on purpose. But that wasn’t actually the case! On top of all that, more updates have come in since yesterday’s changes, with some Pace Partners reverting back to their old drafting paces, while others remain slow (non-drafting).
Not long after I was alerted to this forum post, I received the following from Kristy Fulwider, Director of Marketing Communications at Zwift:
Hi Eric –
Hope you’re having a lovely Friday.
I wanted to follow up on something you noted in ZwiftInsider this week re: Pace Partners. We’re also putting a forum post up for the community, and wanted to make sure we shared some of the more technical elements with you at the same time.
As you noticed, Pace Partner paces were slower than usual for roughly a day. We were in the process of transitioning Pace Partners from client emulation to server entity emulation, a move that would eventually transition Pace Partners out of our experimental FutureWorks program. This change created unforeseen inconsistencies in drafting which impacted pace, and as parity was the goal, we reverted them back.
We’ll continue to work on this transition with an eye on consistency. We remain excited about what this change means: a path towards Pace Partners in worlds other than Watopia and equally important, a reduction in Pace Partner downtime.
Have a fantastic weekend.
Client to Server Emulation
The most interesting part of Kristy’s message is her statement about moving Pace Partners from “client emulation to server entity emulation”. For the less nerdy among us, here’s what those terms mean in Zwiftland:
- Client emulation: Zwift is running on a device just like you or I use for Zwift (the “client”), but the power and cadence data is being “faked” by software instead of created by someone’s legs. This is how Zwift Insider’s speed testing bots work – and how every bot on Zwift works. A normal Zwift install, reading in computer-generated data. This is how Zwift’s Pace Partners currently work – somewhere (we assume in a Zwift developer’s house, since Zwift’s offices are essentially closed), there are four PCs running Zwift reading in emulated cadence+power data. If one of those machines crashes, so does the Pace Partner. You get the idea.
- Server entity emulation: the Pacer Bots are no longer running on separate Zwift devices – rather, they are “generated” by Zwift’s servers and controlled entirely by code. (Think the blue ghosts of early Zwift days, which rode around on course with behavior automatically controlled by server code.)
Moving to server-based Pace Partners makes it much easier to spin up additional bots, with little increase in maintenance or other costs. Instead of requiring a developer to set up an entirely new computer (which could crash at any time), a new server-side Pace Partner would simply require another entry into a database table. And since Zwift’s servers are redundant and cloud-based, reliability should be rock-solid, provided the code behind everything is stable.
Moving Pace Partners to the server-side is an essential step in order for Zwift to implement many of the cooler features which we’ve talked about for months. These ideas are listed and discussed on our main Pace Partners page, but here’s a quick list:
- Roll Your Own: being able to spin up a Pace Partner with whatever specs you desire
- Change of Pace: having Pace Partners change their pace in smart ways – like bumping it up on climbs, and decreasing it on descents
- Smart Messaging: sending smarter messages to nearby riders, instead of just reading through the script like they do currently
- More Options: having more Pace Partners available at various paces
All four of these ideas are much more doable using server-side emulation. In fact, I would say #1 is impossible unless the Pace Partners are server-side, and numbers 2-4 are made much much easier when implemented server-side.
A Good Sign
At the time of this posting, C. Cadence was still rolling without a draft, meaning her group was around 5kph slower than normal. Hopefully Zwift will get her fixed up soon.
But those are just growing pains. In the bigger picture, it’s clear Zwift is investing some work into taking Pace Partners to the next level – and that’s exciting! I’m looking forward to the server-side rollout happening soon, so Zwift can begin to grant Pace Partners more magical powers.
Share your thoughts below!