Top.Mail.Ru
Истории

Мой первый год программирования в реальном времени на Twitch: уроки и итоги

Истории
Никита Стаценко
Никита Стаценко

Редактор RB.RU

Светлана Зыкова

Программист Microsoft Сьюзан Хинтон не только каждую неделю делает прямые трансляции того, как она работает с кодом, но и ведет блог. В одной из последних записей, которая также появилась на Medium, Сьюзан рассказала, чему научилась за год трансляций на Twitch, и показала читателям свое «рабочее» место.

Мой первый год программирования в реальном времени на Twitch: уроки и итоги

Я начала делать стримы в прошлом июле

Вместо прохождения игр, чем занимается подавляющее большинство стримеров на Twitch, мне хотелось устраивать трансляции своей работы с открытым кодом, которой я занимаюсь в свободное время. В основном я работаю на хардверных библиотеках NodeJS (большинство из которых мои собственные). Учитывая, что у меня уже была ниша на Twitch, почему бы не залезть в еще более узкую нишу, такую как аппаратное обеспечение на JavaScript ;) Я зарегистрировала свой канал и начала регулярно устраивать трансляции.

Конечно, я была не пионером в этом направлении. Одним из первых программистов, писавших код онлайн, трансляции которого я смотрела, был Handmade Hero, затем появились разработчики из Vlambeer, создавшие Nuclear Throne live на Twitch. Я особенно восхищалась Vlambeer.

Заслуга того, что от простого желания делать стримы я перешла непосредственно к действиям, приписывается моему другу Нолану Лоусону. Однажды на выходных я смотрела его трансляцию работы с открытым кодом, это было великолепно. Он все время объяснял то, что делал. Все. Комментировал проблемы на GitHub, исправление багов, отладку кода в ветках, что угодно. Было здорово, как Нолан поддерживал библиотеки с открытым кодом, которые часто и активно используются. Его «open source» жизнь очень отличается от моей.

Вы даже можете увидеть мой комментарий под его видео:

– Мне нравится, спасибо. Вдохновлена и, возможно, тоже буду это делать с самой скучной частью моей работы на open source ;) – Стоит попробовать! Ты удивишься тому, кто находит это интересным :D

Сама я начала этим заниматься примерно через неделю после того, как создала канал на Twitch и кое-как справилась с использованием OBS. Кажется, я работала на Avrgirl-Arduino, на котором все еще часто работаю во время трансляций. Это был суровый первый стрим. Я очень нервничала и накануне вечером допоздна репетировала все, что собиралась делать.

Тем не менее то небольшое количество зрителей, которые пришли в эту субботу, очень меня поддержали, и я стала продолжать. Сейчас у меня более тысячи фоловеров, и добрая их часть — регулярные зрители. Я называю их «семья noopkat».

Мы весело проводим время и мне нравится называть написание кода вживую «мультипользовательским парным онлайн-программированием». Меня по-настоящему трогает доброта и остроумие всех, кто присоединяется ко мне каждые выходные. Одним из самых смешных случавшихся со мной моментов был тот, когда один из постоянных зрителей заметил, что моя плата Arduino не работает с моим программным обеспечением, так как на ней отсутствовала микросхема:

Часто бывало, что после окончания трансляции я находила в почтовом ящике присланный pull request на какую-то работу, про которую говорила, что не хватает времени за нее взяться. Могу честно сказать, что моя работа с открытым кодом изменилась к лучшему благодаря великодушию и поддержке моего Twitch-сообщества.

Я очень многое могу рассказать о всей пользе, которую принес мне стриминг на Twitch, но это скорее рассказ для еще одного поста в блоге. Вместо этого я хотела бы поделиться со всеми, кто захочет сам попробовать программирование вживую, полученными уроками. Недавно несколько разработчиков спросили меня, как начать это делать, и я публикую те же советы, которые давала им!

В первую очередь я дам вам ссылку на руководство под названием «Стриминг и поиск успеха на Twitch», которое мне очень помогло. Оно фокусируется именно на игровых трансляциях в Twitch, но там все же есть релевантные разделы с отличными советами. Рекомендую прочитать его перед тем, как обдумывать какие-то другие моменты создания своего канала (такие, как выбор оборудования или программного обеспечения).

Мои же советы, выведенные из своих собственных ошибок и мудрости и знаний товарищей (вы знаете, кто вы!) стримеров, идут ниже.

Программное обеспечение

Существует множество бесплатных программ для трансляций. Я использую Open Broadcaster Software (OBS), которая доступна для большинства платформ. Мне эта программа кажется действительно интуитивно понятной для настройки и начала работы, но некоторым нужно время, чтобы с ней разобраться. У каждого по-разному! Вот снимок того, как выглядит мой «рабочий стол» в OBS сегодня (кликните для увеличения картинки):

Вы фактически переключаетесь между «сценами» во время трансляции. Сцена — это набор «источников», размещенных слоями и скомпонованных друг с другом. Источниками могут быть вебкамера, микрофон, ваш рабочий стол, вебстраница, окно чата, картинки и так далее. OBS очень мощная.

Cцена рабочего стола выше — это то, где я пишу код в реальном времени, в ней я нахожусь практически все время трансляции. Я использую iTerm и vim, а еще у меня под рукой окно браузера, куда можно переключаться, чтобы посмотреть документацию, триажить на GitHub и так далее.

Нижний черный прямоугольник — моя вебкамера. Так люди видят меня за работой, это создает более личный контакт.

У меня есть несколько «меток» для сцен, многие из которых касаются статистики и информации на верхнем баннере. Баннер просто добавляет некоторой индивидуальности и является удобным постоянным источником информации во время стрима. Это картинка, которую я сделала в GIMP, которую вы импортируете в вашу сцену. Некоторые метки являются статистикой в реальном времени, берущейся из текстовых фалов (как, например, последний фоловер). Еще одна метку я сделала сама, она показывает текущую температуру и влажность в комнате, в которой я нахожусь.

В моих сценах также настроены «оповещения», которые показывают симпатичные баннеры над моей трансляцией, если появляется новый фоловер или кто-то жертвует деньги. Для этого я использую вебсервис Stream Labs, импортируя код его вебстраницы в сцену.  Stream Labs также в реальном времени создает текстовый файл с последними фоловерами, отображающимися на моем баннере.

Еще у меня есть экран ожидания, который я использую перед началом трансляции:

Еще мне нужна сцена, когда нужно ввести какие-то секретные токены или API ключи. Она показывает меня по вебкамере, но закрывает рабочий стол забавной страничкой, и в случае необходимости я могу работать, сохраняя приватность:

Как видите, когда я провожу трансляцию, я не отношусь ко всему слишком серьезно, но мне нравится, когда все хорошо настроено, чтобы зрители получили от стрима наибольшую пользу.

А теперь настоящий секрет: в OBS я обрезаю нижний и правый края своего экрана, сохраняя при этом то же соотношение размеров видео, которое нужно Twitch. Это дает мне место для наблюдения за своими событиями (фоловерами и так далее) снизу и возможность следить и отвечать в чате своего канала справа. Twitch позволяет открывать чат в новом окне, что очень удобно.

Вот, как на самом деле выглядит мой полный рабочий стол:

Я начала делать стримы несколько месяцев назад и с тех пор не оглядывалась назад. Я даже не уверена, понимают ли мои зрители, что у меня все работает вот так. Думаю, они считают само собой разумеющимся, что я все вижу, хотя я и не могу видеть, что там на самом деле транслируется, когда занята программированием!

Вам может быть интересно, почему я использую только один монитор. Потому что работать с двумя мониторами было слишком неудобно, учитывая все, что я делаю во время стримов. Я  это достаточно быстро поняла и остановилась на использовании одного экрана.

Железо

Сначала я использовала оборудование подешевле и стала медленно докупать более хорошее железо, когда осознала, что стримы меня затянут. Когда будете начинать, используйте то, что у вас есть, пусть это даже встроенные в ноутбук камера и микрофон.

Сейчас я пользуюсь вебкамерой Logitech Pro C920 и микрофоном Blue Yeti на стойке с пауком. Оно определенно стоит своих денег, если у вас есть на это средства. Эти штуки серьезно изменили качество моих трансляций.

Я использую большой монитор на 27 дюймов, потому что, как я уже говорила, работать с двумя мне было просто неудобно. Я пропускала сообщения в чате, так как редко смотрела на второй экран, и так далее, и так далее. Ваш подход может отличаться в этом, но мне было нужно, чтобы все было на одном экране, чтобы следить за всем, что происходит.

Вот, в общем-то, и все по железу; у меня не слишком сложный набор.

Если вам интересно, мой стол выглядит достаточно обычно, кроме этого слишком нависающего микрофона:

Советы

Для этого последнего раздела я выбрала несколько общих советов, которые сделали мои трансляции лучше и приятнее в целом.

Панели

Потратьте некоторое время на создание хороших панелей. Панели — это небольшие прямоугольники с каким-то содержимым внизу страницы канала каждого стримера. Мне они напоминают новую форму профиля на MySpace (lol, на самом деле). На панелях могут быть правила чата, информация о времени ваших трансляций, информация о вашем компьютере и оборудовании, вашей любимой породе кошек, всем, что создает ваши характерные черты. Поищите идеи на других каналах (особенно на популярных)!

Пример одной из моих панелей: 

Чат

Чат чрезвычайно важен. Вам будут постоянно задавать одни и те же вопросы, так как люди присоединяются к трансляции на середине, поэтому очень полезно иметь в чате «макросы». Самый частый вопрос, который задают, когда я программирую: «Над чем ты работаешь?». Для этого у меня в чате есть короткие команды, которые я сделала с помощью Nightbot. Он вставит объяснение того, что я заблаговременно записала, при вводе короткой однословной команды вроде !whatamidoing.

Когда люди задают вопросы или оставляют хорошие комментарии, отвечайте им! Поблагодарите, произнесите их никнейм, и они очень оценят внимание и признание. СУПЕРтрудно оставаться на связи, когда вы только начинаете стримить, но со временем  многозадачность станет даваться легче. Постарайтесь на несколько секунд отвлекаться на новые сообщения в чате каждые пару минут.

Во время программирования объясняйте, что вы делаете. Побольше разговаривайте. Шутите. Даже если я зависла, я скажу: «О, черт, я забыла, как использовать этот метод, пжжите, я загуглю, ха-ха-ха!» И люди всегда милы и иногда даже читают вместе с вами и помогают. Это весело, увлекательно и затягивает людей продолжать смотреть.

Я быстро теряю интерес, если смотрю трансляции, где стример сидит и молча строчит код, игнорируя чат и оповещения о новых фоловерах.

Скорее всего, 99% людей, которые найдут ваш канал, будут дружелюбны и любопытны. Иногда ко мне забредает случайный тролль, но инструменты модерации, которые предоставляют Twitch и NightBot, очень помогают с ними бороться.

Во время подготовки

Автоматизируйте все, что возможно. Я пользуюсь терминалом iTerm, он позволяет сохранять расположение окон и размер шрифта, так что позже можно восстановить все, как было. У меня одно расположение окон для трансляций и другое для обычной работы. Это очень сильно экономит время. Запускаешь одну команду и все стало нужного размера и в нужном месте, готовое к работе.

Существуют и другие приложения для автоматизации расположения всех ваших окон, попробуйте найти, какое вам подойдет.

Сделайте у себя в терминале и редакторе кода размер шрифта достаточно большим, чтобы все видели.

Регулярность

Будьте регулярны, придерживайтесь графика. Я делаю стримы только раз в неделю, но всегда в одно и то же время. Дайте людям знать, если не сможете провести трансляцию в обычное время. Это привлекло мне постоянную аудиторию. Многим людям нравится постоянство, это как зайти к другу. Вы в социальном кругу своего сообщества, относитесь к нему соответственно.

Я хотела бы делать трансляции чаще, но знаю, что из-за путешествий не могу посвятить этому больше времени, чем раз в неделю. Я пытаюсь придумать способ стримить в высоком качестве, находясь в пути, или, возможно, просто иногда устраивать случайные чаты и оставить программирование для регулярных воскресных трансляций. Я все еще пытаюсь определиться!

Неловкость

Сперва вы будете странно себя чувствовать. Вы будете нервничать от того, что люди наблюдают, как вы программируете. Это нормально! Я очень сильно волновалась в начале, хотя у меня даже был опыт публичных выступлений. Я чувствовала себя так, словно мне негде спрятаться, и меня это пугало. Мне казалось, все будут думать, что мой код ужасен и что я плохой разработчик.

Это типичные мысли, которые мучают меня всю мою карьеру, в этом нет ничего нового. Я знала, что я не могу спокойно реорганизовать код перед загрузкой на GitHub, что, как правило, гораздо безопаснее для моей репутации разработчика.

Проводя живые трансляции на Twitch, я многое поняла о своем стиле программирования. Я поняла, что я определенно тип «заставь работать, затем сделай читаемым, затем сделай быстрым». Я больше не репетирую накануне вечером (бросила после трех или четырех трансляций в самом начале), поэтому на Twitch я пишу достаточно грубый код и должна с этим мириться.

Свой лучший код я пишу, когда остаюсь наедине со своими мыслями, не слежу за чатом и не разговариваю вслух. Я забываю то, что использовала тысячу раз, и делаю глупые ошибки почти в каждом стриме. Для большинства это не является продуктивной обстановкой, чтобы писать свой лучший код.

Мое сообщество в Twitch никогда меня не судит за это и очень помогает. Люди понимают, что мне приходится делать много всего одновременно, и дают отличные практические советы и предложения. Иногда они меня выручают, а иногда мне приходится объяснять, почему эти предложения не сработают. Это действительно похоже на обычное парное программирование!

Думаю, такой подход «без всяких прикрас» — это сила, а не слабость. Это делает вас более реальным, близким. Важно показать, что нет такого понятия, как идеальный программист или идеальный код. Это, возможно, ободряет новых программистов и приземляет меня, как более опытного кодера. 

Заключение

Если вам когда-нибудь хотелось начать программировать в реальном времени на Twitch, я призываю вас попробовать! Надеюсь, эта статья поможет, если вы интересовались, с какой стороны к этому подойти.

Если хотите присоединиться ко мне по воскресеньям, можете зафоловить мой канал на Twitch :)

И последнее. Я хотела бы лично поблагодарить Маттиаса Йохансона за его мудрость и поддержку на ранних этапах моего пути в стриминге. Он был невероятно добр, и его канал FunFunFunction на YouTube является для меня постоянным источником вдохновения.

Дополнение: несколько ребят спрашивали меня о клавиатуре и других частях моей рабочей станции. Вот полный список того, что я использую. Спасибо за интерес! 

Источник.

Хочешь быстро стартовать в IT? Выбирай направление для обучения в каталоге курсов программирования.




Материалы по теме:

Видеостриминг как феномен: может ли на этом заработать бизнес?

В титрах к новому сезону «Кремниевой долины» полно технологических шуток, которые вы, скорее всего, пропустили

«Это будет просто бомба»: как появился Facebook Live

Почему Amazon является самой инновационной компанией 2017 года

Фото на обложке: iunewind/Depositphotos.

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Twitch: как решить проблему с монетизацией и размещаться на платформе в условиях ограничений
  2. 2 «Стартап-Школа» от Y Combinator. Как создавать продукт?
  3. 3 Цифра дня. 49 смертей во время селфи
  4. 4 Программирование 2.0: как ИИ-ассистенты упрощают разработку
  5. 5 Как геймдев-стартапам сократить расходы и сроки за счет опенсорса
DION
Что ждет рынок корпоративных коммуникаций в 2024 году?
Подробнее