;(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

Sou gamer desde criancinha, mesmo sem "carteirinha" para provar

jossdim/Getty Images/iStockphoto
Imagem: jossdim/Getty Images/iStockphoto

Colunista do UOL

29/09/2020 08h00

Já não me lembro quando me apresentaram computadores e videogames, mas posso garantir para você que eu ainda usava fraldas. Acredite se quiser, mas minha vida gamer começou antes mesmo de eu saber ler e escrever. Aliás, se estou escrevendo isto para vocês hoje, a culpa é dos jogos.

Com a minha insistência em desligar o computador pela tomada, meus pais decidiram me ensinar a usá-lo. Antes disso eles perderam vários trabalhos —não que eu fosse arteira, ou só um pouco, mas infelizmente não existia salvamento automático no Windows 95. Aliás, você sabe o que era o Windows 95?

Para aquela menina que vivia desligando o computador até que eu me saí bem: pouco tempo depois estava lá aprendendo alfabetização, com aqueles CDs de games que eram vendidos nos mercados, bancas e lojas de departamento. Amava o dia de compra, eu sempre queria voltar com um CD novo.

Os anos foram ando e eu fui ficando cada vez mais viciada. O meu coração sempre se dividia entre o computador, onde eu me divertia horrores com os amados jogos da Editora Digerati, daqueles CDs que tinham mil jogos em cada um, e os consoles Polystation (sim, o da fita no meio), Mega Drive e o meu queridinho Master System. Que saudades de Alex Kidd e Sonic.

No ensino fundamental, adorava comentar com os meus colegas de classe sobre os jogos novos que descobria e as aventuras que vivia diariamente, mas para minha surpresa quase ninguém ligava ou entendia a minha empolgação

O kit completo do Polystation, com fonte e controles - Flavio Florido/UOL - Flavio Florido/UOL
E aí, você também já teve um Polystation?
Imagem: Flavio Florido/UOL

Como toda criança descontrolada, eu sempre achava táticas de achar tempo para jogar um pouquinho mais. Algumas delas eu vou revelar aqui, mas recomendo fortemente que não repitam em suas casas. Eu fingia dormir para voltar a jogar de madrugada, e chegava até a deixar meu videogame ligado durante dias para não perder aquele save do jogo. A tática matadora era colocar um pano ou o meu cobertor em cima do videogame para ninguém descobrir que estava ligado.

No ensino fundamental, adorava comentar com os meus colegas de classe sobre os jogos novos que descobria e as aventuras que vivia diariamente, mas para minha surpresa quase ninguém ligava ou entendia a minha empolgação.

Conforme fui ficando adolescente migrei para os jogos online e novamente descobri outro mundo. Lembro de como era incrível jogar com pessoas de todo o mundo, mas também comecei a receber cobrança de meninos que adoravam pedir minha "carteirinha gamer", mas não tinham jogado a metade dos jogos que joguei. Eu não conseguia entender o por quê disso acontecer e me afastei da internet para voltar a jogar offline —acabei me fechando no meu mundo para me proteger.

Muitos anos depois, já na vida adulta, eu comecei a refletir sobre o meu espaço como mulher negra que sempre teve o a tecnologia desde criança e acabei entendendo o motivo pelo qual minhas colegas de classe não ligavam para a minha animação com os games: ou era falta de o, ou porque esse espaço de se conectar com jogos nunca foi dado a elas.

Comecei a receber cobrança de meninos que adoravam pedir minha 'carteirinha gamer', mas não tinham jogado a metade dos jogos que joguei

No período da faculdade, decidi voltar a jogar online novamente e percebi que que pouca coisa tinha mudado desde que tinha deixado esses espaços. Isso me fez refletir sobre o que poderia ser feito para melhorar a relação afetiva de mulheres com jogos e o lema "Se jogo, logo sou gamer" se tornou ainda mais forte em mim.

Acredito que ali a Raquel Motta estava se tornando uma desenvolvedora de jogos, cheia de vontade de mudar coisas. Mas, pensando bem, eu sinto que essa vontade de mudar as coisas sempre estava dentro de mim, desde a época das fraldas.