Welcome to DevChat #14!

Here's what's we've got for today:

  • 🌊 So many streams...
  • 👻 Live streaming vs, uh, dead streaming?

This is an archive of a DevChat newsletter. To get the next one early, and in your inbox, sign up! To read past issues, head to the archives!

🌊 So many streams...

Thumbnail for my "Automate Your Pathnotes" series

Seth -- my brother, studio co-founder, and our one game programmer -- spent this entire weekend streaming a jam game. I spent a substantial fraction of the weekend editing my past streams to upload to YouTube.

We're drowning in streams over here.

This issue is a light one because I spent so much time doing video stuff, and I'm exhausted. The rest of this section is information about where to find all those videos, and the remaining section goes into the lessons learned so far with all this streaming stuff.

We've been streaming to the studio Twitch (twitch.tv/bscotch), and that's still the plan for any future streams. Make sure to subscribe so that you get alerts when we go live. Otherwise you'll have to catch the video on Twitch shortly after it airs, or some indeterminate (and maybe indefinite) time in the future when it gets uploaded to the studio YouTube channel.

Seth's streams should all be available on Twitch for a week or two (he'll probably upload to YouTube eventually), and I've posted edited versions of my two streams to YouTube:

TSDoc & Typedoc: I figured there must be some tools out there for automatically generating Typescript documentation. Turns out, there are! In this stream, I dug into TSDoc (same idea as JSDoc) and TypeDoc (a tool for converting Typescript + TSDoc into, uh, docs). In the process, I also get into the weeds on all kinds of relevant topics. There's a Table of Contents (TOC) in the description with links to timestamps, so you can quickly get to parts that are interesting to you. This was streamed two weeks ago, and I edited about half of it out to be more YouTube-appropriate.

Automate Your Patchnotes (Part 1): Developers are already documenting their changes in version control (hopefully...), so why double the work to make patchnotes for your players? We use an automated system to convert our git logs into multiple sets of patchnotes for different audiences: devs, QA, and players. My plan with this series is to rebuild an open-source version of this tool. This video was Part 1, and it goes into the weeds on Node, Typescript, and the configuration of both. There's a TOC in this one, too. It was also originally a livestream, and I cut out a lot of it for YouTube.

I'd love to hear what you think about these, and if there are any topics you'd want more videos about. Tell me!

👻 Live streaming vs, uh, dead streaming?

If you're going to make video content, you can either stream live or make your video offline. Which is the right choice?

The obvious differences between the two approaches are the existence (or not) of a live viewership, and the ability (or not) to make edits prior to a view.

The live audience aspect of streaming encourages an interactive format, and also requires making room for at least some degree of dynamic content. Maybe you'll go wherever your viewers take you. Or maybe you have a plan, but then a viewer throws you off that plan by teaching you something or getting you off track. You'll likely spend time welcoming newcomers into the chat and catching up with the regulars.

All of that makes for an engaging real-time experience, and it's a great way to build a super-interactive community.

Probably the biggest plus to live streaming is that people will be far more forgiving about quality than for an offline video. Streams are likely to have lower resolution, janky transitions, periods of silence, and verbal noise. But that's what being a person is all about, so the viewers expect it.

Contrast all of that with offline video. With offline you don't have an interactive audience to help you generate content (or to throw you off track). You don't have as much of a personal connection to help people stay engaged and make them more forgiving. You'll have to edit out mistakes, and have at least something of a plan to make sure you can keep your audience engaged with the content alone.

That might sound like I'm saying that streaming is the better choice. Nope, what I'm saying is that it's easier to make a good stream than offline video.

The differences between streamed and offline video come to a head when you want to make a stream permanently available on-demand. Now you have content that was made in the live-audience context being watched by someone in an offline context. The on-demand viewer doesn't get as much of the social value, and so many things that are fine in a live context (silences, errors, inside jokes with the community) suddenly make the on-demand video worse.

I wanted to make my streams available on-demand, but it didn't feel worthwhile to just directly upload them to YouTube. It felt like the on-demand experience would be reduced, so that people who would otherwise want that content wouldn't be as engaged.

(I fully admit that this might be completely incorrect. I just know my own experience of actively avoiding on-demand uploads of past streams.)

And so I ended up editing those streams quite a bit before uploading. Just cutting things out. But a lot of things. I figured that in the on-demand context people would find the videos by searching for something specific. So if they searched for "TSDoc", found my video, and then got lost in content that had nothing to do with that... well, that's not helpful for anyone. I spent so much time editing those streams down that I didn't do any more streaming!

People find streams and on-demand videos in different ways, and expect different experiences. Depending on the domain (e.g. Let's Plays vs. live coding), some content might work better cross-context than others. Content made for entertainment first probably does better cross-context than content made for informing first, since those are surfaced to people in different ways with different goals.

Having done these streams and all that editing, my approach to making future video content will be:

  • For content meant to inform, that I want to be searchable and discoverable indefinitely, I should go right for an on-demand format. This will require more planning but will result in much shorter, on-topic, and less-in-need-of-editing content.
  • For content meant to entertain, or if I just want to hang out with people while doing something, I should go for streaming and then let the stream be ephemeral. It's okay for that stuff to live in the moment. (Again admitting that my aversion to watching streams on-demand might be a personal thing.)

The streams were super fun and I want to do more of them, but they aren't a great way to deliver searchable content. So anything I want to be searchable will have to made offline.

Given that I expect my future streaming content to be ephemeral, I'm not sure what I'll actually do with it. Review other people's code? Dig into open-source projects? Try new technologies?

What do you think about all this? Do you share my preference of not watching "live" content after the fact (unless it's been edited)? What kind of live content would you be interested in? What about on-demand content? Share your thoughts!

Until next time

That wraps DevChat #14!

I've been having a great time hearing from readers. If you haven't said hello, please do!

Share with others by forwarding, or link directly to the archived post.

Have a great week!

❤ Adam