Příští Xbox má hardware od AMD, potvrdil Microsoft. Bude to víc než jedno zařízení a bude mít i Steam

Sdílet

Microsoft Xbox Series X Autor: Microsoft
Microsoft Xbox Series X
Xbox bude Windows a Windows bude Xbox. Nová generace konzole bude tvořit společný ekosystém i s herními počítači všech možných výrobců, Microsoft ale pracuje i na vlastních zařízeních, která opět budou běžet na čipech od AMD.

Před nějakou dobou vzkvétaly spekulace o tom, že Microsoft opustí ve svých konzolích čipy od AMD – tipovalo se, že se tento byznys pokusí silou přebrat Intel, nebo se věštil přechod na procesory ARM. Těmto dohadům je teď konec. Microsoft oficiálně potvrdil práce na nové generaci konzolí a sdělil přitom, že i tentokrát je připravuje s AMD. Jiné a přelomové budou ale z odlišného důvodu a spolupráce s AMD možná půjde dál než doposud.

Možná leccos naznačilo už nedávné odhalení „Xbox“ handheldů ROG Ally, které jsou ve skutečnosti vyráběné Asusem, ale se softwarovou vrstvou od Microsoftu, která z nich činí hybrid obyčejného herního handheldu s Windows a konzolové platformy.

Kapesní Xbox od Asusu? Nové konzole ROG Xbox Ally běží na Windows šitém na míru handheldům Přečtěte si také:

Kapesní Xbox od Asusu? Nové konzole ROG Xbox Ally běží na Windows šitém na míru handheldům

Partnerství s AMD

Prezidentka divize Xbox Sarah Bond včera oficiálně oznámila či potvrdila, že Microsoft „spolupracuje s AMD ve víceletém strategickém partnerství a obě firmy společně vyvíjejí čipy pro celé portfolio různých zařízení, mezi kterými je i budoucí generace konzolí Xbox“. O těchto zařízeních pak speciálně říká, že jsou cílená do našich obývacích pokojů (tedy ve stylu tradičních konzolí) i do našich rukou, což je jasný odkaz na herní handheldy typu Steam Deck, ROG Ally nebo konzole Nintendo Switch. Xbox tedy má být i mobilní herní platforma.

Je tím tedy potvrzeno, to, že příští konzole bude zase zřejmě mít „semicustom APU“ od AMD poskytující jak procesorovou, tak GPU část – ta tedy budou mít architekturu příbuznou s grafikami Radeon. AMD by teoreticky mohlo místo x86 jader ze svého vlastního vývoje licencovat pro tyto čipy jádra ARM, nicméně to je asi spíše méně pravděpodobná možnost než to, že budou využitá jádra x86. Také Sony PlayStation 6 je dle dosavadních zpráv poháněná čipem, který pro ni vyvíjí AMD, takže u obou platforem zvítězila kontinuita a nedošlo k nějaké „disrupci“, v jejímž rámci by tento byznysy převzala Nvidia, ARM nebo třeba Intel.

Prohra Intelu: Zakázka na PlayStation 6 mu mohla pomoct z bryndy, bude v ní ale hardware od AMD Přečtěte si také:

Prohra Intelu: Zakázka na PlayStation 6 mu mohla pomoct z bryndy, bude v ní ale hardware od AMD

Nový Xbox by zřejmě měl být splynutím konzole a Windows do jedné platformy

Ony zmínky o portfoliu zařízení ale podle všeho potvrzují změnu strategie Microsoftu, o níž se už delší dobu spekuluje nebo otevřeně mluví. Xbox zřejmě přestane být ostře vymezenou platformou definovanou v podstatě jedním zařízením (byť v posledních generacích s více konfiguracemi). Slovy Microsoftu má Xbox umožňovat hrát všechny hry, které si vyberete, s lidmi, které si vyberete, kdekoli budete chtít. Hardwarovým základem pro toto hraní už nemá být jen striktně definované konzolové zařízení, ale i handheldy, cloudové streamování a zejména osobní počítač.

Jinými slovy, Microsoft má zřejmě v plánu to, že příští Xbox nebude tak úplně konzole, ale spíše rozšíření či adaptace herního ekosystému Windows a v širším smyslu „PC“ jako herní platformy – a to zahrnuje nejen zařízení vyráběná Microsoftem, ale i ostatními výrobci počítačů.

ROG Xbox Ally

ROG Xbox Ally

Autor: Microsoft

Když tedy Microsoft mluví o kolaborativním vývoji čipů s AMD, může to mít hlubší dopady. Tato spolupráce nejspíš zasahuje do APU (procesorů s výkonným integrovaným GPU) pro handheldová herní zařízení, která asi budou koncepci Microsoftu více uzpůsobená. Ale teoreticky by mohla nějak ovlivnit i běžné procesory pro notebooky a stolní počítače. Možná podobně jako když procesory AMD převzaly bezpečnostní procesor Pluton dle koncepce Microsoftu, ale v dalších oblastech.

V tomto modelu by zřejmě stále mohlo existovat rozlišení mezi konzolí Xbox a herním osobním počítačem, ale hry „pro Xbox“ asi budou prakticky vždy dostupné i pro PC a Windows bude mít softwarové prvky a funkce konzolí, tak jako nyní zmiňované handheldy od Asusu mají Windows se speciálním rozhraním určeným pro herní zařízení. Doufejme, že to bude fungovat i obráceně a Xboxy v striktním slova smyslu budou mít více z funkcí osobního počítače, takže když už jednou mají všechen potřebný hardware, budou se také dát využít univerzálněji mimo hraní.

Zdroj: Youtube.com

Steam v Xboxu

Co je důležité – když je řeč o tom, že konzole bude více jako PC, bude se to týkat nejen toho, jak bude vypadat operační systém, ale i jako bud fungovat přístup ke hrám. Tento next-gen Xbox nebude poprvé omezený jen na hry z oficiálního prodejního kanálu výrobce, což je dnes prakticky definice konzolí.

Microsoft potvrdil, že uživatelé budou mít otevřený přístup ke hrám, podle všeho včetně toho, že v konzoli budete moci mít Steam a další alternativní (nebo na PC hlavní) zdroje her.

Vývoj nového Xboxu (tentokrát jako platformy spíš než jako zařízení) je prý nyní propojený s vývojem Windows a cílem je pojistit, že Windows budou nejlepší („číslo jedna“) platformou pro hraní.

Cyber25

Zní to zajímavě i rozumně, tak uvidíme, jak tyto plány dopadnou.

Zdroje: techPowerUp, Microsoft

Autor článku

Redaktor portálu Cnews.cz. Zaměřuje se na procesory, mobilní SoC, grafické karty, disky a další počítačový hardware. Profil autora →

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }