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

10 anos de Limbo: um dos indies mais influentes da década

Dez anos atrás, um garotinho escapou das garras de uma aranha e mudou o desenvolvimento de jogos indie para sempre - Divulgação/Playdead
Dez anos atrás, um garotinho escapou das garras de uma aranha e mudou o desenvolvimento de jogos indie para sempre Imagem: Divulgação/Playdead

Tiago Alcantara

Colaboração para o START

24/07/2020 04h00

Demora muito pouco tempo em uma conversa com fãs de indies até que o nome "Limbo" apareça no papo. Lançado em 2010, dentro do serviço Xbox Live Arcade, por um pequeno estúdio da Dinamarca, o game é listado como um dos melhores do ano e figura até mesmo em listas de melhores jogos de todos os tempos. Alguns apontam a experiência desenvolvida pelo time da Playdead como o encontro entre os jogos eletrônicos e a arte.

Aproveitando o aniversário de dez ano do jogo independente, o START revisitou a experiência. Apesar de criada em um país nórdico, o game lida com temas universais, como: conviver com uma perda e solidão. E influenciou uma série de outros games, seja por conta de sua narrativa simples ou na criação de experiências com uma estética cheia de referências ao ado.

Confira algumas das características que fazem de "Limbo" um jogo que vale a pena ser lembrado.

A arte da atmosfera

LIMBO 1 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

Um dos pontos que pega os jogadores de cara em Limbo é sua atmosfera. O game tem uma apresentação em tons de preto e branco, usando iluminação, efeitos de granulados típicos de filmes antigos e sons ambientes para envolver os jogadores.

No controle de um garoto que acorda em um ambiente estranho e vai descobrindo como interagir com o mundo a sua volta, "Limbo" guarda semelhanças visuais com os filmes noir e obras do expressionismo alemão. Por conta de toda essa estética, o game já foi apontado como exemplo de games como forma de arte. Nada mal, não é mesmo?

Uma experiência minimalista

LIMBO 2 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

Outro ponto que salta aos olhos após o contato inicial com "Limbo" é quão simples o game pode ser. Além dos direcionais, o jogador usa apenas dois botões durante toda a jornada. Um deles permite que o protagonista pule e outro tenha interação com objetos nos cenários. Ok, alguns podem dizer que há outros games semelhantes na economia de botões.

No entanto, o que estamos apontando aqui se reflete também na ausência de falas ou textos no game, nos sons que são utilizados e até mesmo na ausência de cores. Tudo para imersão dos jogadores nesse espaço que é um limbo, ou seja, uma lugar esquecido e que não estaria nem no caminho do paraíso ou do inferno. Mas, não se engane, a noite é escura e cheia de perigos em "Limbo".

Um indie contra a rapa

LIMBO 3 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

Provavelmente, se você pesquisar pelos melhores games de 2010 pode se surpreender ainda mais com "Limbo". Isso porque o indie dinamarquês conseguiu alcançar destaque e ser listado com um dos melhores jogos em um ano que teve lançamentos do quilate de "Red Dead Redemption", "Mass Effect 2", "Fallout: New Vegas" e "Super Mario Galaxy 2".

Sim, só jogão. Isso sem falar do próprio mercado indie que recebeu o lançamento de outro clássico entre os independentes: "Super Meat Boy". Fale sobre moral, não é mesmo?

Curto e profundo

LIMBO 4 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

Um dos ponto que geraram algumas críticas para o game da Playdead é sua duração. "Limbo" não leva mais do que 3 horas para ser finalizado, a não ser que você empaque em algum de seus quebra-cabeças.

No entanto, o tempo acabou provando que o time responsável pelo game estava certo: não só é o suficiente para que você se envolva com a história como acabou influenciando outros indies, que apostam em um produto "curto", mas com uma experiência memorável.

Detonado para quê?

LIMBO 5 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

Por falar nos quebra-cabeças de "Limbo", esse é um de seus pontos altos. Com o tempo, os jogadores vão entendendo o que é necessário para ar cada um de seus desafios e os benefícios de ser curioso em relação ao ambiente no jogo. O indie não precisa de um detonado ou coisa do tipo, já que vai estimulando a inventividade sem nunca dar um o maior do que o que jogador consegue fazer. Traduzindo: se você empacou em algum momento, tente voltar um pouco no mapa, ver o que já fez e tente de novo.

