;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL

Topo

Dia da Visibilidade Trans: conheça a embaixadora da Twitch louca por GTA RP

Nikatine: 27 mil seguidores com role playing de GTA e Red Dead Redemption - Arquivo Pessoal/Nikatine
Nikatine: 27 mil seguidores com role playing de GTA e Red Dead Redemption Imagem: Arquivo Pessoal/Nikatine

Por Julia Moioli

Colaboração para START

29/01/2022 04h00

Quando ouviu pela primeira vez que muitos gamers estavam transmitindo suas partidas online, a então engenheira de áudio norte-americana Veronica Ripley ficou maravilhada. "Era uma mistura de programa de televisão com vídeo no YouTube, mas ao vivo", lembra ela.

O ano era 2016. Veronica, que curtia games desde criança e já havia tentado ser atriz em Hollywood, não fazia ideia que, em nove meses, largaria seu emprego para virar streamer em tempo integral: a Nikatine. Pouco tempo depois, se tornaria uma das primeiras embaixadoras trans da Twitch, atualmente com quase 27 mil inscritos.

Nikatine (Veronica Ripley), streamer trans - Reprodução/Twitch - Reprodução/Twitch
Nikatine (Veronica Ripley), streamer trans
Imagem: Reprodução/Twitch


"Pensei comigo mesma: 'Não seria legal se pessoas trans também estivessem fazendo isso?'", lembra ela, que transacionou há quase dez anos, quando as referências trans no universo dos games eram quase inexistentes.

"Procurei e encontrei algumas, mas eu queria que existisse algo bem mais robusto. Decidi que queria ser uma criadora de conteúdo e ajudar a expandir esse espaço."

No início, era tudo mato - e trolls

Dona de um estilo sarcástico e divertido, Nikatine começou com streaming de Overwatch. Depois fez transmissões Kerbal Space Programme (exploração espacial) e Cities: Skylines (construção de cidade).

Com regras de segurança mais fracas do que hoje em dia, o Twitch ainda expunha minorias aos frequentes "hate raids", com mil trolls invadindo chats e falando as coisas mais horríveis imagináveis.

Além disso, quando o Twitch eliminou as Comunidades, ficou mais difícil para jogadores, fãs e streamers LGBTQIA+ se encontrarem (e criar essa rede de apoio é justamente um dos principais ativos para minorias em qualquer rede).

Nos lobbies da paltaforma, Nikatine era chamada de homem por causa da voz e se sentia desconfortável em confrontar os haters, que respondiam de forma agressiva.

"Realmente machucava e, na primeira vez que aconteceu comigo, eu fiquei apavorada. Mas aí aconteceu de novo e de novo e de novo e de novo. Na quinta ou sexta vez eu falei: 'Arrumem um material novo!'", conta gargalhando.

Questionada se mudou alguma coisa em seu estilo de streaming depois das experiências ruins, Nikatine garante que continuou fazendo tudo exatamente da mesma forma.

"Acho que saber como seguir em frente é a principal estratégia para qualquer novo streamer no Twitch, especialmente as minorias como mulheres e pessoas queer. Se você fica presa a isso, compromete todo o seu desempenho. Não desista!"

"Trans do Brasil, me dêem um oi!"

Nikatine cavou com sucesso seu próprio espaço - e o da comunidade trans também. Criou a Transmission Gaming, um servidor que funciona como um espaço tranquilo e seguro para jogar videogame com outras pessoas trans.

A iniciativa cresceu tanto que, atualmente, nas noites semanais de jogos, os usuários são separados de acordo com o continente, para cada um encontrar outro próximo e pagar menos nos jogos.

"Temos ótimos streamers na plataforma; todo mundo que está lá vale a pena", conta Nikatine. "Não conheço nenhum streamer trans brasileiro, mas adoraria. Se você é um streamer trans apareça brasileiro e dê um oi!"

Em 2019, a Twitch reconheceu seu trabalho e a nomeou como embaixadora oficial para promover diversidade na plataforma.

Péssima pilota, ótima narradora

Nikatine confessa que não é das melhores jogadoras. Na verdade, ela dá risada e assume que é bem ruim (um de seus vídeos mais populares é justamente destruindo um avião no Microsoft Flight Simulator).

Em suas transmissões, investe especialmente no que mas curte: role-play. Cria personagens (a maioria queer) e as histórias acabam virando experiências totalmente diferentes dos games originais.

"Eu fazia parte do grupo de teatro quando era criança. Eu quero fazer performances e não tem nada mais performático do que literalmente representar outro personagem", diz ela.

Hoje, faz streamings especialmente de Grand Theft Auto, Conan Exiles e Red Dead Redemption. Tudo com as mais variadas vozes e muita conversa sobre cultura pop.

Graças ao background técnico, também não faltam efeitos tecnológicos. "Eu adoro usar software de streaming e o um tempão fazendo isso", diz ela.

Ela também criou um segundo canal no Twitch, onde só faz tabletop role play, um tipo de RPG em que os participantes descrevem suas ações pela fala. Basicamente, é uma tela verde onde ela cria uma história completa.

Apesar de, à primeira vista, dar a impressão de que seu espaço é focado só em pessoas trans, Nikatine garante que a ideia sempre foi criar conteúdo que pudesse entreter qualquer um.

"Eu acho que normalizar a experiência trans e humanizar as pessoas trans é importante para a nossa aceitação social", diz ela. "Quero que me vejam como uma pessoa comum, com sentimentos e ideias e comidas favoritas. Quero que vejam tudo isso sobre mim para que não pensem que sou um alien. Quero que as pessoas pensem em pessoas trans como quaisquer outras pessoas, então me esforço para criar conteúdo para todos. Mas isso não me impede de contar algumas piadas que pessoas trans pegam mais facilmente."

SIGA O START NAS REDES SOCIAIS

Twitter: https://twitter.com/start_uol
Instagram: https://www.instagram.com/start_uol/
Facebook: https://www.facebook.com/startuol/
TikTok: https://www.tiktok.com/@start_uol?
Twitch: https://www.twitch.tv/startuol