Have you ever noticed how when you can’t physically type, you come up with lots of ideas for things that you want to type? This was the case as I was planning part 3 of our history series, as we delve further and further into the background and operations of RaceSpot. I was having an MRI on my back (The 4th in 2 years), and all of a sudden, whilst I was strapped in and unable to move a single muscle, the ideas started flowing.

One interesting comparison I would like to make is the start of RaceSpot TV, and the start of a new 24 Hour ‘News’ service in the UK called GB News. A LOT has been written about the launch of GB News, and how, to quote things politely, it was a barrel of shit. Audio didn’t work, video links didn’t work, and to quote the Ex Chairman of the ‘broadcaster’, they would plan out an entire show, then not be able to do any of it, as things which should be trivial for a TV channel, let alone a news channel simply didn’t work. Add in a studio which made Anonymous’ look bright and inviting, audio levels mixed by one of my cats in heat, and controversy about how ‘anti-woke’ a news channel could be, and you had a hot mess of garbage. In fact, I joked with a lecturer in Media that had they had presented such a production at our university, they would likely fail. 

When it comes to the start of RaceSpot, I knew slightly how new operations worked. As mentioned previously, I wasn’t there at the very start of Glacier TV, so missed out all of testing, preparation, ATVO coding etc etc. I had however been involved in a couple of re-launches at my student radio station Scratch Radio. I had worked on adding a couple of thousands of tracks to our system called Myriad, including tracks 9998 and 9999 which anyone who’s worked at a radio station in the UK will know are reserved only for when the Orbit light turns on. I also had the privilege of hosting the breakfast show twice for the School of Media’s final year radio project, under the superb tutelage of Dr Diane Kemp. Although I wasn’t a media student (As mentioned before, I focus on Town Planning), I learned so much through these processes, which translate incredibly over to Esports and Sim Racing. I would argue that without Scratch Radio / Dr Kemp, I wouldn’t have been able to help guide RaceSpot through pre-launch, launch and the teething troubles which come with it.

Before We Began, But Only Just…

RaceSpot kinda existed before we started properly. We were running a series called 16th Street Racing League, which was an IndyCar series featuring some hardcore IndyCar sim racers of old, alongside the odd driver from the then IZOD IndyCar Series (Which then became the Verizon IndyCar Series a month after we started… No more random med tier clothes sponsorship, but most of the drivers didn’t even have new series patches come the start of the season, that’s how late the new title sponsor announcement was!). This was broadcast on iRacing Brazil, in part as the timezones wouldn’t work for Glacier TV, and also because at this point Glacier TV was slowly not being a thing anymore, after the 9/11 drama and World Championship Series points mentioned in the previous section of discussion. Brazil is 2 hours behind the East Coast of the US, so even though Yours Truly was commentating at 2AM in the morning (Before being at work at 8:30, luckily, I lived a 13 minute walk from the office), the rest of production and co-commentator Aaron Likens were based in a time zone more conducive to allowing the series to take place. The first part of the series was done exclusively on iRacing Brazil as Rafael, Hugo and I were working to get things ready for RaceSpot. 

I do remember that things were stagnating at one point, with lots of ideas milling around and not much actually being done. We finally decided that if we wanted to get the project properly off the ground before the start of our coverage of the iRacing World Championship Grand Prix Series which was on the 15th March 2014, we needed to actually start putting some content out there. As in previous years, PSRTV had rights to the first two rounds of the season, but our start date of coverage was moved forward 2 weeks as we were asked to cover the 2nd round of the championship for operational clashes. With this in mind, we decided to use the last few rounds of the 16th Street Racing League to ‘Launch’ RaceSpot, and get some broadcasts under our belts, before the big money earners came in with the iRacing WCS.

Insert Sidebar Here

At this point, I should proberbly quantify what ‘Big money earners’ was and is today. Back in the days of Glacier TV, we were paid a total of $1500 for covering the 14 rounds of the championship which we had pitched to cover, which works out at… $107 plus a couple of penny sweets. Remembering that this had to cover overheads, producer fees and commentary fees, this worked out to about $15 a broadcast for commentators, for a 3 hour broadcast window. Yes, you could earn more at Wendy’s as a burger flipper than you could for commentating this, and this was the ‘higher level’ of pricing that Glacier charged. When RaceSpot TV took over the rights, I think we went to the dizzy heights of $2000 for that first season, which is $133.33˙. Net average increase of $25 a broadcast, and about the same payout to the crew. These days, commentators working on the largest Sim Racing events directly with iRacing, BMW, Porsche etc. earn a much healthier paycheck, and the majority of sim racing broadcasters charge somewhere in the region of $150 for a 3 hour broadcast window for what we would call mid-tier clients. In other words, broadcasting the World Championship Series back then certainly was not a big pay-day, and in fact, we priced ourselves deliberately lower than what we believed PSRTV would charge to take the rights and use it to promote ourselves (PSRTV never advertised their prices, but I estimate it was somewhere between $400 and $500 a race).

In order to pay anyone for the work they did, there were some differences in our coverage compared to PSRTV. They would have a number of ‘spotters’ who would monitor action on track and feed it both to the director and commentators. Not a million miles from what would happen at top level motorsport coverage broadcasts (Lower end, you get a laptop with timing, and your eyes. You would have to work out if there was an incident by counting the drivers back past the line, and sometimes you couldn’t even see overtakes). RaceSpot at the start had no spotters, and because of this, the commentators would use iRacing to act as their own spotters, relaying information back to the producer as to incidents or action on track. The producer (Often Rafael at the start) would then take that information and change cameras appropriately… Except, with the greatest respect in the world to Raf, he suffered from a similar issue to Jarno from Glacier TV in that his English wasn’t great. Because of this, we were often shouted at to either mention car numbers, or put the car numbers in the chat of TeamSpeak, as otherwise he couldn’t understand us. Whilst Hugo’s written and verbal English is much better than Raf’s, there was a more complicated issue. Hugo was a fucking driver in the series! 

At the time RaceSpot started, it made more financial sense for Hugo to carry on racing, because of the fact that the money we were earning from the series was to be honest, break even at best. Hugo had won the 2011 season, finished 2nd in 2012 and 3rd in 2013.  He had only missed one race since he started participating in the series in 2011, and that was the 2013 US GP, which like it’s F1 counterpart in 2005, was not competed in by a number of drivers due to the fact they were complaining about tyre models. Even though Hugo only finished 6th in the 2014 season, due to an upsurge in Team Redline whilst his team 3id Gaming imploded, with the majority of drivers forming Coanda Simsport (Via a one race name of Foracer Racing, in almost all white cars), it was still more money (Or money in kind, as I think P6 was on iRacing credits instead of cash), than working as a producer. In fact, it would take until 2016, when he had his worst showing of his WCS career in the new McLaren did he call it quits, dedicating his life to the Yellow and Black.

It’s important to know this information to understand how the first months at RaceSpot worked. It’s also important to note that Rafael was still involved with iRacing Brazil (Now iRB Esports, which he still is), and with the cost of living and cost of services, $100 meant a lot more to both Rafael and Hugo than it did to me (This was just after Brits were singing ‘We get two dollars, to the pound’ when visiting the States, where even on a post university graduate position, I could enjoy the 500 comfortably), and for them RaceSpot was all or nothing. A lot in terms of reputation, and the ability to make Esports broadcasting a ‘job’ relied on the ability to get RaceSpot working properly in the early months, and this of course included the iRacing World Championship Grand Prix Series.

16th Street Racing League: Broadcast #1

Now the sidebar is out of the way, we can start thinking back to the first broadcast. Round 14 of the 16th Street Racing League at Iowa. We had prepared some graphics, which for some reason were different from road to oval (But, new, and a good development from what was being used at iRacing Brazil at the time, which in term was a major improvement on the Sans Serif fonted overlays being used at Glacier TV). Things didn’t work perfectly, and as I got into producing later in the year, it became more obvious that time needed to be spent on functionality rather than just looking good. Why? Let me explain.

With IRTVO, everything was done in code, as I said before. The buttons would basically load three points, in a form of a group function:

  • A background Image
  • A series of ‘hooks’, which would then parse appropriate data and do specific actions, and;
  • The actual data on the screen itself.

The hooks aspect of this was the most important. In short, it would turn something on, or off. In IRTVO, you would have the option to turn something on, turn it, off, or most importantly, close specific other sets of data. In simple terms, this would mean that if you were going from showing a single driver image to a comparison between two drivers, if coded correctly, it would first turn off the single driver information, and then load the comparison data. Even though the image on the left hand side of the screen would remain the same, it was a different function. The same would apply when you were showing additional lower third data. If you changed from team name to last lap, it would close off the team name, then load the last lap. It was instantiations to the eye, but there was a lot going on in the background.

