Since you’re here, you probably heard about the 24h livestream (YT mirror) that I did. In short, I was unofficially participating in Marathon24 finals. During the contest, finalists had no access to the internet, so I was able to freely stream my performance without worrying about that someone will freely watch it and use any of my ideas.
I decided to write a short postmortem in order summarize how did it go. If you’re trying to decide if it’s worth watching it, this thing might help you. And if you’ve seen it (or some parts of it) already, this will give you much more insight into all of the problems that I encountered.
The TL;DR version is: I was very distracted throughout the whole stream and overall my tempo was rather sluggish. Despite all of this, I still performed quite well and commented on all of my actions.
What Went Right
1) Same Workflow but with Commentary
My goal was to follow the same flow that I normally do during the 24h contests, with the small addition of commenting everything that is happening. I wanted to show people how I try to tackle the problems. But, that’s easier said that done. All of the constant distractions I had (talking, answering the questions, dealing with really pathetic trolling, fixing things related to stream) were completely throwing me off. It was so tempting to just be silent for the next 2-3 hours, implement all of the basics, and then get back to the commenting again.
Still, I think I have succeeded at doing this. Yes, I was going very slow, I had ton of bugs, I couldn’t concentrate for any longer period of time than few minutes. But in the end, I went through the problem in the same way as I’d do if I had competed under normal circumstances.
When I came up with the idea of livestreaming, I was little bit afraid that I’ll perform poorly. After all, most people would expect me to crush the opposition, even though that’s a little bit overoptimistic. I guess, this would be kind of a letdown if I placed somewhere in the middle of the pack. At the same time, Performing good just wasn’t on my list of priorities. I tried to state clearly that it’s an educational stream and thus I’m not prioritizing good scores.
The less obvious part is that I simply lacked of motivation to do my best. I participated unofficially in 24h contest. In those contests, when we build enough of a lead, we usually try to conserve energy instead of maximizing every last percent of probability that we will win. I know that’s a little bit anti-climactic to see someone consciously not push himself as hard as he can. But well, what can I say. The world doesn’t end with the contest :)
All things being said, I placed 2nd in my problem (3rd and 4th in servers, but 2nd in joined standings). That’s way more that I could have wished for. My guesstimate is that in normal contest I’d have my “final solution” (i.e. the solution I had at the end of livestream) about 7-10 hours into the contest. I was still missing few crucial ideas (mainly adding additional option to avoid opponents and adding a sound clue when new round starts), but at this point I’d probably help my teammates instead of focusing more on my problem.
Choosing a proper equipment was an easy task, since I just checked what experienced livestreamers use. In terms of peripherals I needed a good mic, desktop boom stand, shock mount (typing generates a lot of noise), good webcam and a tripod for it.
Unfortunately, when I finally did the research I didn’t have enough time to order things from outside of Poland. Something that absolutely surprised me was that, I was pretty much unable to buy even two of those mentioned things in the same shop. So, in order to minimize the risk and try to not end up with several copies of the same item, I just wasted a lot of time visiting several brick and mortar shops.
4) Marathon24 Organizing Team
I can’t say even one bad word about the organizing team. I was put in great place. They provided me with all of the hardware I needed. And finally, Millcheck helped me with the stream when nothing really wanted to work. He also made it more entertaining by showing up several times.
But the most important reason is that they did an awesome job with creating problems for the finals. I was very impressed with the design of the problem I was working on. It had the highest ratio of depth to the complexity I ever saw in such contests. There was a room for different tactics. There was a room for microoptimizations. It was easy to start, but it was hard to develop a “complete” solution. The effect of the metagame was just about right. Most of the complexity was hidden within map generation process. It was a perfect match for the stream, since the problem statement was very short so I didn’t have to force the viewers to read through ton of pages.
The other two problems looked also very interesting (one was inspired by Pac-Man and the other one by SimCity). Their problem statements are still accessible in the dropbox directory.
5) Spreading The News (aka Marketing)
I had hard time deciding if this went good or bad. I put some significant effort writing customized messages to various places that could share info about this event. I’m particularly thankful to Topcoder for even letting me write a short guest article about the stream. Unfortunately, even with so many mentions, the FB event looked like a forgotten desert.
Looking from the numbers perspective, the stream averaged around 100 people throughout the first 16 hours. That’s way more than I expected. And it also stayed the most popular programming stream on Twitch during the whole 24h, which is a nice bonus since it helped attract new people. I’d say, that’s pretty darn impressive stats for watching someone coding and agonizing interchangeably.
What Went Bad
1) No Test Stream.
That was critical mistake. Originally I planned to do a “test stream” based on solving some old Marathon Match. I would just take one of the old MMs that I never participated in and I would spend 4-6 hours solving it. Unfortunately I ran out of time to do that.
Much of my slow and chaotic start was the result of not being accustomed to the livestreaming. That was the very first time I did anything like that. And, I don’t even play games with voice chat.
Typing code and talking at the same time is hard. Believe me.
2) Lack of Sleep
Normally I go to sleep around 2-4 AM. I was supposed to be in the competition area around 8:30 AM. In the end, I managed to have only 3 hours of sleep. If you wondered why did I already looked tired when I started the stream, that’s the reason.
3) Too Long
There’s very little happening throughout the last few hours of Marathon24/Deadline24 contests. Originally I assumed that this will be the best moment to answer questions from viewers. Except that most viewers went to sleep already. And it was a good idea. During the last few hours I became a grumpy old coder that constantly complained how tired he is.
To be perfectly honest, I don’t remember what I was doing during the last few hours. I just hope that there’s nothing worthy ending up on the knowyourmeme.
4) Repeated Questions
I can’t count the amount of times I had to answer why am I using C++ or why am I coding in Notepad++. It would be much better to add a FAQ panel.
Much of my preparation went into configuring OBS. Testing what’s the required bitrate in order to make the visualization clear enough. Testing how much CPU is going to be used, etc.
It seemed that everything was fine. Then, I got to competition area where the only thing that changed was that I had two external monitors. For some strange reason OBS started behaving crazy. I was trying to fix it, then I had restart computer and wait for 80 windows updates to finish (yeah, now I know…). Meanwhile, I tried to finish setup on my second laptop in case the things will go really wrong. After fighting for like 30-40 minutes with OBS, Millcheck told to just use XSplit, which worked right away. The only problem was that I have never used it before and had to learn it during the stream (since I was already late, I just started streaming as soon as the monitor scene worked).
Despite all of my ranting, I really enjoyed doing the livestream. I’ve learned a lot during it, and I hope that at least few of you found it helpful. I can’t speak for sure, but I’m definitely not ruling out doing something similar in the future. And, with all of the lessons I had, the next one should be better. Much better. There’s a chance I might do a smaller stream this weekend for the Ludum Dare game jam. As usual, I’ll remind you that following me on the twitter is your best bet, since I’m too lazy to update this blog often enough :)
If you’d like to participate in the next Marathon24 and you don’t want to miss it, it’s best to follow them on FB or Twitter. But it’s another year of waiting. Meanwhile, there’s another very similar contest: Deadline24 and the finals are usually held around April with qualification rounds going on late February. Based on my previous experience, the Deadline24 finals are as good as Marathon24.
Ok, that’s about it. I really need to learn to write in a concise way. See ya.