SteamOS: PC wordt console?

38 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. SteamOS
  3. 3. Porteren
  4. 4. Steam machines
  5. 5. Streaming games
  6. 6. Ervaringen
  7. 7. Conclusie
  8. 38 reacties

Porteren

Er zijn de nodige uitdagingen bij Valves plan. Niet alleen zijn de grafische stuurprogramma’s voor Linux in de regel veel minder ontwikkeld dan die voor Windows, ook is het porteren van software die bestemd is voor Windows naar Linux geen sinecure. Niet voor niets is emulatiesoftware als Wine (de afkorting staat voor ‘Wine Is Not an Emulator’, maar aanvankelijk voor Windows Emulator – lees meer op Wikipedia voor de achtergrond van de naam) in de regel het bewandelde pad om Windows-software onder Linux te draaien. Daar houdt Valve zich nadrukkelijk niet mee bezig: het wil games native onder Linux laten werken. Een vroeg voorbeeld was de port van Left 4 Dead 2, die uiteindelijk zelfs sneller bleek dan onder Windows – maar één zwaluw maakt nog geen zomer…

Left for Dead 2
Zombie shooter Left 4 Dead 2 was een van de eerste games die Valve succesvol naar Linux porteerde.

Toch is dat porteren technisch niet zo’n probleem als velen denken. Games zijn een vrij uitzonderlijk soort software in de zin dat ze slechts beperkt speciaal voor een specifiek besturingssysteem geschreven zijn. Windows games hebben lang niet alle libraries van Windows nodig om te werken. Naast die voor invoerapparatuur (muis, toetsenbord, etc.) en communicatie (netwerk) is de belangrijkste de 3D API, de application programming interface waarmee games communiceren met de drivers van grafische kaarten. DirectX genoot in de beginjaren van Windows 95 nog enige concurrentie van OpenGL, maar is tegenwoordig dominant. De recente introductie van AMD’s alternatieve ‘Mantle’ API daargelaten, ontwikkelen game studio’s voor de PC louter met DirectX. OpenGL kan na een recente inhaalslag qua functionaliteit weer goed meekomen, maar het wordt op de PC amper gebruikt.

Echter, 3D chips zijn sinds medio jaren ’90 geëvolueerd tot volledig programmeerbare GPU’s met sinds 2005 standaard ondersteuning voor zowel een DirectX- als een OpenGL-versie. Meest recentelijk, DirectX 11 en OpenGL 4. Hoewel DirectX 11 niet gaat werken onder Linux, is OpenGL 4 functioneel equivalent. In de regel zijn rendering engines – zeg maar de motor onder moderne 3D games – niet specifiek voor een API geschreven: ze geven render-instructies aan een tussenlaag, die de API aanstuurt. Bij het porteren moet dan alleen het gedeelte dat de instructies doorgeeft, ‘vertaald’ worden. Dit zijn zaken waar game developers in de regel ervaring mee hebben: de Xbox 360 werkt ook met een andere 3D API (DirectX 9.0c) dan de PS3 (een eigen API met OpenGL wrapper). En voor het steeds belangrijkere mobiele segment werken ontwikkelaars juist voornamelijk met OpenGL, zij het in de vorm van de ‘lichtgewicht’ afgeleide OpenGL ES. Het groeiende aanbod aan ‘mobiele’ games komt al in de buurt van de kwaliteit van de vorige generatie consoles en het is niet ondenkbaar dat Valve onder de ontwikkelaars daarvan partners kan vinden om ports voor SteamOS te maken – al is het wel zo dat het merendeel van de mobiele games voor iOS wordt ontwikkeld en dat draait vooralsnog op heel andere hardware.

Omdat de onderliggende hardware van PC’s wél identiek is, is het porten van games van Windows naar Linux een minder grote uitdaging dan je zou denken. Het is niet triviaal, maar het is zeker ook geen onoverkomelijk obstakel. De grote vraag wordt of ook andere ontwikkelaars meegaan in het plan. De voornaamste beperking is een financiële: het moet voor een ontwikkelaar rendabel zijn om dat te doen en dat is dubbel lastig omdat de hiervoor vereiste hoog betaalde programmeurs ook aan nieuwe titels kunnen werken.

Linux games library in SteamOS
Op moment van schrijven waren er 96 games voor Linux in SteamOS beschikbaar.

In die zin heeft SteamOS potentieel last van het bekende kip-ei probleem, maar Valve is in ieder geval hard aan het werk om te zorgen voor een aantrekkelijk platform, inclusief een flink aantal titels. Op dit moment is er al een flinke lijst games (een actueel overzicht vind je via WebID 844). Valve heeft een aantal eigen titels, gebaseerd op de Source engine, naar Linux geporteerd. Onder andere de Half-Life serie, Portal, Team Fortress 2 en Left 4 Dead 2 zijn beschikbaar. Verder is er voornamelijk een groot scala aan zogenaamde indie games beschikbaar.

0
*