However, if you were lazy and didn’t code things properly, you would end up with the first function NOT being closed when the second one loaded. This would do one of a couple of things:

  • Overlay two sets of data on top of each other, which depending on images, sizes etc could mean that you saw a mismatch of images, text, or so on.
  • When turning off the main function, would still leave the sub-function showing, as it had not received a specific request to turn that off. This would mean you would have part of an overlay showing on the screen, without the rest of it, which would look rather shit, and annoying to the viewer.
  • In worst case, it would get stuck in an on-off loop, meaning you would have to restart IRTVO. This would mean that all the data for laptimes, comparisons, stint lengths etc would be lost, as this was stored in the software on launch, and could not count back from the API based on the start of the session.

There was an additional issue that every time you wanted to add in a new function, you had to make sure that the hooks would correctly work at the major and middle level. FOR EVERYTHING. This was often done for the function orders that were normally used, but not used for some of the more quirkier ones. A good example would be going from a lap by lap comparison between two drivers to having to quickly switch to a pit lane graphic, which happens rarely, but if not coded would cause a hot mess of graphics, and ruin a large part of the dynamic data production. 

Delving Into Issues

So. Why on earth was this so important? At this stage in the broadcasting world, we were all streaming at 720p, with those doing 1080p upscaling and lying about what they were actually capturing. We have this now with people claiming to stream in 4K (And occasionally 1440p), where all it is is an upscaled canvas, which looks WORSE than actually streaming at the lower resolution as there is more speed tears and random track pixelations. The only real difference between broadcasters was commentary, animation / pre-roll graphics, and race graphics. The latter is something I obsess over, and will discuss a lot more about in the future. In this case however, a large part of our visual identity was determined by the success of the overlay, and how much time is placed into testing and having care in coding. This improved so much over the years, but at the start was akin to the first iPhone Demo, where you had to press things in a certain way only, and couldn’t deviate from a script in terms of actions. Steve Jobs would have shook his head in shame at us if he was still alive (and somehow interested in Sim Racing broadcasts).

Tying this again into the broadcast (And after 2440 words, we may almost start talking about it properly), and the IRTVO care and attention was also shown in early aspects of how we operated. Fast and loose, go out there and get the job       done. The issue is that back then, the rest of the software and tools we needed didn’t work with the fast and loose approach. Our Live Timing had to be turned on and run in a specific way to work at all, and getting it working at all in the first place was a caffine / vodka expedition into the minutia of JSON and PHP coding. By this time, we were using YouTube over LiveStream, Twitch (Which until the week before our launch was JustinTB), and whatever other software would let us stream without a 4 day lag, and no fixed bitrate. This was the early days of YouTube streaming, and there was always a fun game. It was called ‘How long after I click the test stream button will it go to Start Streaming, if ever?’. So often, it would just get stuck, and you would have to basically clone the broadcast, chuck in a new stream key, and start again. Sometimes, you couldn’t see the Start streaming button, but someone else logged in with their account (On a managed account) could, so on and so forth. It would create a ton of headaches, amplified by the fact that there was a time limit between the test and the ability to start the stream.

What this meant that you had to have your shit together, and you HAD to make sure that you had everything working, ready to go in advance, and hit the button with exactly 5 minutes before you were due to start. This was in the days before countdowns became a thing on most Sim Racing broadcasts, so the first thing people would see was 5 – 15 seconds of black screen, then the broadcaster ident. Simply put, on that first broadcast on RaceSpot TV, we didn’t have our shit together, and because of that, RaceSpot’s first broadcast started 10 laps into the race. Pathetic.

What happened that day? Honestly? A lack of organization, and the lack of actually being prepared as you should be for a first broadcast of a new broadcaster. RaceSpot was as underprepared and nonchalant as GB News. We fucked up at the first hurdle, and because of that, there was so many things that continued to go wrong. It’s what is known in the industry as the snowball effect, also the ‘For fuck sakes, can anything else goto shit right now?’ type of broadcast. These are the broadcasts where frankly, you are having conversations behind the scenes as to if it is better to just turn the broadcast off, do a full reset and try again, or worse still, just cancel the whole damn thing. I’m proud to say that in 8+ years, we have cancelled less than half a dozen broadcasts whilst on the go, and at least half of these was at the client’s request, rather than by self inflicted stupidity.

Going Further Into Actual Issues

We start (Sorry Raf), with production not being ready on time. As much as I love Raf, on that day, I wanted to buy him a million alarm clocks, so he wouldn’t oversleep from his siesta ever again. Whilst muscle memory means that most of our producers these days could get a broadcast going at 10 minutes notice (And there have been times that we had to, such as the 2020 12 Hours of Sebring when I had a PC explode on me just before I was due to go live), it’s not a good idea to do so, as you are rushed, and even working through a checklist, things don’t get done properly. You may not have all the paints correctly installed. You may have to update ATVO. Windows may be acting up (Or.. Being Windows), and there’s a million other things that can crop up. You also can’t sound check properly, get production feeds checked, do your UL/DL speed tests, or anything else. Add in waking up and being groggy, you are walking into a disaster zone.

