Artigo original: Lessons from my first year of live coding on Twitch

Escrito por: Suz Hinton

Resolvi tentar fazer streaming (transmissão ao vivo) pela primeira vez em julho passado. Em vez de jogos, como a maioria dos streamers na Twitch faz, eu queria transmitir o trabalho com código aberto que faço no meu tempo livre. Eu trabalho um pouco em bibliotecas de hardware do NodeJS (a maioria delas feita por mim). Como que eu já estava em um nicho na Twitch, por que não estar em um nicho ainda menor, como hardware com JavaScript? 😉 Então, fiz meu próprio canal e tenho transmitido regularmente desde então.

Claro que não fui a primeira a fazer isso. Handmade Hero foi um dos primeiros programadores que eu assisti programando on-line, seguido logo depois por Vlambeer, que desenvolveu Nuclear Throne ao vivo na Twitch. Em especial, eu era fascinada por Vlambeer.

O que me fez cruzar a barreira de desejar fazer e passar a fazer de fato tem a ver com Nolan Lawson, um amigo meu. Assisti a um streaming dele mostrando um final de semana de seu trabalho com código aberto e achei aquilo incrível. Ele explicava tudo o que estava fazendo enquanto programava. Tudo. Respondia a problemas no GitHub, fazia a triagem dos bugs, depurava o código das branches, absolutamente tudo o que você pode imaginar. Eu achei fascinante, pois Nolan mantém bibliotecas de código aberto que recebem muita atividade e são muito usadas. Sua vida trabalhando no código aberto é muito diferente da minha.

Você consegue até ver um comentário que eu deixei no vídeo dele:

Eu tentei por conta própria uma semana depois ou algo assim depois de configurar meu canal na Twitch e de me encontrar no OBS Studio. Acho que trabalhei com o Avrgirl-Arduino, no qual eu ainda trabalho com frequência quando faço meus streamings. Foi um primeiro streaming bem complicado. Eu estava muito nervosa. Fiquei até altas horas ensaiando tudo o que eu faria na noite anterior.

O pequeno número de espectadores que recebi naquele sábado foi realmente encorajador. Então, eu continuei fazendo. Hoje em dia, tenho mais de mil seguidores e um lindo subconjunto deles são visitantes regulares que eu chamo de "a família noopkat".

Nos divertimos muito – e eu gosto de chamar as partes de programação ao vivo de "programação com pares on-line em massa para multijogadores". Fico verdadeiramente tocada pela bondade e sagacidade de todos que se juntam a mim a cada fim de semana. Um dos momentos mais engraçados que tive foi quando um membro da família apontou que minha placa Arduino não estava funcionando com meu software porque o microchip não estava na placa.

Diversas vezes, eu costumava encerrar um streaming e, pouco depois, descobria que na minha caixa de entrada do e-mail que alguém havia feito um pull request para algum trabalho que eu havia mencionado e não tinha o tempo para iniciá-lo. Eu posso dizer honestamente que meu trabalho em código aberto mudou para melhor, graças à generosidade e encorajamento da minha comunidade na Twitch.

Tenho muito mais a dizer sobre os benefícios que o streaming na Twitch me trouxe, mas isso é para outro artigo, provavelmente. Em vez disso, quero compartilhar as lições que aprendi com qualquer outra pessoa que gostaria de tentar programar ao vivo dessa maneira para si mesma. Recentemente, fui questionada por alguns desenvolvedores sobre como eles podem começar. Então, estou publicando o mesmo conselho que dei a eles!

Para começar, deixo aqui um link para um guia chamado "Streaming and Finding Success on Twitch" (algo como "fazendo streaming e tendo sucesso na Twitch", texto em inglês), que me ajudou demais. O foco é na Twitch e nos streamings de jogos especificamente, mas ainda há seções relevantes e dicas preciosas ali. Recomendo a leitura antes de considerar outros detalhes sobre como começar seu canal (como o equipamento ou a escolha do software).

Já os meus conselhos, você pode ver a seguir. São dicas que eu compartilho agora e que vêm dos meus próprios erros e da sabedoria infinita de streamers conhecidos meus (que sabem muito bem que estou falando deles).

