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

CEO da SEGA ganhou mais que da Nintendo em 2021; veja ranking de salários

Shuntaro Furukawa, presidente da Nintendo - Divulgação/Nintendo
Shuntaro Furukawa, presidente da Nintendo Imagem: Divulgação/Nintendo

De START, em São Paulo

17/01/2022 10h52

Quanto ganha o CEO de uma empresa de games? Qual delas dá o melhor salário? Nintendo? Electronic Arts? Talvez Ubisoft?

Errado. Comprovando o poder crescente dos jogos mobile, o CEO atualmente melhor remunerado no segmento é Robert Antokol, da Playtika, responsável por vários títulos de cassino (como Caesars Slot e World Series Poker) e outros títulos como Pirate Kings e Best Friends Stars.

Segundo o site GamesOne, em 2021, Antokol embolosou US$ 372 milhões (entre salário, bônus e outras compensações). Isso dá uma média de US$ 186 mil por hora.

A título de comparação, o presidente da Nintendo, Shuntaro Furukawa, recebeu US$ 2,8 milhões. O CEO da Ubisoft, Yves Guillemot, "apenas" US$ 925 mil. Confira o ranking completo mais abaixo.

Por incrível que pareça, essas informações não são difíceis de conseguir. Essas empresas são de capital aberto, ou seja, têm ações que podem ser compradas por outras pessoas. Nesse caso, um comitê de acionistas toma certas decisões - inclusive quanto o CEO deve receber. E, por lei, esse tipo de informação tem que ser pública para qualquer investidore (ou potencial investidor).

Entre as empresas de jogos tradicionais, o CEO mais bem pago do ano ado foi o polêmico Robert Kotick, da Activision Blizzard, com US$ 154 milhões, no total. No ranking geral, ele ficou em segundo lugar, atrás apenas Antokol.

Vale lembrar que Kotick está envolvido nos múltiplos escândalos de assédio e cultura corporativa tóxica da companhia. Seus funcionários chegaram a pedir sua demissão.

30 salários de CEO dos games em 2021

  1. Robert Antokol, da Playtika: US$ 372 milhões
  2. Robert Kotick, da Activision Blizzard: US$ 154,6 milhões
  3. Andrew Paradise, da Skillz: US$ 103,3 milhões
  4. Andrew Wilson, da Electronic Arts: US$ 34,7 milhões
  5. Frank Gibeau, da Zynga: US$ 32 milhões
  6. John Riccitiello, da Unity Software: US$ 22 milhões
  7. Strauss Zelnick, da Take-Two Interactive: R$ 18,1 milhões
  8. Taek-Jin Kim, da NCSoft: US$ 15,6 milhões
  9. Min-Liang Tan, da Razer: US$ 10,4 milhões
  10. Debbie Bestwick, da Team17: US$ 10,2 milhões
  11. Nick Earl, da Glu Mobile: US$ 8,6 milhões
  12. Owen Mahoney, da Nexus: US$ 8,3 milhões
  13. George E. Sherman, da GameStop: US$ 7,6 milhões
  14. David Baszucki, da Roblox: US$ 6,7 milhões
  15. Jorgen Madsen Lindermann, da Modern Times Group: US$ 4,3 milhões
  16. Stéphane Roussel, da GameLoft: US$ 3,6 milhões
  17. Hajimi Satomi, da Sammy SEGA: US$ 2,9 milhões
  18. Shuntaro Furukawa, da Nintendo: US$ 2,8 milhões
  19. Andrew Paul, da Corsair: US$ 2,7 milhões
  20. Juergen Stark, da Turtle Beach: US$ 2,2 milhões
  21. Joshua Wilson, da SciPlay: US$ 1,6 milhão
  22. Andrew Day, da Keyword Studios: US$ 1,3 milhão
  23. Frank Sagnier, da Codemasters: US$ 1,2 milhão
  24. Frédéric Chesnais, da Atari: US$ 1,1 milhão
  25. Adam Kcinski, da CD Projekt: US$ 1 milhão
  26. Marcin Iwinski, da CD Projekt: US$ 1 milhão
  27. Yves Guillemot, da Ubisoft: US$ 925 mil
  28. Dmitry Kozko, da Motorsport Games: US$ 737 mil
  29. Alain Falc, da Nacon: US$ 727 mil
  30. Raffaele Gallante e Abramo Gallante, da Digital Bros: US$ 712 mil (cada)