How volunteers from all over the world create live broadcasts of ICPC-2019
My name is Lida Perovskaya, I work at Yandex, and since 2015 I have been helping to organize the live broadcast of the International Collegiate Programming Contest. ICPC, the student programming world championship, has been held annually since the 1970s. This is almost the only olympiad of this level, which is developing thanks to the efforts of hundreds of volunteers from around the world. Today I will tell readers of Habr how my work on ICPC from the inside is arranged. And I invite you to watch the broadcast of the event and try your own hand at solving problems simultaneously with the participants.
For us volunteers, it is important that the event is interesting and useful for both participants and spectators. But to do this is not easy. 135 teams from 110 countries were announced for the final alone, each team has three people, and all of them participate simultaneously! Whom, when and how to broadcast? What code to show? How to comment to make it useful?
Let's start with the conditions of the problem.
So, in a huge hall, several hundred people write code locally and send it to the server for verification, the result of which determines their position in the final table. Everything is familiar to any contestant here. And in our headquarters - the director's studio - only five or six volunteers determine what the viewers of the broadcast will see right now.
It’s not the algorithms or even the universities that participate in the Olympiad, but people. The finale is their high point. According to the rules of the Olympiad, one and the same person cannot go to the finals more than twice. Therefore, it is important to show people first of all: their emotions, teamwork. To do this, the AXIS V5915 stationary cameras are hanging over the participants.
You can point the camera at one or the other team. We used to have to control cameras manually. This year, we wrote software that knows the coordinates of each team and can “visit” it automatically if the team did something interesting. Robots take our jobs.
But stationary cameras cannot cover everything we need. The mobile group helps: three to four people who are ready at any moment to approach the participants. This kind of shooting looks more natural.
Equipment for mobile groups is also being prepared by volunteers. We use what is already on the market, combine and finish it on our own. Our mobile kit this year looks like this:
In 2015, we received the picture “from the site” from ordinary professional video cameras connected via a wire that we had to pull along. Later switched to wireless. And this year we changed the GoPro cameras to the gyrostabilized version, so the picture even from such a compact installation looks smooth and professional.
To the “live” video we add interviews with teams. Interviews are recorded in advance and mixed into the broadcast according to a schedule, which automatically turns on the video through a homemade plug-in for OBS. The schedule during the broadcast may change.
The video has become a little clearer. But we have a programming competition, which means we need to show the tasks and the code that the participants write. And so that it was interesting.
From the technical side everything is simple. Complexity in the organization: how to decide whom and when to show?
Fortunately, we have analysts. A special team monitors the progress of the participants, finds the most interesting solutions and passes them to the director's studio. Thanks to regular backups, analysts see all the code: already sent for verification, and not yet sent. In addition, they are able to “predict” the most interesting events. For example, if a team’s decision can make it a leader, it’s worth transmitting a signal to those responsible for the video so as not to miss the emotions of the participants when the results appear. A small change in the code allowed the team to correct the error and successfully complete the task? Urgent in the room! Opponents are fighting for victory and the bill goes for seconds? We will show their confrontation in close-up to see what they are doing. All this makes the broadcast more dynamic and interesting.
And also analysts help with analysis of tasks.
Do not forget about commentators. Without them, live broadcast is not so interesting, and it is difficult for viewers to understand what is happening. We have ten commentators in the team: two people each in the Russian, English, Chinese, Portuguese and Arabic versions. They receive real-time information from analysts in order to attract the attention of viewers to interesting events.
Content from a mobile group, analysts, commentators and other sources flows into the director's studio, where we manage the broadcast “on the fly”. It is difficult, but insanely interesting.
This year we will broadcastICPC on Yandex.Air, YouTube and Twitch, VKontakte and some other sites. What would you like to see in the broadcast? Who do you think would be the ideal commentator for a programming competition?
By the way, we recall that any viewer can informally participate in the Olympiad. All tasks will be available on the official icpc.global website. Send the solutions to the server for verification, and maybe you will overtake the finalists of ICPC-2019.
It will be interesting, cheer for ours!