// initialize jwplayer var playerInstance = jwplayer('player'); // player dom elements var playerContainerEl = document.querySelector('.player-container'); // returns video player position from top of document function getElementOffsetTop(el) { var boundingClientRect = el.getBoundingClientRect(); var bodyEl = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || bodyEl.scrollTop; var clientTop = docEl.clientTop || bodyEl.clientTop || 0; return Math.round(boundingClientRect.top + scrollTop - clientTop); } // returns the current y scroll position function getScrollTop() { var docEl = document.documentElement; return (window.pageYOffset || docEl.scrollTop) - (docEl.clientTop || 0); } // configure jwplayer instance playerInstance.setup({ autostart: true, playlist: 'https://cdn.jwplayer.com/v2/playlists/mYdavspX', primary: 'html5', setFullscreen: true, width: '100%' }); // when jwplayer instance is ready playerInstance.on('ready', function() { var config = playerInstance.getConfig(); var utils = playerInstance.utils; // get height of player element var playerHeight = config.containerHeight; // flag determining whether close has been clicked var closed = true; // CHANGED // flag determing whether player is playing var playing = false; // ADDED // eventhandler for when close button is being pressed document.getElementsByClassName('icon-close')[0].addEventListener('click', () => { closed = true; onScrollViewHandler(); }); playerInstance.on('play', function() { closed = false; playing = true; // ADDED }).on('pause', function () { playing = false; // ADDED }).on('adPlay', function() { closed = false; // ADDED playing = true; // ADDED }).on('adPause', function() { playing = false; // ADDED }); // get player element position from top of document var playerOffsetTop = getElementOffsetTop(playerContainerEl); // set player container to match height of actual video element playerContainerEl.style.height = playerHeight + 'px'; // below we handle window scroll event without killing performance function onScrollViewHandler() { var minimized = getScrollTop() >= playerOffsetTop; if (closed && minimized) { minimized = false; jwplayer().pause(); playing = false; // ADDED } else if (!minimized && !playing) { closed = true; // ADDED } utils.toggleClass(playerContainerEl, 'player-minimize', minimized); // update the player's size so the controls are adjusted playerInstance.resize(); } // namespace for whether or not we are waiting for setTimeout() to finish var isScrollTimeout = false; // window onscroll event handler window.onscroll = function() { // skip if we're waiting on a scroll update timeout to finish if (isScrollTimeout) return; // flag that a new timeout will begin isScrollTimeout = true; // otherwise, call scroll event view handler onScrollViewHandler(); // set new timeout setTimeout(function() { // reset timeout flag to false (no longer waiting) isScrollTimeout = false; }, 80); }; });

Infinity Ward’s Co-Design Director spoke with the Official PlayStation Magazine in an interview for their October 2019 issue, which is available here.

Some details from that interview were shared from WCCFTech website, and it’s a quote about balancing in the overall game for players who play Call of Duty.

Infinity Ward Design, Geoff Smith, who was part of the studio during Call of Duty 4 and Modern Warfare 2 development, says that recent Call of Duty games have put a huge emphasis on trying to perfectly balance everything out that the fun has been removed in some cases for all players. He even mentioned it could be because of esports that the games have become so micro balanced for every little difference.

I think somewhere along the lines these games have tried to get so balanced, maybe it was esports, it’s kind of just boiled the fun out of the things when you try to super-balance everything. We’re just having fun. We want to just be able to climb around and have fun interactions.

Infinity Ward is focusing on the fun for Call of Duty: Modern Warfare and finding different ways to solve some things versus straight changing up weapon balance.

If I can creatively problem-solve this firefight, instead of having me forced down the hallway, I can use my brain better. I can get a different advantage. And it’s kind of a, you know, a puzzle-platform approach. We just want to create more dynamic interaction.

We’ve boiled it down to this micro level of one-on-one combat, and what we can do to add variability to the outcome of that, from climbing around you to running inside and closing a door that causes you to make a choice, you’re going to run in and enter that building somehow.

The competitive community may not agree with this stance, as those players want every item to be perfectly balanced in a way that makes all weapons on a leveled playing field. Infinity Ward has stated that there is esports rules and features set in Call of Duty: Modern Warfare, but the details on those have not been announced yet. The esports features are usually showcased closer to launch.

comments below