Google werkt aan techniek om Windows-games op Stadia te laten draaien

Google houdt op zijn Google for Games Developer Summit een sessie over de technologie die het ontwikkeld heeft om ongemodificeerde Windows-games op Stadia te laten draaien. Afgaande op de titel van de sessie gaat het om een Windows-emulator voor Linux.

Google verduidelijkt op 15 maart tijdens een sessie in het Cloud Games and Infrastructure Track hoe het bedrijf ongewijzigde Windows-games op Stadia kan draaien. Marcin Undak van het Stadia Porting Platform houdt de sessie met de titel 'How to write a Windows emulator for Linux from scratch?'

Googles Stadia-platform draait op Linux en ontwikkelaars dienen games naar Linux te porten om deze via de dienst beschikbaar te maken. Onduidelijk is welke rol de techniek in de plannen van Google voor Stadia inneemt. Er zijn al tijden berichten dat Google zijn strategie met Stadia aanpast en de dienst als whitelabelproduct aan derde partijen wil aanbieden, die dan van de streamingcapaciteiten gebruik kunnen maken voor een eigen aanbod.

Er zijn meerdere manieren om Windows-games op Linux te laten draaien. Zo heeft Valve zijn eigen compatibiliteitslaag met de naam Proton ontwikkeld. Het bedrijf heeft daar de software Wine voor aangepast. Zo kunnen duizenden Windows-games draaien op Valves SteamOS, dat ook op Linux is gebaseerd. De implementaties van DirectX 11 en 12 zijn bij Proton gebaseerd op Vulkan, waarbij respectievelijk DXVK en vkd3d compatibiliteit bieden met Direct3D 11 en 12.

Google Stadia

Door Olaf van Miltenburg

Nieuwscoördinator

10-03-2022 • 16:44

49

Submitter: 2green

Reacties (49)

49
49
35
0
0
8
Wijzig sortering

Sorteer op:

Weergave:

Googles Stadia-platform draait op Linux en ontwikkelaars dienen games naar Linux te porten om deze via de dienst beschikbaar te maken.
Console games draaien eigenlijk toch al allemaal op Linux? Waarom zouden ontwikkelaars dan alsnog de Windows variant gaan porten? Is de stap console > Stadia niet veel kleiner?
Xbox is Windows 10 toch? En ik dacht dat PlayStations op BSD draaiden.
Niet geheel zeker.
En je ontwikkeld voor het PlayStation- en Xbox-platform. Niet persé voor het OS waarop het platform draait. Bij Android ben je er ook niet zo mee bezig dat het een Linux-kernel heeft en op iOS spreek je eigenlijk nooit met het onderliggende BSD-systeem.
Microsoft heeft inmiddels een SDK gepubliceerd waarmee je op zowel Xbox One, als Series X, als Windows kunt richten.

[Reactie gewijzigd door Wolfos op 31 juli 2024 04:55]

Xbox draait een aangepaste Windows en Playstations een aangepaste BSD, maar dat maakt het nog niet makkelijk om een Playstation game naar BSD te porten. Zo'n beetje de gehele API is door Sony zelf ontworpen. Denk aan input, graphics maar ook opslag.

Daarnaast word er ontzettend veel werk gedaan om Windows games op Linux te laten werken, en dit kan Google gewoon herbruiken.
Dat een console onderliggend een vergelijkbaar OS/kernel draait als desktops, betekent eigenlijk helemaal niks voor het porten.

Er zijn een heleboel dingen specifiek voor die console geschreven, en je hangt ook aan een flink aantal proprietary libraries die allemaal vervangen moeten worden (input, audio, graphics rendering, netwerk integratie, pauze/standby/sleep etc.).

Daarnaast zijn er ook gewoon dingen op desktop waar je bij een console versie totaal geen rekening mee hoeft te houden. Kiezen van een resolutie, verschillende aspect ratios, windowed/fullscreen, alt-tab, gedrag van de mouse cursor, kb+m keybinds, uitgebreid options menu etc.
Als al die dingen al in de Windows port zitten, dan is het inderdaad vaak makkelijker om die te pakken en gewoon alle Windows-specifieke dingen te vervangen.
Zou wel weer een boost kunnen geven aan Linux-gamers, als de code terug komt naar de opensource versies.
Als ze zich baseren op WINE zoals proton, zijn ze volgens de GPL verplicht de broncode openbaar te maken.
Aangezien de titel is "Windows emulator for Linux from scratch" klinkt het niet alsof ze WINE of Proton willen gebruiken.
Ja wat ik opzich wel jammer vind, maar waarschijnlijk is de GPL de grootste reden dat ze van 0 willen beginnen
Als ze zich baseren op WINE zoals proton, zijn ze volgens de GPL verplicht de broncode openbaar te maken.
Alleen wanneer ze de code herdistribueren. Als je enkel code server-side draait, dan hoef je gemodificeerde/aangevulde broncode niet vrij te geven.

