General

Streaming Coppice Development

Software development can seem like a rather opaque practice at times. People tap on keyboards and software comes out at the end. Most people only see the final result, not the many decisions that led to it. You also often don't get much communication with the people behind those decisions, beyond the occasional blog post, tweet, or support email.

I've been thinking of ways to help change that with Coppice. Last week you saw one aspect, with the introduction of the Dev Diary to chronicle what I have managed to work on the previous month. Another aspect is what I want to talk about today: the Coppice Dev Stream.

Developing Live

When most people think of live streaming services like Twitch they think of people streaming playing games or chatting with people. However, there's a small but ever-growing community of people developing software too. From games to websites to server side code, developers are sharing their process with people all over the world.

I've been enjoying quite a few of these streams. In particular I've enjoyed both Pirate Software (who is building a game) and DoigSwift (who build their entire streaming environment in Unity). These streams have inspired me to experiment with building Coppice live.

There are multiple benefits for me in this. For one, having a regular streaming schedule helps lock my focus down purely on Coppice. I've found that I'm far more productive while streaming than I would have otherwise been because I'm very present in those 2-3 hours of the stream.

I also have the benefit of people in chat offering suggestions when I'm stuck on a problem. I would have got to a solution eventually, but I've had several cases where chat has helped speed me up by pointing out the more obvious answer.

Streaming can also help work as a "low effort" marketing tool. Marketing is one of the hardest things for an indie developer to do, and it usually takes away from time that could be spent improving the app. Streaming allows me to make the development part of the marketing. It's too early to say how real this benefit will be, but it doesn't cost me anything to do.

Finally, streaming offers me a way to give more back to the community. Others can watch and learn how a Mac app is built. They can bring questions along for me to try and answer. Or they can just see out in the open that everyone makes silly mistakes or writes messy code from time to time.

Building the Stream

I want to go a little bit into how I've built up the stream. The first key part is the video. This is handled via OBS (the Open Broadcaster Software), which lets me build up various scenes. Most of the time I'm on a scene that captures my iMac's screen and adds an overlay and my little robot avatar over the top.

Screenshot of OBS. The top left is a preview of the screen. On the right is a Twitch chat. On the bottom are areas for Scenes, Sources, Audio, and Controls

The little robot avatar is my answer to the fact I don't want to have a camera on me for several hours. It uses an app called veadotube mini, which lets me set up a series of PNGs that will change based on my audio input.

Speaking of audio, that is the next key component. For hardware I'm just using my regular gaming headset. Now I did buy this headset because it's meant to have a better than average mic, but I haven't gone for some sort of fancy set up. With a few audio tweaks in OBS it's sounding pretty good.

The background music is a bit more involved. First is finding the music, as you need to get royalty free and DMCA friendly music, but thankfully I've managed to put together a playlist. Next is getting the audio into OBS. This is a bit Rube Goldberg-esque, but essentially I use SWB Audio App to create a virtual output for OBS to read. It also creates a virtual input for me to pipe the audio from the Music app to, which I do using SoundSource. A bit awkward to set up, but it works really well.

Finally, I have my Stream Deck. This is probably the biggest amount of money I've spent on this set up but, to be honest, the stream was just the justification to finally buy something I've wanted for a while. I've configured various actions to let me switch my OBS streams, switch my avatar between states, post messages to the Twitch chat, and even post my "going live" tweets to both @coppiceapp and @pilky.

Screenshot of streamdeck app. On the left are buttons for controlling OBS, in the middle are buttons for twitter and twitch, and on the right are buttons for controlling avatar expressions

Watching the Stream

If you want to follow along with Coppice's development, ask questions and provide live feedback as I design and code, learn more about software development, or just chat with me and others watching, then you can follow along live at twitch.tv/pilkycrc.

Currently I'm streaming twice a week. Every Monday I stream from 2pm-5pm UK time (9am-12pm EST). And each week I alternate between Friday from 2pm-5pm and Saturday 2pm-4pm, to fit around other work commitments. If you follow the pilkycrc account on twitch, you can be notified whenever I start streaming.

If you can't catch the streams live then you can watch the videos on-demand. The videos go up on Twitch immediately after the stream ends and stay up for 2 weeks. I've also started a YouTube channel for Coppice where I'll be uploading each stream a few days later.

A grid of 6 youtube thumbnails for Coppice Dev Streams

I hope you'll join me as grow both the stream and Coppice itself. As always, if you want to stay up to date with Coppice then also be sure to follow @mcubedsw on Mastodon and subscribe to The Coppice Blog