Lezioni dal mio primo anno di programmazione live su Twitch

Modifica: se sei interessato alla mia configurazione di streaming live più aggiornata, puoi leggere al riguardo nel mio nuovo articolo "My Twitch Live Coding Setup".

Ho provato lo streaming per la prima volta lo scorso luglio. Invece di giocare, cosa che fa la maggior parte degli streamer su Twitch, volevo trasmettere in streaming il lavoro open source che faccio nel mio tempo personale. Lavoro un po 'sulle librerie hardware di NodeJS (la maggior parte delle mie). Dato che ero già in una nicchia su Twitch, perché non trovarmi in una nicchia ancora più piccola, come l'hardware basato su JavaScript;) Mi sono registrato per il mio canale e da allora lo streaming è stato regolare.

Ovviamente non sono il primo a farlo. Handmade Hero è stato uno dei primi programmatori a guardare codice online, seguito rapidamente dagli sviluppatori di Vlambeer che hanno sviluppato il Nuclear Throne dal vivo su Twitch. Sono stato affascinato soprattutto da Vlambeer.

Ciò che mi ha spinto oltre il desiderio di poterlo fare per farlo davvero è attribuito a Nolan Lawson, un mio amico. L'ho visto in streaming il suo lavoro open source un fine settimana ed è stato fantastico. Ha spiegato tutto quello che stava facendo lungo la strada. Qualunque cosa. Rispondendo a problemi su GitHub, triaging dei bug, debug del codice nei rami, lo chiami. L'ho trovato affascinante, dal momento che Nolan gestisce librerie open source che ottengono molto uso e attività. La sua vita open source è molto diversa dalla mia.

Puoi anche vedere questo commento che ho lasciato sotto il suo video:

L'ho provato anche io una settimana dopo, dopo aver impostato il mio canale Twitch e aver fatto confusione con OBS. Credo di aver lavorato su Avrgirl-Arduino, su cui lavoro ancora frequentemente durante lo streaming. È stato un primo flusso approssimativo. Ero molto nervoso ed ero rimasto alzato fino a tardi a provare tutto quello che avrei fatto la sera prima.

Il piccolo numero di spettatori che ho avuto quel sabato è stato davvero incoraggiante, quindi l'ho tenuto. In questi giorni ho più di un migliaio di follower e un bel sottoinsieme di loro sono visitatori abituali che chiamo "la famiglia noopkat".

Ci divertiamo molto e mi piace chiamare le parti di codifica live "programmazione di coppie online multiplayer di massa". Sono davvero toccato dalla gentilezza e dallo spirito di tutti coloro che si uniscono a me ogni fine settimana. Uno dei momenti più divertenti che ho avuto è stato quando una delle famiglie ha sottolineato che la mia scheda Arduino non funzionava con il mio software perché il microchip mancava dalla scheda:

Ho disconnesso un flusso molte volte, solo per scoprire nella mia casella di posta che qualcuno ha inviato una richiesta pull per alcuni lavori che avevo menzionato non avevo il tempo di iniziare. Posso onestamente dire che il mio lavoro open source è stato cambiato in meglio, grazie alla generosità e all'incoraggiamento della mia comunità Twitch.

Ho molto altro da dire sui vantaggi che lo streaming su Twitch mi ha portato, ma probabilmente è per un altro post sul blog. Invece, voglio condividere le lezioni che ho imparato per chiunque voglia provare a scrivere codice in questo modo da solo. Di recente alcuni sviluppatori mi hanno chiesto come possono iniziare, quindi sto pubblicando gli stessi consigli che ho dato loro!

In primo luogo, ti sto collegando a una guida chiamata "Streaming e ricerca di successo su Twitch" che mi ha aiutato molto. Si concentra specificamente su Twitch e sui flussi di gioco, ma ci sono ancora sezioni pertinenti e ottimi consigli. Ti consiglio di leggere questo prima di prendere in considerazione qualsiasi altro dettaglio sull'avvio del tuo canale (come attrezzature o scelte software).