Verder valt WINE onder de LGPL, niet GPL. Linken aan proprietary software mag, zonder dat de broncode van de proprietary software openbaar gemaakt hoeft te worden bij distributie.

[Reactie gewijzigd door The Zep Man op 31 juli 2024 04:55]

Sowieso kun je met Proton al een hoop.
Dit gaat ook een boost geven aan de verkoop van de Stadia controller.
Dat is leuk, maar dan heb je nog steeds hetzelfde probleem.. je moet de game 2x kopen.

Zolang het niet je eigen game is (zoals een 'echte' PC streamservice jij gewoon inlogt op jouw eigen steam/origin/whatever en je eigen games speelt) en je deze wel hebt op een ander platform, moet je alsnog de game kopen. Leuk voor die paar games die in Pro zitten, maar games dubbel kopen 'want Stadia' is nog steeds niet de oplossing.

Dan zou je Valve zover moeten krijgen, of EA, om direct op hun systemen te gaan draaien, de vraag is hoe realistisch dat dan weer is.

Oh god, ik heb weer wat Stadia mensen op de tenen getrapt.. kolere.

[Reactie gewijzigd door SinergyX op 31 juli 2024 04:55]

Dat is leuk, maar dan heb je nog steeds hetzelfde probleem.. je moet de game 2x kopen.

Als je een PlayStation en Xbox hebt moet je die game ook twee maal kopen. je kan stadia zien als een aparte console.

Je kan ook altijd je eigen game pc in een datacenter zetten en steamlink gebruiken … als je echt op elke toestel wilt gamen en je game maar 1x wilt kopen.

Mijn pc staat thuis en als ik op verplaatsing ben vpn ik naar men thuis locatie en kan ik via steam link spelen

[Reactie gewijzigd door Tr1pke op 31 juli 2024 04:55]

Is toch niet helemathet zelfde. Stadia is vergelijkbaarder met GeForce Now, waar je wel gewoon gebruikt kunt maken van spellen die je al hebt (tenzij de uitgever het daar niet mee eens is wat ik nog steeds onzin vind).

Google probeert het als console neer te zetemAr het voelt toch altijd gewoon als een pc game.

Het is een keuze van Google, en in mijn ogen een van de keuzes die stadia geen succes gemaakt hebben. Google heeft een self fulfilling prophecy gecreëerd wat een hoop klanten heeft afgeschrikt, als ze gewoon geld vroegen voor het abbo en Steam aanboden waren mensen sneller geneigd in te stappen dan nu het risico lopen dat Google de stekker er uit trekt en je alles kwijt bent.
Gedeeltelijk. GeForce Now is in feite niets anders dan een veredelde VPS met gewoon een instance met Windows daarop. Het voordeel daarvan is dat je je Windows games kunt blijven spelen, het nadeel is dat je ook de quirks van de Windows-versies meekrijgt (zoals allerlei losse launchers).

Stadia is daadwerkelijk een eigen platform (zoals inderdaad bij consoles), met daarbij de behoefte aan een platform specifieke port.

In dat opzicht zou je Stadia beter kunnen vergelijken met een Luna, wat ondanks dat het ook draait op Windows servers, dit stukje abstractie toch meepakt om het als los platform te zien.
Je bedoelt zoals Ubisoft+ op Stadia? Je kan de games los kopen of elke maand een bedrag betalen om alles games te spelen totdat je stopt met betalen. De vraag is of je voor elke studio los wilt betalen en van elke game als speedrun probeert te spelen. Je ziet het nu ook met video streaming en mensen die proberen alles te kijken wat er wordt uitgebracht ten koste van bijna alles. Heel vaak zijn deze all-you-can-consume constructies niet echt rendabel ook al lijkt het zo. Het is ook interessant om te gaan zien hoe deze diensten een recessie gaan doorstaan en als de betaalzenders in het buitenland een voorbode zijn dan kan het best een bloedbad worden.
Waarom zou je een game dubbel kopen? Je kunt op ongeveer elk scherm gamen met Stadia, waarom zou je het spel dan ook nog eens via Steam aanschaffen?