Esse método fez os criadores caracterizarem o game como uma experiência de "tentativa e morte". Ou seja, eles esperam que o jogador erre na primeira, aprenda e volte para resolver o puzzle. Isso lembra algo como "Celeste", "Light Fall" ou o próprio "Super Meat Boy", não é mesmo?

Para quem quer repetir a dose

LIMBO 6 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

Por falar em games que de alguma forma "bebem na fonte" de "Limbo", a lista é bem variada. De cara, é possível citar nomes, como: "Little Nightmares", "Never Alone", "Gris" e "Brothers: a tale of two sons".

Cada um possui alguma característica em comum com o game da Playdead, seja a atmosfera sombria de "Little Nightmares", o uso de uma mecânica side-scroller 2D de "Never Alone" ou o clima de jornada de auto-descobrimento da protagonista presente em "Gris". Ah, claro, se você quiser algo da própria Playdead, pode conferir "Inside" que é o segundo game do estúdio e tem várias semelhanças com seu "irmão mais velho".

Playdead e a insatisfação corporativa

LIMBO 8 - Divulgação/Berlingske - Divulgação/Berlingske
Imagem: Divulgação/Berlingske

"Limbo" nasceu da insatisfação de seu diretor, Arnt Jensen com seu emprego como designer conceitual. Os primeiros rabiscos do ambiente do game foram a forma encontrada pelo artista visual de escapar do "mundo corporativo". Depois de postar um trailer do que seria o game - que ele não poderia programar sozinho - Jensen conheceu Dino Patti, que também não andava lá muito feliz com seu emprego. Surgia dessa amizade a Playdead, que também se expandiu como negócio em torno de "Limbo".

Sucesso de crítica e de venda

LIMBO 7 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

O game foi financiado em parte por uma bolsa do Nordic Game Program, o que ajudou no desenvolvimento inicial. O indie teve seu lançamento em julho de 2010 no serviço Xbox Live Arcade, na época para Xbox 360. Com o sucesso o jogo dinamarquês figurou como terceiro mais vendido de seu ano no serviço da Microsoft e teve uma arrecadação de US$ 7,5 milhões.

Em novembro de 2011, o game já havia vendido mais de 1 milhão de cópias entre PC, PlayStation 3 e Xbox 360. O que faria com que a Playdead não apenas ampliasse a lista de plataformas para o game, como também fosse capaz de comprar suas ações de volta dos investidores, garantindo a liberdade de lançamento de novos games. Em 2014, a empresa apresentava ao mundo "Inside", seu segundo game, que seria lançado dois anos depois:

O novo game da Playdead

LIMBO 9 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

O terceiro game do estúdio nórdico ainda não tem nome, mas será desenvolvido em uma perspectiva 3D, ao contrário de seus antecessores. O novo jogo da Playdead deve ser publicado pela Epic Games, que promete garantir a liberdade criativa do estúdio, em troca de metade de recuperar o investimento e ficar com metade dos lucros do tal jogo.

Ainda não se sabe muito sobre a próxima aventura, a não ser que ela deve se ar em "algum lugar do universo" e terá um clima "sci-fi". Se o time de desenvolvedores vai conseguir repetir a aclamação de "Limbo" e "Inside", é assunto para um outro papo.

Clássico e ível

LIMBO 10 - Divulgação/Playdead - Divulgação/Playdead
Imagem: Divulgação/Playdead

Além das plataformas citadas, "Limbo" está disponível também para Android, iOS, Mac, PlayStation 4, Xbox One, Nintendo Switch, Linux e PlayStation Vita. Sim, você pode jogar o game em praticamente qualquer plataforma atual - seja em consoles ou nos computadores com os mais diversos sistemas operacionais. Se você ainda não experimentou, faça esse favor a si mesmo e confira.

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: http://vm.tiktok.com/Rqwe2g/
Twitch: https://www.twitch.tv/start_uol