Lecciones de mi primer año de codificación en vivo en Twitch

Probé el streaming por primera vez en julio pasado. En lugar de jugar, lo que hacen la mayoría de los streamers en Twitch, quería transmitir el trabajo de código abierto que hago en mi tiempo personal. Trabajo en bibliotecas de hardware NodeJS bastante (la mayoría de ellas son mías). Dado que ya estaba en un nicho en Twitch, ¿por qué no estar en un nicho aún más pequeño, como el hardware con JavaScript? Me inscribí en mi propio canal y he estado transmitiendo regularmente desde entonces.

Por supuesto que no soy el primero en hacer esto. Handmade Hero fue uno de los primeros programadores que vi código en línea, seguido rápidamente por los desarrolladores de Vlambeer que desarrollaron Nuclear Throne en vivo en Twitch. Vlambeer me fascinó especialmente.

Lo que me llevó al borde de desear poder hacerlo se le atribuye a Nolan Lawson, un amigo mío. Lo vi transmitiendo su trabajo de código abierto un fin de semana y fue increíble. Explicó todo lo que estaba haciendo en el camino. Todo. Responder a problemas en GitHub, clasificar errores, depurar código en sucursales, lo que sea. Lo encontré fascinante, ya que Nolan mantiene bibliotecas de código abierto que reciben mucho uso y actividad. Su vida de código abierto es muy diferente a la mía.

Incluso puedes ver este comentario que dejé debajo de su video:

Yo mismo lo probé una semana más tarde, después de configurar mi canal de Twitch y abrirme paso a través del uso de OBS. Creo que trabajé en Avrgirl-Arduino, en el que todavía trabajo con frecuencia durante la transmisión. Fue un primer flujo difícil. Estaba muy nervioso y me había quedado despierto hasta tarde ensayando todo lo que iba a hacer la noche anterior.

Sin embargo, el pequeño número de espectadores que obtuve ese sábado fue realmente alentador, así que seguí así. En estos días tengo más de mil seguidores, y un hermoso subconjunto de ellos son visitantes regulares a quienes llamo "la familia noopkat".

Nos divertimos mucho, y me gusta llamar a las partes de codificación en vivo “programación de parejas en línea multijugador masivo”. Estoy realmente conmovido por la amabilidad y el ingenio de todos los que se unen a mí cada fin de semana. Uno de los momentos más divertidos que he tenido fue cuando uno de los familiares señaló que mi placa Arduino no funcionaba con mi software porque faltaba el microchip en la placa:

He cerrado sesión en una transmisión muchas veces, solo para encontrar en mi bandeja de entrada que alguien ha enviado una solicitud de extracción para un trabajo que mencioné que no tenía tiempo para comenzar. Honestamente puedo decir que mi trabajo de código abierto ha cambiado para mejor, gracias a la generosidad y el aliento de mi comunidad de Twitch.

Tengo mucho más que decir sobre los beneficios que me ha brindado la transmisión en Twitch, pero probablemente sea para otra publicación de blog. En su lugar, quiero compartir las lecciones que he aprendido con cualquier otra persona que desee probar la codificación en vivo de esta manera por sí mismos. Recientemente, algunos desarrolladores me preguntaron cómo pueden comenzar, ¡así que estoy publicando el mismo consejo que les he dado!

En primer lugar, lo estoy vinculando con una guía llamada "Transmisión y búsqueda de éxito en Twitch" que me ayudó mucho. Está enfocado específicamente en Twitch y transmisiones de juegos, pero todavía hay secciones relevantes y excelentes consejos allí. Recomiendo leer esto primero antes de considerar cualquier otro detalle sobre cómo iniciar su canal (como opciones de equipo o software).

Mi propio consejo está a continuación, que he adquirido de mis propios errores y de la sabia sabiduría de otros streamers (¡ya sabes quién eres!).

Software

Hay una gran cantidad de software de transmisión gratuito para transmitir. Utilizo Open Broadcaster Software (OBS). Está disponible en la mayoría de las plataformas. Me pareció muy intuitivo levantarme y ponerme en marcha, pero otros a veces tardan un poco en aprender cómo funciona. ¡Su experiencia puede ser diferente! Aquí hay una captura de pantalla de cómo se ve la configuración de mi 'escena de escritorio' de OBS a partir de hoy (haga clic para ver una imagen más grande):

Básicamente, cambia entre 'escenas' durante la transmisión. Una escena es una colección de "fuentes", superpuestas y compuestas entre sí. Una fuente puede ser cosas como una cámara, un micrófono, su escritorio, una página web, texto en vivo, imágenes, la lista continúa. OBS es muy poderoso.

Esta escena de escritorio de arriba es donde hago toda mi codificación en vivo, y vivo principalmente aquí durante la duración de la transmisión. Utilizo iTerm y vim, y también tengo una ventana del navegador a la que puedo cambiar para buscar documentación y clasificar cosas en GitHub, etc.

El rectángulo negro inferior es mi cámara web, por lo que la gente puede verme trabajar y tener una conexión más personal.

Tengo un puñado de 'etiquetas' para mis escenas, muchas de las cuales tienen que ver con las estadísticas y la información en el banner superior. El banner solo agrega personalidad y es una buena fuente persistente de información durante la transmisión. Es una imagen que hice en GIMP y la importas como fuente en tu escena. Algunas etiquetas son estadísticas en vivo que se extraen de archivos de texto (como el seguidor más reciente). Otra etiqueta es una personalizada que hice que muestra la temperatura en vivo y la humedad de la habitación desde la que transmito.

También tengo 'alertas' configuradas en mis escenas, que muestran lindos carteles en la parte superior de mi transmisión cada vez que alguien me sigue o dona dinero. Utilizo el servicio web Stream Labs para hacer esto, importándolo como fuente de la página web del navegador en la escena. Stream Labs también crea un archivo de texto en vivo de mis seguidores recientes para mostrarlo en mi banner.

También tengo una pantalla de espera que uso cuando estoy a punto de estar en vivo:

Además, necesito una escena para cuando estoy ingresando tokens secretos o claves API. Me muestra en la cámara web pero oculta mi escritorio con una página web entretenida, por lo que puedo trabajar en privado:

Como puede ver, no me tomo las cosas demasiado en serio cuando transmito, pero me gusta tener una buena configuración para que mis espectadores aprovechen al máximo mi transmisión.

Pero ahora, un secreto real: uso OBS para recortar los bordes inferior y derecho de mi pantalla, mientras mantengo la misma proporción de tamaño de video que Twitch espera. Eso me deja espacio para ver mis eventos (seguimiento, etc.) en la parte inferior, y mirar y responder al cuadro de chat de mi canal a la derecha. Twitch te permite `` abrir '' el chatbox en una nueva ventana, lo cual es realmente útil.

Así es como se ve realmente mi escritorio completo :

Empecé a hacer esto hace unos meses y no he mirado atrás. Ni siquiera estoy seguro de que mis espectadores se den cuenta de que así es como funciona mi configuración. Creo que dan por sentado que puedo ver todo, ¡aunque no puedo ver lo que realmente se transmite en vivo cuando estoy ocupado programando!

Quizás se pregunte por qué solo uso un monitor. Es porque dos monitores eran demasiado para administrar además de todo lo demás que estaba haciendo durante la transmisión. Descubrí esto rápidamente y me he quedado con una pantalla desde entonces.

Hardware

Usé cosas más baratas para empezar, y poco a poco compré cosas más bonitas cuando me di cuenta de que la transmisión iba a ser algo con lo que me quedaría. Use lo que tenga al comenzar, incluso si es el micrófono y la cámara integrados en su computadora portátil.

Hoy en día uso una cámara web Logitech Pro C920 y un micrófono Blue Yeti en un brazo de micrófono con un micrófono de choque. Vale la pena el dinero al final si lo tienes para gastar. Hizo una diferencia en la calidad de mis transmisiones.