En, omgekeerd, waarom zou je een game die je al op Steam hebt ook nog op Stadia kopen? Speel die dan toch gewoon op je PC, die je blijkbaar hebt want je hebt het niet voor niets op Steam gekocht.

Stadia kost je 0 euro per maand, dus niemand verplicht je om je ander game platform de deur uit te gooien.
Maar waarom zou je stadia nemen als je al een pc hebt die blijkbaar die spellen draait?

En als je reden 4K gamen is dan is stadia ook niet gratis.

Ik denk dat het antwoord het zelfde is als cloud gaming bij gamepass, spellen spelen op een ander apparaat/scherm. Dan is het nogal vervelend om het spel twee keer te moeten kopen en dan waarschijnlijk ook nog geen eens save games te kunnen delen, en als je pech hebt niet online met vrienden kunt spelen.
Dan zou je idd geen stadia hoeven afnemen als je een gamepc bezit.
Een van de stadia minpunten was en is dat er vooral veel goede bekende en grote games bij moeten. Voor die andere mensen die een houtje touwtje pc hebben is dit dan goed nieuws, meer games om uit te kiezen.
De doelgroep die al deze games al heeft zal niet zo snel iets met Stadia doen gok ik.
Een van de stadia minpunten was en is dat er vooral veel goede bekende en grote games bij moeten.
Ziedaar het probleem van Stadia nu: te weinig content. En deze techniek is bedoeld om dat probleem te verhelpen, vooral door toegang te bieden tot de grote 'blockbusters'.

[Reactie gewijzigd door Fireshade op 31 juli 2024 04:55]

Je hebt een spel gekocht voor het platform 'PC', en je wilt hetzelfde spel op het platform 'Stadia' spelen.
Je hebt een spel gekocht voor het platform 'Playstation' en je wilt hetzelfde spel op het platform 'Xbox' spelen.
Je hebt een app gekocht in de App Storen, maar wilt hem ook op je Android telefoon installeren.
Je hebt een film op DVD gekocht bij de MediaMarkt, maar wilt hem ook via Pathe Thuis kijken.

Prima dat je dit vervelend vindt. maar het is het goed recht van de bedrijven om een dergelijk verdienmodel te hanteren. Ikzelf heb de voorkeur aan dit verdienmodel ten opzichte van iets als Geforce Now. Als het verdienmodel van Geforce Now beter is en beter werkt dan zullen de meeste consumenten daar voor kiezen.

Met het delen van save games enz ben ik het wel eens.
Hier ga je ervan uit dat iedereen de games al gekocht heeft. Voor mij is dat bijvoorbeeld al niet het geval, dus van dubbel kopen is bij mij geen sprake! Ik denk dat veel mensen niet alle games kopen omdat ze geen "dure" game PC hebben waar ze het spel op kunnen spelen!
Tenzij ze het zoals GeForce Now gaan implementeren. Linken met andere stores/accounts en via Stadia streamen.
Het is niet zozeer dat je stadia mensen op de tenen trapt. Maar je verhaal slaat kant nog wal in mijn ogen. Ja je moet een game 2 keer kopen. Maar Stadia is ook niet gemaakt voor de al PC gamers die af en toe in de cloud willen spelen daar is gfn. Stadia heeft als droom/doel om zoals Xbox/PlayStation een eigen ecosysteem te hebben. Waarbij je niet een game 2 keer koopt. Maar 1 keer in Stadia en daar blijft het bij. Stadia is dus niet voor jou maar wel voor andere. En dat is prima.
Dan is Stadia gewoon niks voor jou :)

Stadia valt meer te vergelijken met een console dan met een PC. En op consoles moest je, als je overstapte, ook al eventueel je game een tweede keer kopen.

