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

"Origins" é uma aventura imensa que resgata o brilho de "Assassin's Creed"

Claudio Prandoni

Do UOL, em São Paulo

26/10/2017 09h20

O primeiro "Assassin's Creed" impressionou bastante quando saiu em 2007, mas foi só na continuação, lançada dois anos depois, que a série realmente estourou e entrou no caminho para virar o sucesso que é hoje em dia.

Desde então, por sete anos seguidos a Ubisoft colocou no mercado pelo menos um grande título da série todo ano, o que foi diluindo muito da novidade e até da qualidade em alguns casos, como o tão criticado "Unity".

VEJA TAMBÉM

O ritmo constante de lançamentos teve uma pausa em 2016 e agora em 2017 somos brindados com "Assassin's Creed Origins", um jogo que não tenta reinventar a série e foca em trazer uma experiência extremamente caprichada e polida - e faz isso muito bem!

Gráficos, controles, história e todos os outros aspectos de "Origins" são tão bem feitos que resgatam com louvor a honra da série e só mesmo alguns exageros deste episódio que acabam aparecendo como problemas pontuais pela aventura.

A ascensão do guerreiro

Como o título já entrega, "Origins" conta como surgiu a Ordem dos Assassinos que vemos em ação em todos os outros games da série. O protagonista é Bayek, um guerreiro que busca vingança contra um grupo de mascarados que conspira contra o Egito. Tudo está muito bem bem legendado e dublado em português do Brasil.

Existe também uma trama no presente, que mostra duas pesquisadoras investigando por conta própria o ado de Bayek e outras figuras do Egito antigo, mas, como já virou tradição desde "Assassin's Creed IV", essa parte fica totalmente em segundo plano.

Assassin's Creed Origins - Nota - Arte/UOL Jogos - Arte/UOL Jogos
Jogo da Ubisoft tem versões para PS4, Xbox One e PC, todas com legendas e dublagem em português do Brasil
Imagem: Arte/UOL Jogos

O fato de o protagonista ser um guerreiro por vocação reforça a principal novidade nos controles do game: o grande foco nos combates. "Origins" apresenta controles mais variados e precisos na hora das lutas, fugindo totalmente de táticas batidas como ficar só usando o contra ataque.

É importante prestar atenção e usar esquivas e defesas na hora certa, alternar entre armas mais rápidas ou pesadas de acordo com o adversário e até utilizar os diferentes tipos de arco e flecha para se dar bem. As lutas agora contam com uma barra de especial que enche conforme você dá golpes e também é um ponto estratégico vital.

Junto com os combates mais precisos chega também um sistema de níveis ao estilo RPG. Completar missões ou explorar novas áreas rende pontos de experiência para subir de nível, o que aumenta a força e vida de Bayek e também dá pontos para evoluir habilidades do herói.

O cardápio de skills é grande e versátil e deixa o jogador criar um guerreiro do estilo que desejar, investindo mais no combate bruto ou então em habilidades furtivas, por exemplo. O jeito RPG de ser vale também para as armas, que têm níveis diferentes de força e características únicas.

Em geral, o sistema de níveis funciona bem e dá uma noção mais precisa de evolução do herói sem mexer demais na fórmula clássica de "Assassin's". Mas o esquema também funciona como uma 'coleira', impondo barreiras um pouco forçadas em certos momentos.

A diferença de níveis pesa muito na hora dos combates e inimigos com apenas dois levels acima já são praticamente impossíveis de bater. Mesmo que você consiga ar algumas missões de nível recomendado maior que o seu abusando da furtividade, tem alguns momentos em que o jogo coloca uma missão com combate praticamente obrigatório pelo caminho, forçando a investir um tempo em sidequests para ganhar XP - o bom e velho grind, tão famoso nos RPGs japoneses.

O peso do excesso

"Assassin's Creed Origins" também promove alguns ajustes práticos nos controles. Para correr você não precisa mais segurar um botão, é tudo na alavanca direcional.

Escalar também ficou muito mais fácil, é só pular e sair subindo. Isso ajuda a deixar o mapa mais ível para mais pessoas, mas me incomoda como "Origins" deixa de lado escaladas mais complicadas, algo muito marcante nos episódios anteriores. Algumas torres e construções exigiam mais atenção do que simplesmente colocar pra frente no direcional, proporcionando um desafio empolgante, quase como se fosse um quebra-cabeça.

Seguindo adiante, destaque também para a águia Senu que pode ser usada a qualquer momento em ambientes externos e funciona como uma espécie de drone, possibilitando uma vista aérea dos cenários e marcando inimigos, itens e outros pontos de interesse pelo mapa.

Aliás, falando no mapa do jogo, ele é absolutamente gigantesco. Dá para notar aqui que a equipe investiu muito tempo colocando missões extras, tesouros para encontrar e outras tantas surpresas pela recriação virtual do Egito.

ACOMPANHE UOL JOGOS NO YOUTUBE!

Os gráficos só reforçam essa imersão e este é disparado o jogo mais bonito da série. Em especial elementos da natureza, como o amanhecer e o pôr-do-sol e o brilho da estrelas, o movimento dos rios conforme barcos e animais cruzam as águas e até as tempestades de areia ao lado das pirâmides, tudo é muito bonito e impressionante. Nas cidades, captura o olhar a imensa quantidade de pequenos detalhes, em especial nos templos, cheios de enfeites e oferendas para os deuses.

Mas aí pesa um pouco também o período histórico escolhido. O Egito antigo é palco para mitos e histórias maravilhosas, elementos culturais únicos que reverberam até hoje, mas também é uma terra marcada pela aridez dos desertos.

Mesmo que as cidades do jogo sejam cheias de atividades, uma parte muito grande do imenso mapa é de desertos vazios, deixando a aventura um pouco repetitiva em alguns momentos, principalmente quando você sai para explorar o mundo.

Fica até a impressão de que a alta contagem de horas da campanha principal (que chega fácil na marca das 20 horas) é um pouco inflada pelas longas jornadas na areia vazia.

Retorno à boa forma

Caprichado em todos os aspectos possíveis, "Origins" só derrapa de leve quando cai em alguns exageros, como facilitar demais as escaladas e oferecer um mapa tão grande, mas tão grande que às vezes parece um tanto quanto vazio.

Fora isso, é uma aventura imensa, envolvente e caprichada, que resgata o brilho da série "Assassin's Creed" e mostra que o mais importante não é ter jogo novo todo ano, mas sim jogos bem feitos.