Il mio consiglio è di seguito, che ho acquisito dai miei stessi errori e dalla saggia saggezza degli altri streamer (sai chi sei!).

Software

Esistono molti software di streaming gratuiti disponibili per lo streaming. Uso Open Broadcaster Software (OBS). È disponibile sulla maggior parte delle piattaforme. Ho trovato davvero intuitivo alzarmi e andare, ma altri a volte impiegano un po 'di tempo per imparare come funziona. Il tuo chilometraggio può variare! Ecco una schermata di come appare la mia configurazione di "desktop scene" di OBS a partire da oggi (fare clic per ingrandire l'immagine):

In sostanza, si passa tra le "scene" durante lo streaming. Una scena è una raccolta di "fonti", stratificate e composte tra loro. Una fonte può essere qualcosa come una videocamera, un microfono, il desktop, una pagina Web, testo in diretta, immagini, l'elenco potrebbe continuare. OBS è molto potente.

Questa scena desktop qui sopra è dove eseguo tutta la mia codifica live e per lo più vivo qui per la durata dello streaming. Uso iTerm e vim e ho anche una finestra del browser a portata di mano per passare a consultare la documentazione e analizzare le cose su GitHub, ecc.

Il rettangolo nero in basso è la mia webcam, quindi la gente può vedermi lavorare e avere una connessione più personale.
 
Ho una manciata di "etichette" per le mie scene, molte delle quali hanno a che fare con le statistiche e le informazioni nel banner in alto. Il banner aggiunge solo personalità ed è una bella fonte persistente di informazioni durante lo streaming. È un'immagine che ho realizzato in GIMP e la importi come fonte nella tua scena. Alcune etichette sono statistiche in tempo reale ricavate da file di testo (come il follower più recente). Un'altra etichetta è una personalizzata che ho realizzato che mostra la temperatura e l'umidità dal vivo della stanza da cui provoco.

Ho anche "avvisi" impostati nelle mie scene, che mostrano simpatici banner nella parte superiore del mio stream ogni volta che qualcuno segue o dona denaro. Per fare questo uso il servizio web Stream Labs, importandolo come sorgente di una pagina web del browser nella scena. Stream Labs crea anche il mio file di testo live dei miei follower recenti da mostrare nel mio banner.

Ho anche una schermata di standby che utilizzo quando sto per essere live:

Ho anche bisogno di una scena per quando inserisco token segreti o chiavi API. Mi mostra sulla webcam ma nasconde il mio desktop con una pagina Web divertente, così posso lavorare in totale privacy:

Come puoi vedere, non prendo troppo sul serio le cose durante lo streaming, ma mi piace avere una buona configurazione per i miei spettatori per ottenere il massimo dal mio streaming.

Ma ora per un vero segreto: uso OBS per ritagliare i bordi inferiore e destro del mio schermo, mantenendo lo stesso rapporto di dimensioni video di quello che Twitch si aspetta. Questo mi lascia spazio per guardare i miei eventi (seguiti, ecc.) In basso, e guardare e rispondere alla finestra di chat del mio canale sulla destra. Twitch ti consente di "aprire" la chat in una nuova finestra che è davvero utile.

Ecco come appare il mio desktop completo:

Ho iniziato a farlo alcuni mesi fa e non ho guardato indietro. Non sono nemmeno sicuro che i miei spettatori si rendano conto che funziona così la mia configurazione. Penso che danno per scontato che posso vedere tutto, anche se non riesco a vedere cosa viene trasmesso in streaming dal vivo quando sono impegnato a programmare!

Forse ti starai chiedendo perché uso solo un monitor. È perché due monitor erano troppo da gestire in cima a tutto ciò che stavo facendo durante lo streaming. L'ho capito rapidamente e da allora mi sono bloccato con uno schermo.

Hardware