So, Raf being late waking up meant that we missed our start time. We were not ready, and qualifying had started. Then YouTube wasn’t working. The magical start streaming button didn’t work for him, or me when I tried. So we had to make a new YouTube stream, let the people know, and go through the process again. The stream key was invalid, so we had to generate a new one. Finally we got the magical button, and the first words you ever heard on RaceSpot was:

“Well, good evening ladies and gentlemen, and welcome to the 14th Round of the 16th Street Racing League here on RaceSpot TV, we apologize for the difficulties in getting going, but we are racing”

The first 25 words of a new broadcaster, and we are already apologizing for the fact that we couldn’t get things done correctly. No intro video, nothing but a holding image, then an unchecked microphone, random noise, and somehow we have words coming out, and an image on screen. This is the broadcast, if you want to go and laugh at our patheticness:

Next up, after we were online, we had to go OFFLINE for a bit, as the video quality started to resemble a GIF being played frame by frame in a PowerPoint presentation. That, simply comes down to a lack of testing one’s shit in advance, and to call a rookie mistake (Hi Max!) is being kind. It’s something that if it happened today would lead to us providing a refund, and taking a producer off of active broadcasts until we could guarantee that it wouldn’t happen again. 

Let’s just stop for a minute, and think about that. Within the space of 30 minutes we:

  • Haven’t tested our production machines, to make sure that everything is working.
  • Failed to do a sound check for the commentators.
  • Not been able to start a broadcast on time, or at least before the fucking race starts.
  • Had to apologise in the first breath of welcoming people to a new broadcaster.
  • Had gone offline to fix issues within 10 minutes of being live.

What the sweet mother of hell had I gotten myself into. Was this really going to be the next broadcaster of the iRacing World Championship Series? Had I put my reputation on the line for this? Is this fucking real?!?! Needless to say, things got rather techy after this, and a big sit down was required to make sure there was not a repeat, especially for our World Championship Broadcasts. This led to the first of our policy procedures in terms of preparing for a broadcast and dealing with YouTube ‘Start Streaming’ craziness, one which we do largely still use to this day. We decided to add a test, fun event to our schedule to test some more things, and things, for a while, ran smoothly…

iRacing World Championship GP Series: Here We Go Again

… Until the start of the first of our iRacing World Championship Grand Prix Series. The video is below, and if you’d like to play a game, you could work out everything which was wrong in those first couple of minutes.

To start, you can very clearly see that the broadcast started in a rush. Despite the fact that in 2014 I was still talking at the speed of one of those insurance information voiceover people, this was rushed. This is always a bad sign for everyone. The client (In this case iRacing), the viewers who become prepared for a game of how much this broadcast will fuck and suck, and of course the team internally. How panic situations are dealt with internally really affects the entire broadcast, and is the one thing as a manager and leader of RaceSpot I have had to learn. To quote Melanie Cavill in Episode 7, Season 1 of Snowpiercer ‘Calm hospitality, calm train’. In this case you can translate this as calm management, calm broadcast.

As will be explained in future editions of these 4000+ word rambles, there has been a number of massively high pressured, chaotic, panic station moments at RaceSpot TV. Some of these have been handled well, especially by Hugo, but in other cases, we allow panic to mushroom, and in fact end up becoming part of the toxicity, which comes across on the broadcast. I know back then in 2014, on this race, the first RaceSpot TV World Championship Broadcast, I was a mixture of panicked, and fucking livid with Rafael. Beyond livid… And what happened next, made things even worse.

Technically, I don’t have the first words on RaceSpot TV’s first World Championship broadcast. That goes to Raf, with his mic not muted on stream (One of the first things you do as a director’s checklist if not also commentating), saying “We are Live”. Cue a few seconds, and my first words are to a black screen “Good Afternoon ladies and gentlementen and welcome to the second round of the iRacing.com World Championsip Grand Prix Series, yada yada, qualifying saw a 3id Lockout yada yada”. Then in a moment which gave me a fit of rage, all the cars went white on track. This is because in his infinite wisdom Raf and learned that the paints were not properly loaded, and decided to refresh them. With 7 cars shown on track on the shot. 