Software

Há muito software de streaming por aí que você pode usar. Eu uso o Open Broadcaster Software (OBS). Ele está disponível para a maioria das plataformas. Eu descobri que, para mim, ele era bastante intuitivo, que eu conseguiria configurá-lo e colocá-lo a funcionar rapidamente. Sei, porém, que outras pessoas podem passar bastante tempo até aprender como ele funciona. Vai depender de uma pessoa para outra! Aqui está uma tela que mostra como minha configuração de cena do desktop via OBS é ainda hoje:

0_s4wyeYuaiThV52q5

Essencialmente, você alterna entre 'cenas' enquanto faz seu streaming. Uma cena é uma coleção de 'fontes', em camadas e compostas entre elas. uma fonte pode consistir em coisas como uma câmera, microfone, seu desktop, uma página da web, texto ao vivo, imagens, entre várias outras. O OBS é muito poderoso.

Essa cena do desktop acima é onde eu faço toda a programação ao vivo. Eu praticamente "vivo" aqui durante quase todo o streaming. Eu uso iTerm e o vim. Tenho também uma janela do navegador à mão para onde eu vou para procurar documentação e para fazer uma triagem em coisas no GitHub etc.

O retângulo inferior em preto é a minha webcam, para que os usuários possam me ver trabalhando e ter uma conexão mais pessoal.

Eu tenho alguns 'rótulos' que eu uso para minhas cenas, muitos dos quais tem a ver com as estatísticas e informações no banner superior. O banner simplesmente adiciona um pouco de personalidade. É uma fonte persistente de informações legal durante o streaming. É uma imagem que fiz no GIMP e você pode importá-la como fonte em sua cena. Alguns dos rótulos são estatísticas ao vivo que vêm de arquivos de texto (como, por exemplo, quem é o seguidor mais recente). Outro rótulo é um personalizado que eu fiz e que mostra a temperatura ao vivo e a umidade do ambiente de onde eu faço o streaming.

Eu também tenho 'alertas' configurados em minhas cenas, que mostram banners bonitos na parte superior do streaming sempre que alguém me segue ou doa algum dinheiro. Eu uso o serviço da web chamado Stream Labs para fazer isso, importando-o como uma fonte de página da web do navegador na cena. Stream Labs também cria um arquivo de texto com meus seguidores mais recentes para mostrar no meu banner.

Além disso, eu tenho uma tela de aguardo, que uso quando estou prestes a entrar ao vivo:

0_cbkVjKpyWaWZLSfS

Também fiz uma cena para quando eu estou inserindo tokens secretos ou chaves de API. Eu apareço na câmera, mas meu desktop fica oculto com uma página da web divertida, de modo que eu posso trabalhar com privacidade:

0_gbhowQ37jr3ouKhL

Como você pode ver, eu não levo nada muito a sério quando estou fazendo meus streamings, mas eu gosto de ter uma configuração legal para que meus espectadores possam aproveitar ao máximo o streaming.

Agora, vamos a um segredo de verdade: eu uso o OBS para remover a parte inferior e a parte direita da minha tela, ao mesmo tempo em que mantenho o tamanho de vídeo que a Twitch espera. Isso me deixa com espaço para ver meus eventos (seguidores novos e outros) na parte inferior e eu posso olhar e responder na caixa de chat do meu canal à direita. A Twitch permite que você 'extraia' a caixa do chat para uma nova janela, o que é bastante útil.

Essa é a aparência do meu desktop completo de fato:

0_sENLkp3Plh7ZTjJt

Comecei a fazer isso há alguns meses e não parei mais. Eu nem tenho certeza se meus espectadores percebem que é assim que minha configuração funciona. Eu acho que eles dão como certo que eu posso ver tudo, mesmo que eu não possa ver o que realmente está sendo transmitido ao vivo quando eu estou ocupada programando!

Você deve estar se perguntando por que eu só uso um monitor. É porque dois monitores era demais para gerenciar além de tudo o que eu já estava fazendo durante o streaming. Eu descobri isso rapidamente e tenho ficado com apenas uma tela desde então.