Ho usato roba più economica per iniziare, e lentamente ho comprato roba più bella quando mi sono reso conto che lo streaming sarebbe stato qualcosa con cui mi sono bloccato. Usa tutto ciò che hai quando inizi, anche se è il microfono e la fotocamera integrati nel tuo laptop.

Oggi uso una webcam Logitech Pro C920 e un microfono Blue Yeti su un braccio del microfono con una scarica del microfono. Ne vale la pena, alla fine, se ne hai da spendere. Ha fatto la differenza per la qualità dei miei flussi.

Uso un monitor di grandi dimensioni (27 "), perché come ho già detto in precedenza l'utilizzo di due monitor non funzionava per me. Mi mancavano cose nella chat perché non guardavo abbastanza al secondo schermo del laptop, ecc. il chilometraggio può variare qui, ma avere tutto su uno schermo è stato fondamentale per me prestare attenzione a tutto ciò che accade.

È praticamente tutto sul lato hardware; Non ho una configurazione molto complicata.

Se tu fossi interessato, la mia scrivania sembra abbastanza normale, tranne per l'odioso microfono incombente:

Suggerimenti

Quest'ultima sezione contiene alcuni suggerimenti generali che ho raccolto, che hanno reso il mio stream migliore e più piacevole in generale.

pannelli

Dedica un po 'di tempo alla creazione di fantastici pannelli. I pannelli sono le piccole caselle di contenuto nella parte inferiore della pagina del canale di tutti. Li vedo come le nuove caselle del profilo di MySpace (lol ma davvero). Le idee del panel potrebbero essere cose come le regole della chat, informazioni su quando fai streaming, quale computer e attrezzatura usi, la tua razza di gatto preferita; tutto ciò che crea un tocco personale. Guarda altri canali (in particolare quelli popolari) per idee!

Un esempio di uno dei miei pannelli:

Chiacchierare

La chat è davvero importante. Riceverai le stesse domande più e più volte mentre le persone si uniscono al tuo stream a metà strada, quindi avere chat "macro" può davvero aiutare. "A cosa stai lavorando?" È la domanda più comune fatta mentre sto programmando. Ho una scorciatoia di chat "comandi" per quello, che ho creato con Nightbot. Fornirà una spiegazione di qualcosa che ho inserito in anticipo, digitando un comando di una sola parola come! Whatamidoing

Quando le persone fanno domande o lasciano bei commenti, rispondi a loro! Di 'grazie, dì la loro maniglia Twitch e apprezzeranno davvero l'attenzione e il riconoscimento. È super difficile rimanere in cima quando si avvia lo streaming per la prima volta, ma il multitasking diventerà più facile man mano che si fa di più. Prova a dedicare qualche secondo ogni paio di minuti alla ricerca di nuovi messaggi nella chat.

Durante la programmazione, spiega cosa stai facendo. Parlare molto. Fare scherzi. Anche quando sono bloccato, dirò "oh, merda, dimentico come usare questo metodo, lasciami Google ha hahaha" e la gente è sempre gentile e a volte leggono anche con te e ti aiutano. È divertente e coinvolgente e continua a guardare la gente.

Perdo rapidamente interesse quando guardo i flussi di programmazione in cui lo streamer è seduto in silenzio digitando il codice, ignorando la chat e i loro nuovi avvisi follower.

È molto probabile che il 99% delle persone che arrivano al tuo canale siano amichevoli e curiose. Ricevo il troll occasionale, ma gli strumenti di moderazione offerti da Twitch e Nightbot aiutano davvero a scoraggiare questo.

Tempo di preparazione

Automatizza la tua configurazione il più possibile. Il mio terminale è iTerm e ti consente di salvare le disposizioni delle finestre e le dimensioni dei caratteri in modo da poterle ripristinare in un secondo momento. Ho una disposizione della finestra per lo streaming e una per il non streaming. È un enorme risparmio di tempo. Ho premuto un comando e tutto ha le dimensioni perfette e nella posizione giusta, pronto per partire.

Ci sono altre app là fuori che automatizzano tutti i posizionamenti delle finestre delle tue app, dai un'occhiata per vedere se qualcuno di loro potrebbe anche aiutare.

Aumenta le dimensioni del carattere nel terminale e nell'editor di codice in modo che tutti possano vederlo.

Regolarità

Sii regolare con il tuo programma. Trasmetto in streaming solo una volta alla settimana, ma sempre allo stesso tempo. Fai sapere alla gente se non sei in grado di trasmettere in streaming durante un tempo previsto che fai normalmente. Questo mi ha infastidito un pubblico regolare. Alcune persone adorano la routine ed è esattamente come ritrovarsi con un amico. Sei in una cerchia sociale con la tua community, quindi trattala in questo modo.

Voglio fare lo streaming più spesso, ma so che non posso impegnarmi più di una volta alla settimana a causa dei viaggi. Sto cercando di trovare un modo per eseguire lo streaming in alta qualità quando sono in viaggio, o forse ho solo chat casuali e salva la programmazione per il mio normale streaming domenicale. Sto ancora cercando di capirlo!

Imbarazzo

Sarà strano quando inizi. Ti sentirai nervoso per la gente che ti guarda il codice. È normale! L'ho sentito molto forte all'inizio, anche se ho esperienza di parlare in pubblico. Mi sentivo come se non ci fosse nessun posto dove nascondermi, e questo mi ha spaventato. Ho pensato, "tutti penseranno che il mio codice sia cattivo e che io sia un cattivo sviluppatore". Questo è uno schema di pensiero che mi ha afflitto per tutta la mia carriera, non è una novità. Sapevo che con questo, non potevo tranquillamente refactificare il codice prima di passare a GitHub, che è generalmente molto più sicuro per la mia reputazione di sviluppatore.

Ho imparato molto sul mio stile di programmazione tramite la codifica live su Twitch. Ho imparato che sono sicuramente il tipo "fallo funzionare, quindi rendilo leggibile, quindi rendilo veloce". Non provo più la sera prima (ho rinunciato dopo 3 o 4 stream all'inizio), quindi scrivo un codice piuttosto approssimativo su Twitch e devo essere d'accordo. Scrivo il mio codice migliore quando sono solo con i miei pensieri e non guardo una finestra di chat + parlando ad alta voce, e va bene. Dimentico le firme dei metodi che ho usato mille volte e commetto errori "sciocchi" in quasi ogni singolo flusso. Per la maggior parte, non è un ambiente produttivo per essere al meglio.

La mia community di Twitch non mi giudica mai per questo, e mi aiutano molto. Capiscono che sono multitasking e sono davvero entusiasti di consigli e suggerimenti pragmatici. A volte mi salvano e altre volte devo spiegare loro perché il loro suggerimento non funzionerà. È proprio come la normale programmazione delle coppie!

Penso che l'approccio "verruche e tutto" a questo mezzo sia una forza, non una debolezza. Ti rende più riconoscibile ed è importante dimostrare che non esiste il programmatore perfetto o il codice perfetto. Probabilmente è abbastanza rinfrescante da vedere per i nuovi programmatori e umiliante per me stesso come programmatore più esperto.

Conclusione

Se desideri entrare in programmazione live su Twitch, ti incoraggio a provarlo! Spero che questo post ti abbia aiutato se ti stai chiedendo da dove cominciare.

Se vuoi unirti a me la domenica, puoi seguire il mio canale su Twitch :)

Nella mia ultima nota, vorrei ringraziare personalmente Mattias Johansson per la sua saggezza e incoraggiamento all'inizio del mio viaggio in streaming. Era incredibilmente generoso e il suo canale YouTube FunFunFunction è una continua fonte di ispirazione.

Aggiornamento: un gruppo di persone mi ha chiesto della mia tastiera e di altre parti della mia workstation. Ecco l'elenco completo di ciò che uso. Grazie per l'interesse!