(Original post on ifdogthen)
I am very new to game development livestreaming. Game development streaming itself is relatively new, but it shares many things with both gameplay streaming and recorded game development videos, and I believe that puts developers on Twitch at an advantage, with many lessons already learned. Psydra Games, the development studio I'm a part of, has been streaming the development of our second game for the past few weeks, over which time more lessons have been learned for myself and the rest of the team. I have tried to compile those lessons here, from both the perspective of a long time viewer of development videos/streams and that of a new game development streamer.
Silence is the worst. People generally don't come just to read your code. Even if they did, you'd only be showing a small bit at a time - not enough for anyone to get much use out of it, especially if you don't explain it. You should always be telling your viewers what you're trying to accomplish at any given time. Explain how what you're doing fits into the big picture of your game. If you're pretty deep in some low-level stuff and can't give a high-level explanation, default to stream-of-consciousness speaking. Vocalize your every thought. I've never heard anyone complain about a streamer talking too much. It may take some practice, but turning off that filter between your brain and your mouth can make things much more entertaining for your viewers (though for some of you, it can also get you into trouble), and it also gives them more opportunity to help out if they've dealt with a similar problem.
Also take into consideration that many people listen to streams more than they watch. This especially goes for you weekday streamers - a lot of your viewers may have you on in the background while they work. Maybe they listen for a particular moment to actually look at the video, but they'll spend more time listening. As a less extreme example, if someone needs to walk away from their desk for a moment, they can turn up their speakers and feel like they haven't missed a moment, so long as they can follow along with what you're saying.
Many people who aren't familiar with streaming have a hard time with this one. "Why do they need to see my face?", they ask. For the same reason that video chatting exists. For the same reason that you generally look at someone's face when you're talking to them. That's how human interaction works. Even if you can't see your viewers, they came to observe and interact with you. It helps a lot to put a face to the voice, not to mention your game. They'll also be able to tell when you're reading the chat, and see your facial reactions to what they're saying - and as you may know, body language plays a huge part in communication.
They'll also be able to tell if you're there at all, as anyone who has entered a stream with no camera has had to wonder at some point. Maybe you have to sit back and think for a moment. Maybe you have to watch an animation play out. Without a camera on you, viewers have little to no sense of your presence during these times. A camera means there is always something happening on your stream, even if it's only you staring at your screen (and ideally TALKING). This goes for any friends you have on your stream chatting on Skype or another VOIP service - have them video chat and add it to the stream. As a general rule, disembodied voices are bad, or at least not ideal.
Cross(-discipline) the Streams!
If you're working with a team, try to have at least two people in a stream at once - ideally working on different aspects of the game. The way Psydra has done this is to have one person "host" the stream (that is, be the person running the streaming software), and have other members of the team in a Skype call. These other team members can use their webcams, and one of them can also share their screen. The host now has the ability to arrange two screens and two webcam spots (their own, and the person currently speaking on Skype).
There are several benefits to this. First, it takes the pressure off of having a single person do all of the talking (see point #1). If you have to get up from your computer for a moment (a necessity for longer streams), someone else can talk about what they're doing, and if they're also screen-sharing, you can highlight their screen instead of your own idle screen. It also more easily generates conversation. If you're just starting out, or really at the beginning of any stream, with viewers trickling in and not saying much, it can feel like you're just talking to yourself - and sometimes you just might be. Don't let that stop you from acting as if you have hundreds or thousands of viewers. If you think that you don't have to talk because there are no viewers yet, anyone who comes across your stream will be more likely to leave if they're not entertained. You know that saying "dance like no one's watching"? Well, do the opposite for your streams. Talk like everyone is listening.
Then, the reason that I specified being cross-discipline: your viewers may be more interested in art than programming, or vice versa. If you have both going at once, you're that much more likely to get (and keep) a viewer. Most broadcasting software has the option to have multiple scenes that you can switch between. Use this feature. While you're working hard on the code and explaining how you're going about adding a feature, make your own screen big, but have a small screen for art. When you're stuck on something, switch to a scene with a large art screen and your own screen small in a corner somewhere. Unless one of you has left their computer, you should keep two screens going at once, making sure one is the "highlighted" screen, and switch between them. You may not be able to make everyone happy, but you can probably make most people happy with an approach like this.
It may be tempting to play some music on your stream, or maybe you just want to listen to some music, and so it gets added to the stream by default. I have a few problems with this. First of all, music seems to often be used as filler audio - if you're not talking much, you load up some music, and think that at least something is audibly happening in your stream. It's the cheap way around my "silence is the worst" commandment. In fact, I'll have to amend that now and say that silence is the second-worst. Loud music is the absolute worst. I leave a stream immediately if loud music is playing (though I'm aware this doesn't nearly apply to everyone). It also makes for trouble when you want to take a stream or a clip from a stream to put into a VOD (Video On Demand) on Twitch or YouTube. People often play music to which they have no rights, and therefore can't legally release as part of a video.
As a last point on this, music is rather personal, and no two people have the exact same tastes. I can't even tell you how many complaints I've seen about mobile games not allowing the player to have their own music on in the background. What if one of your viewers wants to listen to their own music while watching you? They would have to mute your stream, and thus not be able to hear a word you say, which can very quickly get to the point of being impractical to tune in to your stream, and then you've lost a viewer. If you are playing music, it should be low enough that someone can turn down the volume to the point where they hear your voice but not the music.
This may seem obvious, but people want to see the actual game you're working on. It's easy to spend a lot of time working in code, never compiling and running it. It's hard to give a real time range here, but try to show off some gameplay every now and then. Though you may have a dedicated group of viewers with you for a long time, others are coming in and out constantly. This means that some percentage of your viewers are new, and haven't seen much or any of your game. You don't have to get a new feature in to show off what you have of your game so far; take a break for a few minutes to play some of your game, and share it with your viewers. It can give you some inspiration when you're doing something less exciting, and give your viewers some context for the code/art/design/etc. that they're seeing.
Don't just show the entirety of your screen. Cut out anything inconsequential to your viewer. Chances are, they don't need to see the title bar of the window you have open, nor your taskbar if you're in Windows. Crop your code window. Code can be hard to read when you're sharing your 1920x1080 screen with 10 point text, especially if your viewer hasn't full-screened your video. Never make a viewer full-screen your stream to see what's going on. Create a few different presets in your streaming software (I highly recommend XSplit) to highlight different sections of your screen for different tasks.
Read chat as much as possible. I know, it can get distracting. Embrace that. Interaction is a big part of the experience, and questions mean interest in you and your game - something you should welcome, not ignore because it's too distracting. You'll often get questions about your game, your experience, and what you're working on. Be sure you're answering these questions, especially when it comes to your game. If you're programming, you'll also get questions and comments about your code. Make sure you're responding to these as well, as many viewers are new developers who come for knowledge and inspiration. Others are more experienced, but may still come for the same reasons.
Which brings me to a sub-point of this one: your viewers are your peers. Don't treat streaming like you imparting your wisdom on those without it. You're sharing knowledge; not delivering it. You don't know who is watching or their experience. Always take the opportunity to learn something from your viewers.
Be a Person!
Take a really important lesson from YouTube: viewers may show up for your game, but it will not be why they stay. More than anything, dedicated viewers are interested in you, and your game is secondary. That's why talking is so important. It's why answering questions is so important. When it comes to selling your game, make the game the focus. When it comes to developing your game, you are the focus. Your viewers didn't come to see a game being developed; they came to see a person developing a game.
On that note, don't treat your stream like an ad for your game. You are not your game, and your company (if applicable) is not your game. It's great if you get exposure and interest for your game this way, but when it comes to streaming, it is all about the people on the stream. Don't fill dialogue with your viewers with PR speak, and don't try to cover up buggy or untested parts of your game. Game development is crazy and messy and broken, and that is part of its beauty.
Keep a FAQ. You will get asked the same questions a lot. What game are you making? What software are you using? What are your PC specs? Having these in text on your page makes things easier for everyone. You may not be able to tell which questions should go into your FAQ until you've answered it 50 times, but you can at least start with information about your game.
Make a frame. If you're doing everything I mentioned, you'll have multiple windows next to or overlapping one another. Making a quick frame image can make all the difference in looking more professional.
Undoubtedly, the more time Psydra spends streaming and watching other developers, the more lessons will be learned. And hopefully other developers will share their lessons through comments, emails, or their own blog posts.