// 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); }; });

One of the biggest surprises behind Call of Duty 2019 is the name: it’s just Call of Duty: Modern Warfare, with no numbers attached. 

Many expected (and extensively rumored) that this year’s title would be Call of Duty: Modern Warfare 4, but Infinity Ward discussed why they decided against doing that.

During our studio visit at Infinity Ward, Infinity Ward’s Studio Narrative Director Taylor Kurosaki, who was previously a Naughty Dog developer and worked on Call of Duty: Infinite Warfare’s story, explained the decision behind not making Modern Warfare 4 but rather just Call of Duty: Modern Warfare. 

The decision revolved around the fact that they did not want this year’s game to be restricted to the timeline and story aspects of what the original Modern Warfare trilogy had. They wanted to make this new Modern Warfare real. The game had to be realistic, authentic, and gritty, and turn into a game that is very realistic ‘ripped from the headlines’ and is about what’s happening in our world now, allowing players to feel a connection to it because they see it happening in the news today. Modern Warfare is a reimagining of the entire series and what the series can be in terms of authenticity. 

With Modern Warfare trilogy, while it was a modern game, the story arcs that existed were not real in a sense that can be related to events from the world. Modern Warfare 3 ended with Russia attacking America, and Kurosaki said they did not see a path in which that could be transformed into something that is real and relatable while also maintaining the Modern Warfare story arc that existed before it. And in this fictional stories, it’s hard to have a deep connection with what’s happening inside of the story (beyond characters), and Infinity Ward wanted to change that. 

There will be characters from the Modern Warfare series back, like Capitan Price, but Infinity Ward declined to share information on any other potential characters’ being in this game. 

While this is Call of Duty: Modern Warfare in the name, there’s no connections to the story of Call of Duty 4: Modern Warfare, MW2, or MW3. This is a new story, with a new arc for the different characters. It’s not a prequel or a sequel. 

Infinity Ward’s Studio Head also mentioned that there are many original Infinity Ward developers, those who left after MW2, back at the studio working on this game. During our presentation, many of those developers spoke about what they were working on for Modern Warfare and why they were excited to reimagine the series eight years later. Some discussed that it was an incredible experience to be back at the studio to work on reimagining the series that kickstarted many of their careers in the gaming industry. 

As such, this year’s game is just Call of Duty: Modern Warfare. 

For more of our coverage on Call of Duty: Modern Warfare, check out our page for all the news we’ve posted here.

comments below