Dit is juist voor de console gamers een leuke feature indien Stadia het voor elkaar kan krijgen. PC games sneller naar Stadia. :D
Ja, en wat nou als de game niet in Steam zit?
Dan vervloek je die Tim van epic en speel je iets anders ;)
Oh god, ik heb weer wat Stadia mensen op de tenen getrapt.. kolere
Stadia mensen, die anderhalve man en een paardenkop?
Het lijkt mij eerder een runtime dan een volwaardige emulator. Zoals WINE. (Staat ook letterlijk voor Wine Is Not an Emulator, overigens)
Emuleren betekend eigenlijk gewoon iets nabootsen. In die zin is Wine natuurlijk wel een emulator.
Wine bootst Windows niet na het vertaalt systeem calls naar Linux systeem calls. Net als een tolk bijvoorbeeld Frans naar Nederlands vertaald.
En een emulator doet hetzelfde met assembly instructies. Echt hardware nabootsen is namelijk te traag.

[Reactie gewijzigd door Wolfos op 31 juli 2024 04:55]

Volgens mij is dat wel wat ze doen met bijvoorbeeld de Amiga emulator, omdat sommige programma's letterlijk van de hardware timer afhankelijk zijn, of van bugs in componenten.
Er zijn een paar emulators van stokoude systemen die zo werken ja, maar de meesten hercompileren de code.
.oisyn Moderator Devschuur® @maevian10 maart 2022 19:30
Wine bootst Windows niet na het vertaalt systeem calls naar Linux systeem calls
Waarmee het Windows dus nabootst. De app denkt dat ie runt op Windows, maar dat is niet het geval. Het is een ander niveau van emuleren dan bijvoorbeeld cpu-emulatie (denk aan DOSBox), en vandaar de afkorting, maar dat neemt niet weg dat het weldegelijk emulatie is en de naam dus eigenlijk een misnomer is.
Bij emuleren zou er iets van een Windowslaag tussen de applicatie en het uiteindelijke hostsysteem moeten zitten, zoals bij een VM. Het vertalen gebeurt op een veel directer niveau en gebruikt geen Windows logica, enkel een (doorverwezen) implimentatie van de API calls.
.oisyn Moderator Devschuur® @TimeWaster10 maart 2022 23:24
Met die logica is cpu-emulatie ook geen emulatie, want de instructies worden gewoon vertaald naar andere instructies die de host cpu wel uit kan voeren, en dan is er ook geen platformspecifieke laag die aanwezig is.

Wikipedia zegt:
In computing, an emulator is hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest). An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate (or imitate) another program or device.
Dat is precies wat Wine doet. Het creëert een omgeving die een windows proces nabootst, door de win32 (en andere) api calls te vertalen naar het host-systeem, inclusief translatie van filesystem-paths, het laden van DLLs, etc.

[Reactie gewijzigd door .oisyn op 31 juli 2024 04:55]

Wine bootst geen Windows proces na. Het zorgt ervoor dat calls die normaliter naar Windows gaan, een nieuwe bestemming krijgen. Alle zaken die je noemt zijn voorbeelden van vertalen, en niet zozeer emuleren (namelijk het doorverwijzen naar de POSIX variant in plaats van naar de nagebootste Windows binnen een POSIX omgeving).

Ik kan prima in Wallonië rondlopen, Frans praten en denken dat ik met Fransozen praat en in Frankrijk ben. Mijn calls zijn hetzelfde en ik krijg een geldige respons. Dit betekent echter niet dat ik me op Frans grondgebied begeef, of Frankrijk om mij heen wordt nagemaakt.
.oisyn Moderator Devschuur® @TimeWaster11 maart 2022 14:51
Het zorgt ervoor dat calls die normaliter naar Windows gaan, een nieuwe bestemming krijgen.
Dat is áltijd het geval bij emulatie.
namelijk het doorverwijzen naar de POSIX variant in plaats van naar de nagebootste Windows binnen een POSIX omgeving
Er is geen POSIX variant van het Windows registry. Er is geen POSIX variant van de window en GDI subsystemen. Etc.
Dit betekent echter niet dat ik me op Frans grondgebied begeef, of Frankrijk om mij heen wordt nagemaakt.
Zucht. Analogiën helpen de discussie echt niet voorwaarts. Maar goed, wat je wil. Als je in Walonië vraagt waar je bent, dan zeggen ze dat je in Walonië bent. Als je in Wine de Windows versie opvraagt met de GetVersionEx() API call, dan zeggen ze Windows Vista (of dat was iig zo in het verleden, wellicht dat dat tegenwoordig is geüpdatet naar een modernere windows versie). Het detecteren of je in Wine draait wordt ook actief door de developers afgeraden. Een applicatie onder Wine bevindt zich in een geëmuleerde Windows omgeving.

[Reactie gewijzigd door .oisyn op 31 juli 2024 04:55]

Dat is áltijd het geval bij emulatie.
Het nuanceverschil dat ik wilde leggen is dat ze nu niet via een generieke Windows emulatie-laag verlopen, maar direct worden doorvertaald naar de specifieke bestemming: https://www.researchgate....NE-native-integration.png

In mijn oren klinkt het zo vooral als simulatie ten opzichte van emulatie. Waarbij de werking zo goed mogelijk wordt nagebootst, maar het gedrag toch degelijk wel anders kan zijn.

Dat is precies waar het principeverschil in zit. Er zijn eigen implementaties die ervoor zorgen dat de acties worden uitgevoerd, ten opzichte van (het namaken van) een hele Windows desktop waarin het te draaien proces zit, wat tevens meer resources kost.
Als je in Wine de Windows versie opvraagt met de GetVersionEx() API call, dan zeggen ze Windows Vista (of dat was iig zo in het verleden, wellicht dat dat tegenwoordig is geüpdatet naar een modernere windows versie).
Het resultaat bij een call zoals GetWindowsEx zal in praktijk hetzelfde resultaat geven, maar dit is voor Wine niet meer dan een aantal parameters die anders worden gezet ten opzichte van het emuleren van een hele andere versie van het OS.

Overigens is er een emulator-variant die gebruik maakt van Wine beschikbaar, namelijk http://www.boxedwine.org/.
Hierin wordt een Linux omgeving opgetuigt om daarin Wine te draaien, zodat het effectief een Windows emulator is.

[Reactie gewijzigd door TimeWaster op 31 juli 2024 04:55]

Klopt, maar bij emuleren gaat het toch wel vaak om andere processor architecturen ed. Wat dat betreft is Wine meer een soort compatibility layer ... een laag die de ene call vertaald naar de ander. Het schuurt op het moment dat Wine ook daadwerkelijk de applicatie wijsmaakt dat het op Windows draait.
Marcin Undak (wie voorheen al voor Ubisoft en Unreal Engine heeft gewerkt) heeft ook op LinkedIn gepost dat hij blij is om te laten zien waar hij al ruim twee jaar aan gewerkt heeft (Bron: https://boilingsteam.com/...n-windows-games-on-linux/). Dit laat in mijt optiek zien dat dit al een langer termijnplan was dat zelfs voor de sluiting van Stadia Games & Entertainment op de planning stond.

Het spannendste is denk ik vooral dat het hier om emuleren gaat en niet om een compatibility layer, zoals Wine/Proton. Emuleren is intensiever op de resources en voor zower bekend heeft Stadia nog geen hardware upgrades gehad sinds de launch.

[Reactie gewijzigd door TimeWaster op 31 juli 2024 04:55]

De meeste games die ik speel op de PC vereisen weinig van de hardware. Denk aan spellen als PrisonArchitect, factorio, Rimworld of Slay The Spire.

Stadia heeft te weinig van dat soort spellen, mede omdat elk spel ondersteuning moet hebben voor controler. met deze oplossing zouden ze dat gat wel eens iets kunnen dichten.
Volgens mij moet je nog even doorbouwen aan je megabase in Factorio dan. :)
Bij 5 tot 10 duizend science per minuut houden de meeste computers het voor gezien.

https://www.youtube.com/watch?v=gqcs50Z8YLM

[Reactie gewijzigd door impulsje op 31 juli 2024 04:55]

Nou,sluit mijns inziens naadloos aan op dit bericht van alweer een poos terug dat Google stopt met het ontwikkelen van eigen Stadia-games.

Zo kun je het platform toch handhaven en de service / dienst in je product portfolio houden.

Had ik die controller uit de Premiere Edition à € 22,- misschien toch niet zo snel moeten verkopen :+
Ik vind dat bericht ook wel logisch.
Google richt zich op het platform, de studio was denk ik vooral om content te creeren om mensen te motiveren een abonnement te nemen.

Echter als PS en Xbox games er op werken is het nog veel beter, want je hebt dan ineens alle content.
Ik speel graag op de stadia, koste bijna niets en wilde de cromecast ultra toch al hebben, ik heb geen pro abbo meer,dus speel gratis. Laatst Lara croft serie gekocht voor een tientje,speel alweer weken. Maar vindt mijn 42 inch tv een beetje te klein, tijd voor wat groters!

Op dit item kan niet meer gereageerd worden.