Let’s Build a Symbolic Analyser And Automatically Find Bugs from PyCon Australia 2019, in Sydney.
Building, designing, teaching and training simulation environments for Machine Learning from PyCon Australia 2019, in Sydney.
Science-fictional User Interfaces from the O’Reilly Strata Data Conference 2019, in London.
Recently, I’ve been live-streaming development sessions of Night in the Woods. I’m really enjoying it, and I thought I’d write up some notes on how I’ve done it, and give some tips I’ve picked up on how to get the most out of it.
Why Should You Code In Public?
There’s a few reasons why I’ve been streaming my code. The field that I work in, independent game development, can be a pretty personality-oriented area. Because of this, it’s often important to develop the 😎 personal brand 😎. Videos are great at this, because it’s an opportunity to have your face and voice attached to the cool things you’re working on.
Streaming your code is also an excellent way to stay very, very focused on a single task. If you’re coding as part of a performance – and live streaming is very much a performance – you’re a lot less likely to get distracted and look at the internet for four hours.
Finally, having an audience of people looking at your code means you can do something I like to think of as multicore pair programming: you often get great feedback and advice from people watching you code. I’ve solved a number of bugs thanks to input from people who are watching me work.
Where Should You Stream?
There’s a number of different options for streaming sites. The best-known sites for the kind of streaming that I do are:
- Twitch: Very games focused, and a very large population. (I do my streams here.)
- Mixer: Microsoft’s streaming site. Also games focused, but a smaller population; designed for very low latency.
- YouTube Live: General video focused, and seems to be more designed for ‘event’-style broadcasts.
I use Twitch, largely because I work in games, so I piggy-back on the existing topic interest. It’s also very well supported by the various streaming tools and services, and brand recognition is high – if someone describes themselves as a streamer, it’s likely that they stream on Twitch.
How Do You Stream?
You don’t need a huge amount of software to stream; at minimum, you just need something that can upload a stream to your platform. The software that I use is OBS, which is a very nice (and very free) package that:
- Captures your display and webcam
- Composes it into a scene
- Compresses and uploads the stream to your platform.
As far as gear goes, you also don’t need much. It’s very tempting to assume that you need lots of expensive equipment in order to be professional, but you really don’t – at minimum, all you need is your computer, and an internet connection.
If you have a webcam, that’s great! If you have a good microphone, that’s also great! But you don’t need it, and I want to be clear that you should pointedly ignore anyone trying to convince you that you do.
When I stream from my office, I happen to use a decent headset mic, so that I don’t have to think about it as much, plus a USB audio interface that lets me connect it to my computer. When I’m feeling ~fancy~, I connect a camera via an HDMI-USB interface, so that I can show my phone. That’s really it!
Because the content that I stream doesn’t have its own soundtrack, I play music while I work. This is for two reason: it shows off my frankly exquisite taste, and also means that there’s no dead air when I’m not speaking.
However, when you’re doing broadcast work, you can’t just stream your music library – you don’t have the license for it, your videos will get muted, and you run the risk of your account being banned.
Instead, stream music that is licensed for broadcast. I happen to play music that I’ve received direct permission from the composer to play (such as Alec Holowka’s superb soundtrack to Night in the Woods), or Pretzel, a streaming service that plays rather good licensed-for-broadcast music.
Where To Learn More
This post doesn’t exist without Suz Hinton’s write-up of her live coding setup. It’s got specific advice on setup, performance, and management of live coding, and was instrumental in getting me started. Go read it!
I hope this has gotten you interested in this, and if you start streaming yourself, I’d be delighted if you let me know!
Game engines and machine learning from the O’Reilly Artificial Intelligence Conference 2019, in New York City.
On-device Neural Style Transfer from the Reinforce AI Conference, in Budapest.
Entity Component Systems (ECS) and You: They’re Not Just For Game Developers from the O’Reilly Software Architecture Conference 2019, in New York City. We’re scheduled to give an updated version of this talk at the Software Architecture Conference 2020, also in New York City.
⚠️ The slides from the slightly newer version of this talk (Software Architecture Conference 2020 in New York City) are now available!
Below are some of our favourite links relating to ECS. We hope you find them useful!
- Catherine West’s RustConf closing keynote on Rust for Game development
- Entity Systems are the future of MMOG development by Adam Martin
- ECS and DoD slides by Aras Pranckevičius (Unity)
- Data Oriented Design and C++ CPPCon talk by Mike Acton
- Machine Architecture: Things Your Programming Language Never Told You talk by Herb Sutter
- What Every Programmer Should Know About Memory paper by Urlich Drepper
- The amazing talk on Blizzard’s implementation of ECS in their popular game, Overwatch, from GDC 2017
- ECS Back and Forth Part 1, Part 2 (plus Part 2 insights), Part 3, Part 4 (plus Part 4 insights), Part 5, Part 6, Part 7, and the slides from an ECS talk at the Italian C++ conference 2019
Making Tools for Night in the Woods from the Unite Melbourne 2018.
Small Towns, Small Screens: Porting Night in the Woods to iOS from the GCAP 2017, in Melbourne.
Learning Swift with Playgrounds from the OSCON 2018, in Portland.