;(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
OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Rainbow Six: sucesso brasileiro no competitivo pode impactar jogador casual

Troféu Six Invitational - Divulgação/Ubisoft
Troféu Six Invitational Imagem: Divulgação/Ubisoft

Colunista do UOL

09/02/2022 04h00

Começou na última terça (8) o Six Invitational, torneio mundial que abre o cenário competitivo internacional de Rainbow Six: Siege no ano.

Após 2021, dá para dizer que ele tem um gostinho especial para o Brasil. Emplacamos os três primeiros colocados da última edição: a campeã Ninjas in Pyjamas, a vice Team Liquid e a terceira colocada MIBR.

Esse desempenho não só colocou os brasileiros nos holofotes mas também ajudou a dar e à experiência casual do R6. Explico.

O FPS da Ubisoft tem uma base de jogadores consolidada e, principalmente, fidelizada, mas que demonstrou insatisfação com diversos aspectos do game nos últimos tempos. Fortíssimo em consoles, o título recebeu reclamações pela falta de balanceamento, novos modos de jogo e, principalmente, combate aos hackers - ainda mais em elos mais altos.

O ano mágico de 2021 (que também contou com Mundiais por parte da Team oNe e da FaZe Clan) colocou o Brasil como epicentro mundial de R6. Mas isso também dá atenção à sua comunidade, que é extremamente vocal.

Normalmente, o que se vê é o cenário competitivo ecoando a briga dos jogadores casuais pelo que julgam mais adequado para o game. Afinal, os pro players são uma camada extremamente restrita de uma base bem maior de players - independentemente do gênero do jogo.

32 brasileiros no Invitational

"O Six Invitational é a maior celebração do ano para comunidade de Rainbow Six Siege. Além de ser o principal torneio de eSports do nosso calendário competitivo, com a maior premiação e com as melhores organizações e jogadores de eSports do mundo, é o momento mais importante do ano, em que compartilhamos com a comunidade as principais novidades do jogo para o próximo ano", afirmou Maurício Lima, diretor de eSports da Ubisoft Brasil, em entrevista ao GGWP.

Das 20 equipes na disputa do Six Invitational, seis são brasileiras. Somos o país com mais jogadores presentes na Suécia: 32 (um deles, Leonardo "Kyno", faz parte do time norte-americano Oxygen Esports). Os EUA têm 20 players. França e Reino Unido, somados, 12.

"As equipes brasileiras simplesmente ganharam todos os torneios internacionais em 2021, feito que nunca aconteceu em nenhuma outra modalidade de eSports no país. Este feito traz um sentimento de orgulho à nossa comunidade", relembra Maurício.

"Ganhamos também o Prêmio eSports Brasil, que trouxe ainda mais visibilidade para o Rainbow Six: Siege. Resultados como esse ajudam ainda mais o crescimento do cenário de eSports no Brasil."

Independentemente do desempenho nacional nesta edição do Invitational, o trabalho a longo prazo do Rainbow Six: Siege no país mostra como os eSports podem fazer a diferença para a evolução do jogo como um todo, incluindo a experiência casual. Sabemos a força da comunidade brasileira quando unida em torno de qualquer ideal. Nosso país em alta, seja qual for a modalidade, é motivo para comemorar para qualquer publisher.

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

** Este texto não reflete, necessariamente, a opinião do UOL