This was infuriating for three key reasons:

  1. This was not a series that we used to use Trading Paints for. All World Championship Races (And, until the invention of RaceSpot Media, the iRacing Indy 500), would have paints submitted directly to iRacing, who would check, authorize, number, and send to us. Therefore, there was zero reason why a paint reset was even required, compared to Trading Paints where the paints would load in the background, and you would eventually have to do a CTRL+R.
  2. We had a rule that we didn’t show paints loading on cars. It looked shit, it was amateur, and made no sense at all to the majority of viewers. Those who knew what was going on would know would know that in simple terms, we done gone fuck up. This was one of the easiest things to deal with, as you could chuck on a scenic cam and before you knew it all the paints were loaded (If you were using a 1 PC setup, you would just count to 60, and know that the chances of any paints not being done was at about 3%).
  3. We were fucking rushed, and I was talking about the starting grid. When I’m talking about the grid, do you know what would be useful? Showing the fucking grid! The rationale for not showing the grid for 3 minutes, when we were in warmup, and all flustered is stupid, and doing so would have allowed us to do something useful and ease into the broadcast. You couldn’t make the argument that you had to wait until the cars were gridding to show the grid, as we showed it with 15 odd seconds to go, so this was nothing more than a director just not being prepared, and focused on the task at hand.

The rest of the broadcast, when things settled down… It was fine. Emphasis on the word fine, and not satisfactory. We have this ‘neither satisfied or non satisfied’ option that any UK student will know from their NSS survey, and it’s seen as a negative response. I’d argue here, I was definitely below this 50% watermark, and I know I wasn’t the only one.

After The Race. Dealing With Fallout

If memory serves me right I sent a long apology after the end of the race (I wasn’t allocated a RaceSpot Email right away, despite me being the one doing all the interactions with iRacing. In fact, I think at the time I was still using my old Glacier TV account, which of course no longer exists). It was right for us to do so, as after Glacier (And Joni in particular) getting in to as nice groove for the coverage of the series. We had a good start of broadcast process, a decent enough track map (Though I hated the overlays, they did what was needed). And the coverage… Flowed. This is important as over time, the viewers kind of knows what to expect, and for us internally, it gets us into good habits, including handovers, and timekeeping. Again, our coverage was… Fine, but not what iRacing expected from us after the promised I had made. It was clear that there was a couple of key issues that needed addressing, and in order to do this, we needed to rethink some of what RaceSpot Live Broadcasting was, a month after launching our product.

To begin with, no longer was I the ‘external with the contracts and a voice’. I made it clear that if I were to stick around to the project, I needed to have an element of control. This included consistency and quality of our commentators, as well as being the public facing director, in charge of client, talent, and company relations. This also provided the opportunity to focus on designing our corporate brand, so slowly, we would move away from the hodge-podge of stuff we had in terms of our broadcast assets, website, and social media. Next, it was made clear that there needs to be more planning, more care, and a ton more accountability. 

iRacing Brazil was lucky in some ways that it was largely ignored by the international Sim Racing Community, as it was incredibly region specific. The fact that there was a much lower broadcast fee to recognize the fact that as a whole, Brazilians could never afford the fees of Glacier TV, GSRC, V8s Online and LSRTV meant that there were some things they could get away with in terms of quality and consistency. Of course these broadcasts proportionate to income was about the same as what we would charge a client say from the UK or Germany, but with low fees and even lower payments to talent, iRacing Brazil could come across more as the mega successful but still amateur broadcaster, going up against the big evil international broadcasters. Thing is, RaceSpot was, from Day 1 the big new evil international broadcaster, which from day 1 had the public perception of supposedly being the best of the best. Why else would have rights to the iRacing World Championship GP Series, and why were we aggressively pitching for series that departed Glacier TV to come to us?

So in short. The first month of RaceSpot TV on air was not a cause for celebration. In fact, it was a fucking embarrassment when we look back some 8 years later. If you were an outsider, looking on the first month, you would not likely predict that RaceSpot was a broadcaster that would turn into the powerhouse it is today, and in fact, I would argue that they would predict they would struggle to last 6 months. However, as we will talk about in the next episode, by making some radical changes internally and externally, we somehow managed to ride the wave, restore some of our early reputation, and eventually, become the broadcaster that we want to be, despite still not yet having the perfect broadcast (Though our bar is far far higher than any of our clients).


P.S: As a bonus here are a number of commentators from the Glacier TV / RaceSpot TV crossover days. We look like a Z-List boy bands, about to get ready for entertaining a pub crowd just of the A421 near Buckingham, but the good thing about Sim Racing at the time at least was that the ‘face for radio’ approach worked wonders. 

The First RS Crew