// 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 staple features of Call of Duty: Modern Warfare this year is that the Infinity Ward team has built a brand new engine for the game, which has been in the works for over five years now.

The studio mentioned during their reveal that the engine was built by the Infinity Ward Poland team, in conjunction with the US team as all studios contributed to building out the new engine.

Infinity Ward noted that the engine was actually first seen in some effects in Infinite Warfare, such as the lighting systems.

Certain parts of the engine went through a full rewrite for Infinite Warfare – such as the lighting engine, while others were retrofitted to somewhat still work with new pieces. That was the moment when you could see the big leap in quality, but we had so much more to do.

Back during the reveal in May, Infinity Ward developers noted that the new engine technology will be shared across the Call of Duty development teams to be used with other Call of Duty games. In an GameInformer interview, Infinity Ward says that they are currently only focused on Modern Warfare, but they have no information on the future titles.

We are currently 100% focused on Modern Warfare, therefore it is a bit too soon to talk about what comes next.

Alongside this, GameInformer asked Infinity Ward if the engine will be supported on next-generation consoles and if the team is prepared for the new consoles, which are set to launch in 2020. The studio believes that the new engine is able to ‘adapt’ to “any future hardware.”

Our technology horizon is quite far ahead and ever adjusting to whatever comes next. The whole point was to rely on highly scalable technology, where algorithms, hardware insight and quality engineering comes first, as opposed to being overly reliant on specific platform features. Obviously during the optimization phase for any shipping title, we do highly focused optimizations to make sure we are taking the best approach for specific hardware, but that is the final polish pass, not the foundation. With this approach, we are very confident in our engine’s ability to adapt to any future hardware.

SOURCE: GameInformer

comments below