Etiquetado: Nvidia

Montar una Steam Box con una Raspberry Pi 2 mediante moonlight para usar GameStream de Nvidia.

El título es raro de cojones, lo sé.NVIDIA

La idea es que desde una Raspberry Pi podamos jugar a juegos que realmente corren en nuestro PC con gráfica Nvidia.

Por ejemplo podremos conectar la Raspberry Pi a la tele del comedor y disfrutar del catálogo de Steam en el sofá con el rendimiento del PC.

El caso es que funciona, y muy bien además, latencia inapreciable a 1080px60fps, con muchas opciones, soporte de periféricos y mucho más, y hay una cantidad muy decente de juegos compatibles.

SteamOS (Software) + Steam Box (Hardware) = Steam Machine

Primero los conceptos:

  • ¿Qué es una Steam Box? 
    SteamBox es un concepto creado por Valve que consiste en un hardware para hacer funcionar SteamOS, el sistema operativo de Steam como si de una consola se tratase, esta conjunción tiene por nombre “Steam Machine” hoy en día existen muchas Steam Machines de diferentes fabricantes en el mercado, pero no bajan de los 500 dolares, ¡llevan un tarjetón ahí dentro!.
    En nuestro caso no será realmente una SteamBox porque no ejecutaremos SteamOS en la Raspberry Pi sino que haremos streaming de un Steam que corre en un PC, la diferencia radica en el precio y en que necesitamos el PC con una tarjeta gráfica Nvidia compatible con GameStream accesible.Pi2ModB1GB_-comp
  • ¿Qué es una Raspberry Pi?
    El famoso Raspberry Pi fue diseñado con fines educati… bla bla bla… es el mejor y más barato juguete que he podido trastear últimamente. Si aún no lo conoces, échale un ojo al artículo de la Wikipedia antes de continuar:  http://es.wikipedia.org/wiki/Raspberry_Pi
    Y ahora es su versión 2 Nueva Raspberry Pi 2 con más de todo.
  • ¿Qué es GameStream de Nvidia?
    La tecnología GameStream traslada los juegos de PC a tu dispositivo SHIELD (compatible con GameStream) con mínima latencia. GameStream aprovecha toda la potencia de las tarjetas gráficas GeForce GTX para transmitir en streaming, a través de tu red Wi-Fi, los juegos del PC al dispositivo SHIELD y permitirte disfrutar de ellos en cualquier lugar.
  • ¿Qué es moonlight? 
    Es la implementación Open Source del GameStream para los dispositivos SHIELD.
    La gente de Nvidia sacó moonlight (antes limeLight) para que los fabricantes pudiesen compatibilizar su hardware con GameStream, más info en: http://moonlight-stream.com/

Partimos de la base de que dispones de una Raspberry Pi (yo lo he probado con la 2, la 1 la tengo ocupada) y que Raspbian está instalado y funcionando en red local con SSH activado. De forma que mediante, por ejemplu Putty, podemos conectarnos mediante SSH a nuestra RPi.

Miniguia de instalación de Raspbian: 1- Descarga Raspbian verión NOOBS. 2.- Descomprime. 3.- Copia Pega en una SD. 4.- Enciende la RPi con esa SD y sigue las instrucciones.

Tabla de compatibilidad de GPU de Nvidia
Tabla de compatibilidad de GPU de Nvidia

En cuanto al PC, GameStream es de Nvidia y solo es compatible con las GTX serie 6 o superior, puedes comprobar si tu tarjeta es compatible con GameStream en la imagen de arriba.

Necesitas instalar, si no lo tienes ya, NVIDIA GeForce Experience (GFE), que no es el driver.

Iniciamos GFE y vamos a la pestaña SHIELD, allí iniciamos sesión con una cuenta de nvidia.

Así queda una vez iniciada la sesión de usuario.
Así queda una vez iniciada la sesión de usuario.

Podemos comprobar el estado del servicio en la pestaña “Mi Equipo”:

Estado del servicio GameStream
Estado del servicio GameStream

Si no teníamos activado GameStream es muy recomendable reiniciar el PC después de activarlo, en mi caso no funcionó hasta reiniciarlo, aún estando todo en verde.

Iniciamos Steam y lo tenemos todo listo en el PC.

En cuanto a la Raspberry Pi, una vez conectados por SSH añadiremos una nueva fuente de repositorios, lanzando el siguiente comando abrimos el fichero /etc/apt/sources.list.

sudo nano /etc/apt/sources.list

Tenemos que añadir la siguiente linea al fichero:

deb http://archive.itimmer.nl/raspbian/moonlight wheezy main

Para salir de nano pulsa Ctrl + X y luego confirma con Y.
Actualizamos nuestro apt-get:

sudo apt-get update

Y instalamos moonlight:

sudo apt-get install moonlight-embedded

Ahora emparejamos moonlight en la Raspberry con la tarjeta gráfica del PC:

moonlight pair X.X.X.X

Donde X.X.X.X es la dirección IP del PC, no de la RPi.
img_55a0353116a95En el momento de lanzar el comando, en el PC, GFE mostrará una nueva ventana solicitando un código PIN, el código de debes introducir aparece en el terminal SSH en donde hemos lanzado el comando.

Una vez introducido el PIN correcto, tendremos emparejados los dos dispositivos y listos para la fiesta.

Para iniciar el stream tenemos que lanzar un comando SSH en el terminal de la RPi:

moonlight streaming [opciones] X.X.X.X

Donde X.X.X.X es la dirección IP del PC, no de la RPi.

Aquí un listado de las opciones disponibles:

-720 Usar la resolición 1280x720px [por defecto]
-1080 Usar la resolución 1920x1080px
-width Resolución horizontal (por defecto 1200px)
-height Resolución vertical (por defecto 720px)
-30fps Usar 30fps
-60fps Usar 60fps [por defecto]
-bitrate Especifica el bitrate en Kbps
-packetsize Especifica el tamaño máximo de los paquetes en bytes.
-app Nombre de la aplicación para hacer stream
-nosops No permitir que GFE modifique los ajustes del juego
-input Usar como input. Puede usarse múltiples veces.
-mapping Usar como mapa de configuración de gamepad (previo uso de -input)
-audio Usar ALSA como salida de audio
-localaudio Reproducir el audio en local

Ahora para iniciar Steam únicamente, utilizaremos:

moonlight streaming -app Steam X.X.X.X

Donde X.X.X.X es la dirección IP del PC, no de la RPi.
Con esto ya deberías ver Steam allí donde hayas conectado la RPi.

Tecnología PhysX en Cell Factor: Revolution, la triangulación para mejorar la experiencia en videojuegos.

Con la salida de Cell Factor (Immersion Corporation), se ha hablado y se hablará mucho de esta nueva tecnología que rodea a los videojuegos, pero para entender un poco el concepto primero veamos la aplicación, la siguiente imagen enlaza a un vídeo oficial a alta calidad (87Mb) del juego, no pongo el enlace a Youtube porque los vídeos allí alojados son de pésima calidad y no se apreciaría bien lo que quiero explicar, sigan el enlace:


La historia está en que para poder mover esta cantidad de polígonos y texturas de alta calidad, así como procesar la física, aparte de usar un Alienware AMD 64 FX-60 con dos placas Nvidia 7800GTX en modo SLI como requisito del juego tenemos una tercera tarjeta que se encargaría exclusivamente de procesar los movimientos y la interacción, algo así como la encargada de generar la física del juego, aqui entra la empresa Ageia con sus placas con soporte de PhysX y no hablamos de graficas con esa característica sino de unas placas dedicadas a esos procesos por PCI Express, hay disponible una en el mercado de ASUS por unos 200¤ aproximadamente.

No son pocos los juegos que actualmente soportan este motor, en la misma web de ageia hacen referencia a Auto Assault, varios Vet on Soldier, Citiy of Villains, Dark Physics, Gears of War, Infernal, Mobile Suit Gunam: Crossfire, Red Steel, SoboBlitz, Stoket Rider: Alaska Alien, Tom Clancy’s Ghost Recon Advanced Warfighter y algunos que aún estan por salir como Cell Factor: Revolution o Unreal Tournament 3.

Los requisitos mínimos de Cell Factor: Revolution son, según se rumorea, un procesador a 2GHz, 1Gb de RAM, una Nvidia 6800GT (la mia 🙂 y la dichosa ageia, pero creo que con estas características milagro seria poder moverlo al mínimo, otro asunto es el del ping, una brutalidad de ese calibre cuesta mucho hacerlo pasar por la ADSL, y más teniendo en cuenta la infraestructura de este tipo que tenemos en España, según he leido Immersion Corporation tiene en mente una opción para reducir la cantidad de objetos y efectos para conexiones bajas, no se yo.. pero me parece que en España gozaremos realmente este juego en conexiones LAN.

Enlaces:

Sitio Oficial de Ageia.
Cell Factor en 3D Juegos.
Cell Factor Trailler en TechEBlog.
Cell Factor en Meristation.