Hardware

Usei coisas mais baratas para começar e, aos poucos, comprei coisas mais legais quando percebi que o streaming seria algo a que eu me apegaria. Use o que tiver ao começar, mesmo que seja o microfone e a câmara integrados do seu laptop.

Hoje em dia, eu uso uma webcam Logitech Pro C920 e um microfone Blue Yeti em um braço de microfone com um suporte anti-impacto (do tipo aranha shock). Vale totalmente a pena no final, se você tiver o dinheiro para gastar. Fez muita diferença na qualidade dos meus streamings.

Eu uso um monitor grande (27 polegadas), porque, como eu mencionei anteriormente usar dois monitores simplesmente não funcionou para mim. Eu estava perdendo coisas no bate-papo porque eu não estava olhando para a segunda tela do laptop o suficiente, e assim por diante. O nível de experiência das pessoas pode variar aqui, mas ter tudo em uma tela foi fundamental para eu prestar atenção em tudo o que está acontecendo.

Em termos de hardware, acho que é isso. Não tenho uma configuração muito complicada.

Se você estava interessado, minha mesa é bastante normal, exceto pelo microfone assustador que fica grudado do meu lado:

0_EyRimlrHNEKeFmS4--1-

Dicas

Esta última seção tem algumas dicas gerais que eu escolhi, que tornaram meu streaming melhor e mais agradável no geral.

Painéis

Dedique um tempo a criar ótimos painéis. Os painéis são as pequenas caixas de conteúdo na parte inferior da página do canal de todos. Eu os vejo como as novas caixas de perfil do MySpace (verdade). As ideias do painel podem ser coisas como regras de bate-papo, informações sobre quando você transmite, qual computador e equipamento você usa ou sua raça de gato favorita – qualquer coisa que crie um toque pessoal. Examine outros canais (especialmente os populares) para ter ideias!

Um exemplo de um dos meus painéis:

0_HlLs6xlnJtPwN4D6

Chat

O chat é muito importante. Você receberá as mesmas perguntas repetidamente à medida que as pessoas entrarem durante o seu streaming depois de perderem o início. É aí que 'macros' de chat podem realmente ajudar. "Em que você está trabalhando?" é a pergunta mais comum feita enquanto estou programando. Eu tenho 'comandos' de atalho no chat para isso, que fiz com o Nightbot. Eles colocam uma explicação de algo que eu inseri anteriormente. Eu só preciso digitar um pequeno comando de uma palavra como !whatamidoing (o que estou fazendo no momento).

Quando as pessoas fizerem perguntas ou deixarem comentários legais, fale com elas! Agradeça, diga seu identificador da Twitch, e eles realmente apreciarão a atenção e o reconhecimento. Isso é MUITO difícil de cuidar quando você começa a transmitir, mas a multitarefa virá mais fácil à medida que você fizer mais e mais. Tente passar alguns segundos a cada dois minutos olhando o chat para encontrar novas mensagens.

Ao programar, explique o que está fazendo. Fale bastante. Faça piadas. Mesmo quando estou bloqueada com algo, eu digo coisas como, "Ah, droga, me esqueci de como usar esse método. Vou olhar no Google hahaha" e as pessoas são sempre legais. Algumas vezes, eles até leem com você e a ajudam. É divertido e uma maneira de engajar, além de manter as pessoas assistindo.

Eu perco o interesse rapidamente ao assistir streamings de programação onde a pessoa se senta em silêncio digitando código, ignorando o chat e seus novos alertas de seguidores.

Com quase toda certeza, 99% das pessoas que encontrarem seu canal serão amigáveis e curiosas. A gente até recebe um troll de vez em quando, mas as ferramentas de moderação oferecidas pela Twitch e pelo Nightbot ajudam muito a desencorajar esse tipo de comportamento.

Tempo de preparação

Automatize sua configuração o máximo possível. Meu terminal é um iTerm, e ele permite que você salve arranjos de janelas e tamanhos de fonte para que você possa restaurá-los mais tarde. Eu tenho um arranjo de janela para streaming e outro para quando não estou no streaming. Isso me poupa muito tempo. Eu uso um comando e tudo está no tamanho perfeito e na posição certa, pronto para funcionar.