Utilizo un monitor grande (27 "), porque, como mencioné anteriormente, el uso de dos monitores simplemente no me funcionó. Me faltaban cosas en el chat porque no estaba mirando la pantalla del segundo portátil lo suficiente, etc. El kilometraje puede variar aquí, pero tener todo en una pantalla fue clave para que prestara atención a todo lo que sucedía.

Eso es todo en el lado del hardware; No tengo una configuración muy complicada.

Si estaba interesado, mi escritorio se ve bastante normal, excepto por el desagradable micrófono que se avecina:

Consejos

Esta última sección tiene algunos consejos generales que he recogido, que han hecho que mi transmisión sea mejor y más agradable en general.

Paneles

Dedique algo de tiempo a crear grandes paneles. Los paneles son pequeños cuadros de contenido en la parte inferior de la página del canal de todos. Los veo como los nuevos cuadros de perfil de MySpace (risas, pero en realidad). Las ideas del panel podrían ser cosas como reglas de chat, información sobre cuándo transmite, qué computadora y equipo usa, su raza de gato favorita; cualquier cosa que cree un toque personal. ¡Mira otros canales (especialmente los populares) para obtener ideas!

Un ejemplo de uno de mis paneles:

Charla

El chat es realmente importante. Recibirá las mismas preguntas una y otra vez a medida que las personas se unan a su transmisión a la mitad, por lo que tener 'macros' de chat realmente puede ayudar. "¿En que estas trabajando?" es la pregunta más común que se hace mientras estoy codificando. Tengo 'comandos' de acceso directo de chat para eso, que hice con Nightbot. Pondrá una explicación de algo que he ingresado antes de tiempo, escribiendo un comando pequeño de una palabra como ! Whatamidoing

Cuando la gente haga preguntas o deje comentarios agradables, ¡hábleles! Da las gracias, di su nombre de Twitch y realmente apreciarán la atención y el reconocimiento. Esto es SUPER difícil de controlar cuando comienzas a transmitir por primera vez, pero la multitarea será más fácil a medida que hagas más. Trate de tomarse unos segundos cada dos minutos para buscar nuevos mensajes en el chat.

Cuando programe, explique lo que está haciendo . Hablar mucho. Hacer bromas. Incluso cuando estoy atascado, digo, "oh, mierda, me olvidé de cómo usar este método, déjame buscarlo en Google, jajaja" y la gente siempre es amable y, a veces, incluso leen contigo y te ayudan. Es divertido y atractivo, y mantiene a la gente mirando.

Pierdo interés rápidamente cuando veo transmisiones de programación en las que el transmisor está sentado en silencio escribiendo código, ignorando el chat y sus alertas de nuevos seguidores.

Es muy probable que el 99% de las personas que encuentran el camino a tu canal sean amigables y curiosas. Recibo el troll ocasional, pero las herramientas de moderación que ofrecen Twitch y Nightbot realmente ayudan a desalentar esto.

Tiempo de preparación

Automatice su configuración tanto como sea posible. Mi terminal es iTerm y te permite guardar arreglos de ventanas y tamaños de fuente para que puedas restaurarlos más tarde. Tengo una disposición de ventana para transmisión y otra para no transmisión. Es un gran ahorro de tiempo. Presiono un comando y todo es del tamaño perfecto y en la posición correcta, listo para funcionar.

Hay otras aplicaciones que automatizan todas las ubicaciones de las ventanas de su aplicación, eche un vistazo para ver si alguna de ellas también ayudaría.

Haga que su tamaño de fuente sea realmente grande en su terminal y editor de código para que todos puedan verlo.

Regularidad

Sea regular con su horario. Solo transmito una vez a la semana, pero siempre a la misma hora. Informe a la gente si no puede transmitir durante el tiempo previsto en el que normalmente lo hace. Esto me ha proporcionado una audiencia regular. A algunas personas les encanta la rutina y es exactamente como ponerse al día con un amigo. Estás en un círculo social con tu comunidad, así que trátalo de esa manera.

Quiero transmitir con más frecuencia, pero sé que no puedo comprometerme a hacerlo más de una vez a la semana debido a los viajes. Estoy tratando de encontrar una forma de transmitir en alta calidad cuando estoy de viaje, o tal vez simplemente tener conversaciones informales y guardar la programación para mi transmisión dominical habitual. ¡Todavía estoy tratando de resolver esto!

Torpeza

Se sentirá extraño cuando empieces. Te sentirás nervioso porque la gente te vea codificar. ¡Eso es normal! Lo sentí muy fuerte al principio, a pesar de que tengo experiencia en hablar en público. Sentí que no había ningún lugar donde esconderme y eso me asustó. Pensé, "todo el mundo va a pensar que mi código es malo y que soy un mal desarrollador". Este es un patrón de pensamiento que me ha atormentado durante toda mi carrera , sin embargo, no es nada nuevo. Sabía que con esto, no podría refactorizar silenciosamente el código antes de enviarlo a GitHub, que generalmente es mucho más seguro para mi reputación como desarrollador.

Aprendí mucho sobre mi estilo de programación mediante la codificación en vivo en Twitch. Aprendí que definitivamente soy del tipo "hazlo funcionar, luego hazlo legible, luego hazlo rápido". Ya no ensayé la noche anterior (lo dejé después de 3 o 4 transmisiones justo al principio), así que escribo un código bastante aproximado en Twitch y tengo que estar de acuerdo con eso. Escribo mi mejor código cuando estoy solo con mis pensamientos y no veo un cuadro de chat + hablando en voz alta, y está bien. Me olvido de las firmas de métodos que he usado miles de veces y cometo errores "tontos" en casi todas las secuencias. Para la mayoría, no es un entorno productivo para estar en su mejor momento.

Mi comunidad de Twitch nunca me juzga por esto y me ayudan mucho. Entienden que soy multitarea y son muy buenos con los consejos y sugerencias pragmáticos. A veces me sacan de apuros, y otras veces tengo que explicarles por qué su sugerencia no funciona. ¡Es realmente como la programación de pares normal!

Creo que el enfoque de 'verrugas y todo' de este medio es una fortaleza, no una debilidad. Te hace más identificable, y es importante mostrar que no existe el programador perfecto o el código perfecto. Probablemente sea bastante refrescante para los nuevos programadores de ver, y me siento humilde como un programador con más experiencia.

Conclusión

Si has querido entrar en la codificación en vivo en Twitch, ¡te animo a que lo pruebes! Espero que esta publicación te haya ayudado si te has estado preguntando por dónde empezar.

Si quieres unirte a mí los domingos, puedes seguir mi canal en Twitch :)

En mi última nota, me gustaría agradecer personalmente a Mattias Johansson por su sabiduría y aliento al principio de mi viaje de transmisión. Fue increíblemente generoso y su canal de YouTube FunFunFunction es una fuente continua de inspiración.

Actualización: mucha gente ha estado preguntando sobre mi teclado y otras partes de mi estación de trabajo. Aquí está la lista completa de lo que uso. ¡Gracias por el interés!