Existem outras aplicações por aí que automatizam todos os posicionamentos da janela da aplicação – procure para ver se alguma deles também ajudaria você.

Deixe o tamanho da fonte bem grande no seu terminal e no seu editor de código para que todos possam ver.

Regularidade

Mantenha-se regular em sua agenda. Eu só transmito uma vez por semana, mas sempre na mesma hora. Avise as pessoas se você não conseguir transmitir durante o tempo em que você normalmente faz isso. Isso me rendeu um público regular. Algumas pessoas adoram a rotina e é exatamente como conversar com um amigo. Você está em um círculo social com sua comunidade. Então, trate-a dessa maneira.

Quero transmitir mais vezes, mas sei que não posso me comprometer com mais de uma vez por semana por causa das minhas viagens. Estou tentando criar uma maneira de transmitir em alta qualidade quando estiver na estrada, ou, talvez, de apenas ter bate-papos casuais e de deixar a programação para o meu streaming normal de domingo. Ainda estou tentando descobrir como fazer isso!

Estranheza

Vai parecer estranho quando você começar. Você vai se sentir nervoso com as pessoas vendo você programar. Isso é normal! Senti isso muito forte no início, apesar de ter experiência em falar em público. Senti que não havia onde me esconder – e isso me assustou. Eu pensava: "todo mundo vai achar que meu código é ruim e que eu sou uma péssima desenvolvedora". Esse é um padrão de pensamento que me atormentou durante toda a minha carreira, no entanto. Não é uma novidade. Eu sabia que, ao vivo, eu não conseguiria refatorar silenciosamente o código antes de enviar para o GitHub, o que, geralmente, é muito mais seguro para minha reputação como desenvolvedora.

Aprendi muito sobre meu estilo de programação fazendo isso ao vivo na Twitch. Aprendi que sou definitivamente do tipo "primeiro, faça funcionar; depois, torne legível; por fim, torne mais rápido". Eu não ensaio mais na noite anterior (desisti disso depois de 3 ou 4 transmissões iniciais). Então, escrevo um código bem tosco na Twitch e tenho que me sentir bem com isso. Eu escrevo meu melhor código quando estou sozinha com meus pensamentos e não olhando para uma caixa de bate-papo e falando em voz alta. Não há problema com isso. Esqueço assinaturas de métodos que usei mil vezes e cometo erros "bobos" em quase todas as sessões de streaming. Não é, com certeza, um ambiente produtivo e, ali, você não estará no seu melhor momento de produção.

Minha comunidade da Twitch nunca me julga por isso. Eles me ajudam muito. Eles entendem que sou multitarefa e são realmente ótimos em dar conselhos e sugestões pragmáticas. Às vezes, eles me socorrem. Em outras, eu tenho que explicar a eles por que a sugestão deles não funciona. É realmente como uma programação em duplas comum!

Acho que a abordagem 'de mostrar tudo, inclusive o problemático' nesse meio é um ponto forte, não uma fraqueza. Isso faz com que as pessoas consigam se relacionar melhor com você. Além disso, é importante mostrar que não existe o programador perfeito ou o código perfeito. Provavelmente, é um grande alívio para os novos programadores que assistem, além de uma lição de humildade para mim como programadora mais experiente.

Conclusão

Se você está querendo começar a fazer programação ao vivo na Twitch, eu encorajo você a experimentá-la! Espero que este artigo tenha ajudado se você tem se perguntado por onde começar.

Se quiser se juntar a mim nos domingos, siga meu canal na Twitch. 🙂

Para encerrar, gostaria de fazer um agradecimento pessoal a Mattias Johansson, por sua sabedoria e encorajamento no início de minha jornada como streamer. Ele foi incrivelmente generoso em seus conselhos, e o canal dele no YouTube, o FunFunFunction é uma fonte contínua de inspiração.

Atualização: algumas pessoas têm me perguntado sobre meu teclado e sobre outras partes da minha estação de trabalho. Aqui vai uma lista completa das coisas que eu uso (em inglês). Agradeço o seu interesse!