Una guía que cubre todo acerca de la Steamdeck, incluyendo aplicaciones y herramientas que mejoraran la experiencia con tu SteamDeck y el sistema SteamOS.
Nota: Puedes convertir fácilmente este archivo markdown a PDF con VSCode usando esta extensión Markdown PDF o también con esta herramienta online AnyConv.
Nota 2: Esta guía estará constantemente actualizándose con nueva información tan pronto sea posible, también puedes hacerme saber si hay errores o si crees que hay algo que debe ser añadido.
-
- Steam (WIP)
- ProtonDB (WIP)
- Lutris (WIP)
- Realidad Virtual
- [Conectar las Quest 1 y 2 a Steam Deck](https://github.com/ainus64/Guia-Definitiva-de-Steamdeck### Conectar-las-Quest-a-Steam-Deck)
- GameHub (WIP)
- Epic Games Store (WIP)
- Game Streaming (WIP)
- Game Emulators (WIP)
Steam Deck es un ordenador portatil de videojuegos desarrollado por Valve Corporation en colaboración con Advanced Micro Devices (AMD). Este dispositivo permite a los usuarios jugar con su biblioteca de Steam pero puede ser modificada por los usuarios para jugar con otras plataformas como Epic, GOG, Battle .net además de instalar otros programas. La Steamdeck comenzó a venderse en Febrero del 2022.
Consola Steam Deck. Fuente: Steam Deck
Steam OS 3.0 es un Sistema Operativo(SO) inmutable que tiene KDE Plasma como escritorio. Esto permite que instales programas en contenedores usando Flatpak, en lugar de hacerlo en la raiz del sistema. Esto significa que no solo los programas instalados estan aislados del nucleo del sistema, sino que tambien es capaz de reducir la posibilidad de que un software malicioso pueda comprometer o romper el sistema.
Especificaciones de Steam Deck:
Sistema Operativo: SteamOS 3.0 basado en ArchLinux.
System on a chip (SoC): AMD custom APU.
CPU: Zen 2, 4-núcleos, 8-hilos, frecuencia variable @ 2.4–3.5 GHz.
Memoria: 16 GB LPDDR5 @ 5500 MT/s.
Almacenamiento:
- Modelo Base: 64 GB eMMC por (EUR) 419€ .
- Modelo Intermedio: 256 GB NVMe SSD por (EUR) 549€.
- Modelo Premium: 512 GB NVMe SSD por (EUR) 679€.
Todos los modelos usan una ranura para M.2 2230.
Almacenamiento externo: microSD soporta hasta 2TB de almacenamiento para los juegos.
Pantalla: 7-pulgadas, 1280 × 800 LCD, nativo 800p @ 60Hz.
En modo Dock: Hasta 8K @ 60Hz o 4K @ 120Hz.
Tarjeta Gráfica: RDNA 2 con 8 CUs, frecuencia variable @ 1.0–1.6 GHz.
Steam Deck™ Docking Station ($89) is a Docking Station for Steam Deck.
Tech Specs for Dock:
- 3 x USB-A 3.1 Gen1 Ports
- Gigabit Ethernet
- DisplayPort 1.4
- HDMI 2.0
- MST (Multi-Stream Transport) enabling multi-monitor support
- Supports up to 4k 60hz, or 1440p 120hz
- FreeSync support
valve_steamdeck_dock_v06.mp4
Steam Deck™ Docking Station. Video Credit: Valve
PROJECT Killswitch is a custom protective case for the Steam Deck designed by dbrand.
dbrand Skins Skins for the Steam Deck made by dbrand.
Xtremeskins.co.uk Skins Skins for the Steam Deck made by Xtremeskins. Note that Xtremeskins is based in the UK. They ship globally, but it may take some time.
Custom Skins If you have access to the equipment it is possible to make your own skins from vinyl. This file provides the necessary cut template.
JSAUX Protective Standing Case is a case for the Steam Deck made by JSAUX which features a kick stand.
JSAUX Protective Standing Case front and back view
JSAUX Protective Case is a case for the Steam Deck made by JSAUX.
Spigen Steam Deck Case is a case for the Steam Deck made by Spigen. It features a hard plastic element on the back which some individuals have used for modding.
JSAUX Steam Deck Docking Station is a 6-in-1 Docking Station for Steam Deck. Equipped with an HDMI 4K@60Hz output, a Gigabit LAN Ethernet input, a USB-C port for charging, and three USB-A 3.0 ports, letting you explore a new way to play with Steam Deck. It supports 100W(Maximum) power delivery, which is enough power to charge your Steam Deck at full speed (45W) when paired with the original charger.
JSAUX Steam Deck Docking Station
JSAUX Steam Deck Docking Station With M.2 is a 6-in-1 Docking Station for Steam Deck. Equipped with an HDMI 4K@60Hz output, a Gigabit LAN Ethernet input, a USB-C port for charging, two USB-A 3.0 ports, and a full size M.2 slot. It supports 100W(Maximum) power delivery, which is enough power to charge your Steam Deck at full speed (45W) when paired with the original charger. The M.2 slot supports 2230, 2242, 2260, or 2280 M.2 drives with M or M&B key at up to 900MB/s. The drive is automatically mounted when attached to the dock using a script provided by JSAUX.
JSAUX Steam Deck Docking Station M.2
NexDock is an accessory with a HDMI-in port and Type-C cable NexDock that turns the Steam Deck into a fully functional computer.
NexDock 2-in-1. Source: NexDock
Xbox Wireless Controller + USB-C® Cable
PlayStation 5 DualSense™ Wireless Controller
Nintendo Switch Pro Controller
Nintendo Switch Pro Controller
Glass Sceen Protector for Steam Deck
SanDisk 1TB MicroSD Card on Amazon
Samsung 512GB EVO Select MicroSD Card on Amazon
Anker 45w Ultra Slim Charging PowerPort
SteamDB Es una base de datos de los juegos de Steam.
Importante: SteamDB es un projecto realizado como hobby por terceros y no forma parte de Valve o Steam.
Discover es un centro de software que permite manejar multiples fuentes, incluyendo tu repositorio de software del sistema operativo, Repositorios de Flatpak, la tienda de Snap, o incluso las AppImages de store.kde.org. Además Discover permite encontrar, Instalar, y administrar Add-ons para Plasma y todas tus aplicaciones favoritas de KDE.
Flatpak es una herramienta para desplegar y administrar paquetes de forma universal, sin importar la distribución que se use, esta permite instalar paquetes aislados del sistema con lo que se reduce el riesgo de tener vulnerabilidades adicionales o romper el sistema ya cada aplicación se ejecuta en una sandbox independiente.
Nota: Esta acción necesita Permisos de SuperUsuario.
$ sudo pacman -S flatpak
$ flatpak search Nombre-Aplicación
Ejemplo de uso
$ flatpak search LibreOffice
Vamos a instalar en este ejemplo Spotify.
Primero indicamos a flatpak que obtenga la aplicación de forma remota.
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Ahora, instala Spotify con el comando.
$ flatpak install flathub com.spotify.Client
Finalmente para ejecutar la aplicación, escribimos lo siguiente.
$ flatpak run com.spotify.Client
Flathub es una App store y empaqueta cientos de aplicaciones que pueden ser facilmente instaladas en cualquier distribución de Linux. Explorar las Apps de forma Online, desde el centro de aplicaciones o puede ser usado incluso desde una línea de comandos.
Note: La búsqueda de aplicaciones de Flathub viene integrada en Discover, si solo quieres limitarte a buscar aplicaciones de Flathub puedes marcar Flatpak por defecto.
Flatseal is a graphical utility to review and modify permissions from your Flatpak applications. Get it on Flathub store.
Nota: Esta acción necesita Permisos de SuperUsuario.
Desactivamos el modo sólo lectura.
$ sudo steamos-readonly disable
Actualizamos la base de datos de pacman
$ sudo pacman-key --init
$ sudo pacman-key --populate archlinux
Nota: Esta acción necesita Permisos de SuperUsuario.
En Steam Deck se usa el programa Konsole para acceder a la Terminal.
¿Qué es una Terminal? Una Terminal o consola de comandos, es una de las herramientas poderosas que existen en Linux, es un interprete que nos permite introducir comandos para comunicarnos directamente con el sistema sin pasar por una Interfaz gráfica de usuario.
Con una terminal de comandos en Linux podemos instalar software directamente en el sistema, así como ejecutar programas, copiar o mover archivos, crear scripts que hagan ciertas acciones como si fueran programas básicos, editar configuración del sistema, administrar servicios de un servidor, etc ...
En conclusión, con una terminal podemos tener control absoluto del sistema, si lo usamos en conjunto con el Super Usuario
¿Que es un Super Usuario? Un Super Usuario es un usuario con poderes de administrador en el sistema. Esto nos da la posibilidad de hacer modificaciones internas que pueden afectar directamente al funcionamiento del sistema operativo, es por ello que hay que tener en cuenta siempre, que los cambios realizados como Super Usuario debemos hacerlo bajo nuestra responsabilidad y sabiendo siempre lo que estamos haciendo, ya que de lo contrario, tendríamos que reinstalar todo el sistema de nuevo en caso de romper el sistema operativo por un uso indevido.
¿Para que sirve el comando SUDO? El comando SUDO sirve para dar permisos de Super Usuario al usuario actual de manera temporal, esto le permite instalar programas nativamente en el sistema, así como modificar archivos o configuraciones internas, dando el control total del sistema operativo al usuario en cuestión.
Obteniendo permisos de Super Usuario
Por defecto Steam Deck viene con nombre de usuario deck, este usuario no tiene definida una contraseña para sudo.
Es por eso que hay que definir una contraseña para poder usar sudo.
Abrimos la terminal Konsole desde el modo Escritorio de Steam Deck.
A continuación escribimos el comando passwd e introduciremos una contraseña.
$ passwd
Una vez introducida la contraseña ya podremos usar el comando sudo para obtener permisos de Administrador.
Nota: Hay que escribir la contraseña aunque por seguridad no se va a mostrar ningun caracter.
Nota 2: hay que escribir la contraseña una vez y pulsar Enter, a continuación te pedirá que escribas de nuevo la contraseña.
Nota 3: Una vez que ya has obtenido Permisos de SuperUsuario es recomendable que Desactives el Modo Sólo lectura de SteamOS
Nota: Esta acción necesita Permisos de SuperUsuario.
Nota 2: Cada vez que SteamOS se actualize de versión probablemente tengamos volver a a ejecutar este comando.
Lo recomendable es desactivar el modo Sólo Lectura si queremos tener control total de la partición del sistema y modificar SteamOS a nuestro antojo.
$ sudo steamos-readonly disable
Por defecto el Modo Escritorio viene en inglés, incluido el teclado, con lo cual cambia las asignaciones de tecla, a continuación vamos a ver como poner el sistema Completamente en español.
Nota: Esta acción necesita Permisos de SuperUsuario.
Desactivamos el modo Sólo Lectura de la Steamdeck.
$ sudo steamos-readonly disable
Editamos el archivo de locale.gen
$ sudo nano /etc/locale.gen
Nota: A continuación voy a explicar como instalar el idioma Español de España que es el es_ES, si sois de Latino américa debeis buscar el correspondiente a vuestra región.
Para el Español de España hay que buscar la línea que pone #es_ES.UTF-8
#es_ES.UTF-8 UTF-8
Quitaremos la # que hay delante para habilitarlo.
es_ES.UTF-8 UTF-8
Salimos con "Ctrl + X" y le damos a Yes para guardar los cambios.
Ahora editamos el archivo locale.conf
$ sudo nano /etc/locale.conf
Nos encontraremos con el siguiente texto.
LANG=en_US.UTF-8
A continuación añadimos una nueva línea debajo con lo siguiente.
LANG=es_ES.UTF-8 UTF-8
Salimos con "Ctrl + X" y le damos a Yes para guardar los cambios.
Actualizamos las Keys de los repositorio de Arch
$ sudo pacman-key --init
$ sudo pacman-key --populate archlinux
Reinstalamos glibc
$ sudo pacman -S glibc
Ahora vamos a generar las locales
$ sudo locale-gen
Editamos ahora la configuración de plasma
$ nano .config/plasma-localerc
Y lo dejamos tal que así
[Formats]
LANG=es_ES.UTF-8
Finalmente reinstalamos Plasma
$ sudo pacman -S plasma
Instalamos también
$ sudo pacman -S kde-utilities-meta
Reiniciamos el sistema para que se apliquen los cambios.
Entramos de nuevo en el Modo Escritorio, Pulsamos en el botón de Inicio y buscamos Idioma (Language).
Ahora pulsamos en el botón de Añadir idiomas que se encuentra habilitado y buscamos el idioma Español de España.
Ahora, Subimos el idioma a la primera línea dejandolo por encima del Inglés, pulsamos en Aplicar los cambios.
Ahora vamos a poner el Teclado en Español.
En el Modo Escritorio, Pulsa el Icono de Inicio y busca teclado en el buscador de aplicaciones.
En la Pestaña de Distribuciones pulsa en el Botón Añadir.
En Limitar selección por Idioma ponemos Spanish. en Distribución: Spanish.
Pulsamos en Ok
Ahora subimos arriba del todo el idioma Spanish y damos a Apply.
Ya tenemos en Español nuestra Steam Deck
Conocer la dirección IP local de nuestra Steam Deck es bastante útil, ya que con ella podremos conectarnos fácilmente a la consola mediante SSH, SCP o FTP de forma remota.
Una forma rápida de averiguarlo es abriendo una Terminal en el Modo Escritorio y escribiendo el siguiente comando:
$ ip a
Steam Deck - How To Get The Best Battery Life In Games! | The Phawx YouTube
auto-cpufreq is an automatic CPU speed & power optimizer for Linux based on active monitoring of laptop's battery state, CPU usage, CPU temperature and system load. Ultimately allowing you to improve battery life without making any compromises.
Power-Control-Panel is a software tool that allows easy change of TDP on windows handheld devices(including Steam Deck). Features include:
- Configurable profiles with charger vs battery values -xinput TDP change capability (hold LB, RB, and a dpad direction)
- Assign an exe to a profile to auto start when exe opens
- Auto startup at logon to system tray
- Touch friendly interface, keyboard (mostly) not required.
Power Control App | Project-SBC YouTube
KDE Connect es una herramienta que te permite enlazar tu movil , ordenador o Tablet al escritorio KDE, con esto puedes enviar archivos, recibir los mensajes o transferir fotos fácilmente a la Steam Deck.
Warpinator es una herramienta gratuita y open-source que sirve para enviar y recivir archivos entre ordenadores en una misma red local. Warpinator Flatpak
FileZilla Es una herramienta rápida para transferir archivos mediante conexiones FTP, FTPS y SFTP con un montón de opciones útiles y una interfaz gráfica bastante intuitiva. FileZilla Flatpak
Dragit Es una aplicación intuitiva para compartir entre dispositivos. Es bastante útil cuando quieres enviar archivos desde un ordenador a otro con el mínimo esfuerzo.
Dragit reconoce automáticamente los dispositivos conectados en una red local con la ayuda del protocolo mDNS y permite enviar archivos de forma inmediata.Dragit Flatpak
WinFsp is a set of software components for Windows computers that allows the creation of user mode file systems. In this sense it is similar to FUSE (Filesystem in Userspace), which provides the same functionality on UNIX-like computers.
SSHFS-Win is a minimal port of SSHFS to Windows. Looking under the hood it uses Cygwin for the POSIX environment and WinFsp for the FUSE (Filesystem in Userspace) functionality.
RiftShare is a cross platform (Windows, MacOS, Linux) file sharing tool that supports fully encrypted transfers both on the local network and off network using a simple passphrase. RiftShare uses magic-wormhole under the hood and is compatible with other magic-wormhole clients. It is also fully open source and licensed under the GPLv3. RiftShare Flatpak
SyncThing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Works with Mac OS X, Windows, Linux, FreeBSD, Solaris, OpenBSD, Android, and many others. Downloadable in Discover. It's also open source and licensed under the MPL-2.0 license.
Usermode FTP Server is a tool that let's you start an FTP server as user and transfer files with any FTP client. Allowing you to access your files directly with many file browsers' builtin FTP support: Windows File Explorer, Thunar, Gnome Files, Dolphin and many more. Usermode FTP Server on FlatHub
¿Que es SSH? Una conexión SSH es una de las conexiones remotas mas seguras y usadas en Linux, se puede utilizar para tener acceso por terminal a otro sistema Linux y escribir comandos como si estuvieras delante del mismo dispositivo, además puede ser usado en combinación con la herramienta SCP para copiar de forma remota y mediante SSH archivos o carpetas desde un equipo remoto a otro.
Nota: Esta acción necesita Permisos de SuperUsuario.
Abre una terminal en la Steamdeck y escribe el siguiente comando.
$ sudo pacman -S openssh
A continuación vamos a comprobar que el servicio está activo.
$ sudo systemctl status sshd
En caso de no estarlo inicializamos el servicio de SSH de la siguiente manera.
$ sudo systemctl start sshd
Para detener la ejecucion en segundo plano de SSH usaermos este comando.
$ sudo systemctl stop sshd
Si queremos que SSH se ejecute de forma automática siempre al arrancar el sistema ejecutaremos este comando.
$ sudo systemctl enable sshd
En caso de querer desactivar el arranque automático ejecutamos lo siguiente.
$ sudo systemctl disable sshd
Para conectarse a la Steam Deck una vez instalado SSH se puede hacer de diferentes maneras, dependiendo del sistema. pero se puede usar una terminal y escribir el comando ssh en ella.
Para conectarse por SSH hay que conocer el Nombre de usuario de la Máquina a la cual queremos conectarnos y la Dirección IP.
El nombre de Usuario por defecto en Steam Deck es Deck.
Estructura de una conexión por SSH
$ ssh USUARIO@IP_DE_LA_MAQUINA
A continuación introducimos la contraseña del USUARIO y ya estaremos conectados a la terminal de la máquina.
PuTTY: Es un cliente de escritorio que nos permite configurar conexiones por SSH.
Powershell: En Windows 10 o Windows 11 se incluye una terminal de comandos avanzada que se llama Powershell, con esta terminal de comandos podemos usar comandos propios que solemos usar en Linux como ssh.
Ejemplo de conexión por SSH desde Powershell.
> ssh [email protected]
Abrimos una terminal y escribimos el siguiente comando.
$ ssh [email protected]
Abrimos una terminal y escribimos el siguiente comando.
$ ssh [email protected]
Atención: Documentación incompleta. (En Desarrollo) Crear un servidor de FTP para Steamdeck es la forma mas sencilla y segura de transferir archivos rápidamente además que puedes crear una carpeta específica para transferir los archivos y luego ya desde la steamdeck lo gestionas para copiarlo donde quieras como tambien especificar rutas concretas para las roms de tus emuladores.
Nota: Esta acción necesita Permisos de SuperUsuario.
Para instalar un servidor FTP en la Steamdeck se hace de la siguinte manera.
$ sudo pacman -S vsftpd
Una vez instalado debemos configurar el servicio para que se ejecute al arrancar el sistema.
$ systemctl enable vsftpd.service
Arrancamos el servicio.
$ systemctl start vsftpd
Ahora vamos a ajustar algunas opciones para tener listo nuestro servidor FTP.
Lo primero que vamos a hacer es editar el archivo de configuraciones para ajustar algunos parametros.
$ sudo nano /etc/vsftpd.conf
Work in Progress
HoloISO is a SteamOS 3 (Holo) archiso configuration. It aims to bring the Steam Deck's Holo OS into a generic, installable format, and provide a close-to-official SteamOS experience.
HoloISO Desktop. Credit: theVakhovskeIsTaken
Nobara Project is an unofficial Fedora Linux Spin that's tailored for Gaming. It adds the necessary packages/tools (such as Lutris and ProtonUp-Qt), and fixes issues to make Fedora awesome for gaming. This project is developed and maintained by Thomas Crider AKA Glorious Eggroll.
WinesapOS is a project developed by LukeShortCloud that provides an easy to setup installation of Linux. It can be used on a flash drive, SD card, HDD, SSD, NVMe, or any other storage device. The release images are based on SteamOS 3 and the KDE Plasma desktop environment to align with what Valve's Steam Deck uses.
WineapOS Desktop. Credit: LukeShortCloud
ArchTitus created by ChrisTitusTech
(Work In Progress) ...
Useful YouTube videos:
- Steam Deck Windows Install to a microSD | Wagner's TechTalk | YouTube
- Windows On The Steam Deck: Benchmarks, Gaming, 4K | ETAPrime | YouTube
Recovery instructions for getting back to the default Steam Deck OS.
Creating a Windows 10/11 Bootable Device (MicroSD or USB)
Rufus is a utility that helps format and create bootable USB flash drives.
In Rufus 3.19:
Add a new selection dialog for Windows 11 setup customization:
- Secure Boot and TPM bypass have now been moved to this dialog.
- Allows to bypass the mandatory requirement for a Microsoft account on Windows 11 22H2. (Note: Network must be temporarily disabled for the local account creation to be proposed).
- Added an option to skip all collection questions (Sets all answers to “Don’t allow”).
- Added an option for setting internal drives offline for Windows To Go.
Rufus 3.19 Windows 11 setup customization.
Waydroid is a container-based approach to boot a full Android system on a regular Linux system. Make sure to checkout the Waydroid Arch wiki page.
Anbox is a container-based software for running a full Android system on Linux distributions. Make sure to checkout the Anbox Arch wiki page.
Bottles is a software tool that let's you run Windows software on Linux. It's built-in dependency installation system grants automatic software compatibility access. The download manager can download the official components such as: the runner (Wine, Proton), DXVK, dependencies, etc. Available on FlatHub or throught KDE Discover store.
Steam Tinker Launch is a Linux wrapper tool for use with the Steam client which allows customizing and start tools and options for games quickly on the fly.
RetroDECK is a tool that brings an environment to catalog and play your retro games directly from SteamOS and it's tailored specifically for the Steam Deck. It's powered by EmulationStation Desktop Edition, which uses RetroArch and other standalone emulators to allow you to import and play your favorite retro (and even non-retro) games in a tidy environment without flooding your Steam library.
SteamOS Btrfs is a project that will help get you from using ext4 on your Steam Deck's microSD card or home directory, to Btrfs.
Decky Loader is a plugin loader tool for the Steam Deck.
Features:
- Clean injecting and loading of one or more plugins.
- Persistent, meaning it doesn't need to be reinstalled after every system update.
- Allows 2-way communication between the plugins and the loader.
- Allows plugins to define python functions and run them from javascript.
- Allows plugins to make fetch calls, bypassing cors completely.
A list of available plugins for Decky Loader can be found in this store.
Steam Deck PowerTools is a plugin for Decky that provides system tweaks for power users.
- Enable & disable CPU threads & SMT
- Set CPU max frequency and toggle boost
- Set some GPU power parameters (fastPPT & slowPPT)
- Set the fan RPM (unsupported on SteamOS beta)
- Display supplementary battery info
- Keep settings between restarts (stored in ~/.config/powertools.json)
Crankshaft is a Steam client plugin manager and framework. It lets you install and create plugins to add more functionality to your Steam client. Available as a Flatpak
Steam Remote Play Together is a steam service that let's you share your Steam local multi-player games with friends over the internet, for free. Using Remote Play Together, one player owns and runs the game, then up to four players can join.
Steam Link app is available free of charge, streaming your Steam PC games to phones, tablets, and TV.
Proton is a tool for use with the Steam client which allows games which are exclusive to Windows to run on the Linux operating system. It uses Wine to facilitate this.
ProtonUp-Qt is a tool to install and manage Proton-GE and Luxtorpeda for Steam and Wine-GE for Lutris with this graphical user interface. Based on AUNaseef's ProtonUp, made with Python 3 and Qt 6.
ProtonDB is a collection of over 100,000 gaming reports from other gamers as they test games with Proton on Linux and provide aggregate scores of how well games perform. A growing pool of suggestions provides tweaks that you can try to get games working while Proton continues development. In addition to this, you may explore the Steam game catalog on this site to browse and discover a wide range of titles that were previously unavailable for use on Linux.
Lutris is a gaming client for Linux. It gives you access to all your video games with the exception of the current console generation. Also, integrates nicely with other stores like GOG, Steam, Battle.net, Origin, Ubisoft Connect and many other sources that allow you to import your existing game library and community maintained install scripts give you a completely automated setup.
Blizzard Battle.net is an internet-based online gaming, digital distribution, and digital rights management platform developed by Activision and Blizzard Entertainment. Battle.net is the launcher for World of Warcraft, Diablo III, StarCraft II, Hearthstone, Heroes of the Storm, Overwatch and Call of Duty.
EA Play is a subscription-based video game service from Electronic Arts for the Xbox One, Xbox Series X/S, PlayStation 4, PlayStation 5 and Microsoft Windows platforms, offering access to selected games published by Electronic Arts along with additional incentives.
Origin is an online gaming, digital distribution and digital rights management (DRM) platform developed by Electronic Arts that allows users to purchase games on the internet for PC and mobile platforms, and download them with the Origin client (formerly EA Download Manager, EA Downloader and EA Link).
Ubisoft Connect is a digital distribution, digital rights management, multiplayer and communications service created by Ubisoft to provide an experience similar to the achievements/trophies offered by various other game companies.
GOG GALAXY is a fully optional client to install, play and update your games.
Nota: Manual Incompleto / Experimental Youtube: How to Play VR on Steam Deck with ALVR
La realidad virtual es algo que va ligado principalmente a los PC de Escritorio, pero tenemos dispositivos Stand Alone como las Meta Quest 2 que pueden ser usadas de forma indepentientes, o usarlo como Visor conectandolo al PC mediante un Cable USB de tipo C (o un cable de tipo C a USB 3.0).
Requisitos Previos:
- Una Steam Deck (Obviamente)
- Quest 1 o 2 con el modo Desarrollador Activado
- Dock para la Steam Deck con puerto USB 3.0
- Un Teclado y Ratón para introducir los comandos.
- Opcional: Puedes conectarte por SSH a la consola para configurarla.
Para instalar Aplicaciones en Quest necesitamos usar SideQuest.
SideQuest es un programa que se puede instalar tanto en el mismo Visor de las Quest como en PC, esto nos ayudará a gestionar los APKs que queremos instalar en las Quest que no son oficiales.
Vamos a la página web de SideQuest y descargamos el Instalador Avanzado.
Nota: Este proceso lo podemos hacer tanto en nuestro PC con Windows o desde la misma Steam Deck, ya que solo nos hará falta SideQuest para instalar ALVR en las Quest.
Nota 2: Para hacer este manual mas independiente explicaré como se hace desde la misma Steam Deck todo el proceso.
A continuación extraemos el archivo comprimido en una carpeta, entramos en la carpeta y accedemos a ella desde una terminal.
Le damos permisos de ejecución
$ chmod +x sidequest
Ahora ejecutamos SideQuest para continuar con el siguiente paso.
$./sidequest
Conectamos las Quest al Dock o un Hub USB a la Steam Deck y nos mostrará en el Visor de las Quest una ventana para permitir la Depuración USB, tenemos que aceptarlo.
Una vez hecho esto veremos como en SideQuest aparecen las Quest conectadas.
Ahora vamos al buscador de sidequest y buscamos ALVR para QUEST y lo instalamos.
Nota: Esta acción necesita Permisos de SuperUsuario y que tengas Desactivado el modo Sólo Lectura de SteamOS.
Abrimos la terminal Konsole para comenzar a escribir los siguientes comandos.
$ sudo pacman-key --init
$ sudo pacman-key --populate archlinux
Para instalar Chromium podemos hacerlo de varias formas, una de ellas es desde el gestor de software Discover.
o tambien podemos hacerlo mediante terminal, ya a gusto de cada uno.
$ sudo pacman -S chromium
Abre Steam, busca en la Tienda SteamVR y dale a instalar.
Una vez hecho lo ejecutamos una vez.
Esto arrancara SteamVR y te preguntara si quieres darle permisos de superusuario.
Hacemos Clic en Yes y escribimos nuestra contraseña de sudo en la caja de texto.
Una vez que se ha ejecutado con exito, cerramos SteamVR.
Nota: Los desarrolladores de ALVR estan trabajando para arreglar esto, puede ser que este paso se omita en futuras versiones de ALVR.
Necesitas descargar estos archivos para Ejecutar ALVR
Abre la terminal Konsole y ve a la carpeta descarga
$ cd Downloads
Descargamos el archivo libx264_5.zip
$ wget -c https://github.com/ainus64/Guia-Definitiva-de-Steamdeck/raw/main/content/ALVR/libx264_5.tar.gz
Extrae el archivo comprimido
$ tar -xf libx264_5.tar.gz
Ahora mueve los siguientes archivos libx264 y libx265 a la carpeta /usr/lib
$ sudo mv libx264.so.155 /usr/lib/
$ sudo mv libx265.so.179 /usr/lib/
Finalmente ejecuta este comando para cargar las librerias.
$ sudo ldconfig
Descarga de aquí: ALVR_Server_Linux_Portable
Extraelo, entra dentro de la carpeta descomprimida y accede a la carpeta bin, ahora ejecuta alvr_launcher
$ ./alvr_launcher
GameHub is a unified library for all your games. It allows you to store your games from different platforms into one program to make it easier for you to manage your games.
GameHub supports:
-
native games for Linux
-
multiple compatibility layers:
- Wine
- Proton
- DOSBox
- RetroArch
- ScummVM
- WineWrap — a set of preconfigured wrappers for supported games;
- custom emulators
-
multiple game platforms:
Heroic is an Open Source Game Launcher for Linux, Windows and macOS (for both Native and Windows Games using Crossover). It supports launching games from the Epic Games Store using Legendary, a CLI alternative to the Epic Games Launcher. Flatpak for Heroic Games Launcher
Epic Games Store is a digital video game storefront for Microsoft Windows and macOS, operated by Epic Games.
Geforce NOW is NVIDIA's Cloud Gaming Service.
Moonlight Game Streaming is a program that let you stream from your PC games over the Internet with no configuration required. Stream from almost any device, whether you're in another room or miles away from your gaming rig. Sunshine is a Game stream host for Moonlight that is a self-hosted, low latency, cloud gaming solution with support for AMD, Intel, and NVIDIA GPUs.
Chiaki is a Free and Open Source Software Client for PlayStation 4 and PlayStation 5 Remote Play for Linux, FreeBSD, OpenBSD, Android, macOS, Windows, Nintendo Switch and potentially even more platforms. Chiaki Flatpak
Xbox Cloud Gaming is Microsoft's cloud-based Xbox game-streaming technology (currently in Beta). Play games like Forza Horizon 4, Halo 5: Guardians, Gears of War 4, Sea of Thieves, Cuphead, Red Dead Redemption 2, and 100+ other games on your mobile device or Chrome web browser. Xbox Cloud Gaming does require an Xbox Game Pass Ultimate subscription.
Parsec is a video game streaming platform, which offers a wide variety of games and genres to choose from and provides a high-quality and smooth gameplay. SParsec is developed in order to provide a high-quality smooth gameplay, same time to be free of all ads and in-game purchases.
Amazon Luna is Amazon's Cloud Gaming Service. Amazon Luna is Compatible/Supported on a vartiey of Devices and Browsers.
EmuDeck is a tool that takes care of everything for your retrogaming needs from RetroArch Configuration, Bezels, Gamepad Configuration for GameCube, Wii, Citra, SNES, etc. EmuDeck will even install EmulationStation Desktop Edition and carry over all their custom configurations and no need to configure ROM paths or anything.
EmulationStation Desktop Edition (ES-DE) is a frontend application for browsing and launching games from your multi-platform game collection. It's available for Unix/Linux, macOS(M1 & Intel) and Windows.
Pegasus is a cross platform, customizable graphical frontend for launching emulators and managing your game library (especially retro games) and launching them from one place. It's focused on customizability, cross platform support (including embedded devices) and high performance.
RetroPie is a frontend for emulators that allows you to turn your Raspberry Pi, ODroid C1/C2, or PC into a retro-gaming machine. It builds upon Raspbian, EmulationStation, RetroArch and many other projects to enable you to play your favourite Arcade, home-console, and classic PC games with the minimum set-up.
RetroArch is a frontend for emulators, game engines and media players. It enables you to run classic games on a wide range of computers and consoles through its slick graphical interface. Settings are also unified so configuration is done once and for all. RetroArch Flatpak
Cartridge is a self-hosted game library made with Laravel + Vue.js.
Cartridge Features
- Scan for ROM files and match with IGDB game information
- Serve ROM download links alongside game details
- Manage access to library with user creation and permissions (WIP)
- Allow users to request games (Planned)
- Play select ROMs in-browser using JS emulators (Planned)
- Track played and favorite games (even ones that aren't available for download) (Planned)
Dolphin is an emulator for two recent Nintendo video game consoles: the GameCube and the Wii. It allows PC gamers to enjoy games for these two consoles in full HD (1080p) with several enhancements: compatibility with all PC controllers, turbo speed, networked multiplayer, and even more. Dolphin Flatpak
Citra is an open-source emulator for the Nintendo 3DS capable of playing many of your favorite games. Citra Flatpak
yuzu is an experimental open-source emulator for the Nintendo Switch from the creators of Citra.Yuzu Flatpak
m64p is a Nintendo 64 Emulator. It uses mupen64plus-gui, a brand new mupen64plus frontend written in Qt5. It supports all of the things you’d expect from a frontend (savestate management, pausing, screenshots). m64p Flatpak
DeSmuME is a Nintendo DS emulator. DeSmuME Flatpak
Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES) emulator. Snes9x Flatpak
bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use. bsnes flatpak
mGBA is a new emulator for running Game Boy Advance games. It aims to be faster and more accurate than many existing Game Boy Advance emulators, as well as adding features that other emulators lack. mGBA Flatpak
DOSBox is an open-source DOS emulator which primarily focuses on running DOS Games.
DOSBox Staging is a full x86 CPU emulator (independent of host architecture), capable of running DOS programs that require real or protected mode. DOSBox Staging Flatpak
Flycast is a multi-platform Sega Dreamcast, Naomi and Atomiswave emulator derived from reicast. Flycast Flatpak
DuckStation is an simulator/emulator of the Sony PlayStation 1 console, focusing on playability, speed, and long-term maintainability. Available as a Flatpak on Flathub.
PCSX2 is a PlayStation 2 'emulator', a free program that tries to replicate the PlayStation 2 console to enable you to play PS2 games on your PC. PCSX2 Flatpak
RPCS3 is an experimental open-source Sony PlayStation 3 emulator and debugger written in C++ for Windows and Linux. RPCS3 started development in May of 2011 by its founders DH and Hykem. The emulator is currently capable of running over 1800 commercial titles powered by Vulkan and OpenGL. RPCS3 Flatpak
MAME is a Arcade Machine Emulator.
xemu is an original Xbox emulator.
Xenia is an Xbox 360 Emulator.
Also checkout these subreddits for more great Game Emulators recommendations
- r/emulation
- r/emulations
- r/RetroArch
- r/RetroPie
- r/DolphinEmulator
- r/Citra
- r/cemu
- r/yuzu
- r/OpenEmu
- r/MAME
- r/EmuDev
- r/Roms
Quick Links to Development Resources
Steamworks is a free suite of tools available to any developer to use in their game or software on Steam and the Steam Deck.
Steam Hardware GitLab Repo is a repository that contains CAD files for the external shell (surface topology) of Steam Deck, under a Creative Commons license. This includes an STP model, STL model, and drawings (DWG) for reference.
Dynamic Cloud Sync is a tool that Steam will use to automatically upload all modified save game data to the cloud prior to the device entering sleep mode. Users can then resume their game on any PC, laptop or other device. Steam will also automatically download any save game changes when users return to their Steam Deck and wake up the device.
Steam Cloud is a tool that provides an easy and transparent remote file storage system for your game. Files specified in the Auto-Cloud configuration or written to disk (created, modified, deleted, etc.) using the Cloud API will automatically be replicated to the Steam servers after the game exits. If the user changes computers, the files are automatically downloaded to the new computer prior to the game launching. The game can then access the files by reading them through the Cloud API or reading them directly from disk as usual. Avoid machine specific configurations such as video settings.
Gamescope is a SteamOS session micro-compositing window manager formerly known as steamcompmgr.
AMD FidelityFX Super Resolution (FSR) is an open source, high-quality solution for producing high resolution frames from lower resolution inputs. FSR enables “practical performance” for costly render operations, such as hardware ray tracing for the AMD RDNA™ and AMD RDNA™ 2 architectures.
AMD FidelityFX Super Resolution (FSR) 2.0 is an open source, high-quality solution for producing high resolution frames from lower resolution inputs. It uses temporal data and optimized anti-aliasing to boost framerates in supported games while delivering similar or better image quality than native resolution without requiring dedicated machine learning hardware.
MangoHud is a Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more.
GOverlay is an open source project aimed to create a Graphical UI to manage Vulkan/OpenGL overlays. It is still in early development.
ReplaySorcery is an open-source, instant-replay solution for Linux.
Luxtorpeda is a Steam Play compatibility tool to run games using native Linux engines.
SteamGridDB is a huge database where you can download and share custom video game assets and personalize your gaming library.
SGDBoop is a tool that automatically applies assets from SteamGridDB directly to your Steam library with a click of a button, removing the need to download and set them manually. Available as a Flatpak
Deck Verified is a program that reviews games in Steam's catalog verifying their compatibility with the Steam Deck. So when you visit your Library on Steam Deck, you’ll find a compatibility badge on each title, reflecting the kind of experience you can expect when playing each game on Steam Deck.
Deck Verified Program Categories. Source: Steam Deck
Steam Library Compatibility Badges for Games. Source: Steam Deck
If you would like to Donate to the Godot Project
If you would like to Donate to the Blender Project
The easiest way to install Unreal Engine 5 on your Linux system is using the Epic Asset Manager that's availble on FlatHub as a Flatpak. If you don't have Flatpak installed on your Linux system follow these simple instructions to get started.
Epic Asset Manager is an unofficial client to install Unreal Engine, download and manage purchased assets, projects, plugins and games from the Epic Games Store.
Quick links to Development Resources
Unreal Online Learning is a free learning platform that offers hands-on video courses and guided learning paths.
Unreal Engine Authorized Training Program
Unreal Engine Training & Simulation
Getting Started with DirectX 12 Ultimate
Getting Started with Apple Metal
Game Design Online Courses from Udemy
Game Design Online Courses from Skillshare
Learn Game Design with Online Courses and Classes from edX
Game Design Courses from Coursera
Game Design and Development Specialization Course from Coursera
Unreal Engine is a game engine developed by Epic Games with the world's most open and advanced real-time 3D creation tool. Continuously evolving to serve not only its original purpose as a state-of-the-art game engine, today it gives creators across industries the freedom and control to deliver cutting-edge content, interactive experiences, and immersive virtual worlds.
Unity is a cross-platform game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers.
Unigine is a cross-platform game engine designed for development teams (C++/C# programmers, 3D artists) working on interactive 3D apps.
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, video editing and 2D animation pipeline.
Godot is a feature-packed, cross-platform game engine to create 2D and 3D games from a unified interface. It provides a comprehensive set of common tools, so that users can focus on making games without having to reinvent the wheel. Games can be exported in one click to a number of platforms, including the major desktop platforms (Linux, Mac OSX, Windows) as well as mobile (Android, iOS) and web-based (HTML5) platforms.
Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs, developed by Disney and CMU. Panda3D is open-source and free for any purpose, including commercial ventures.
Source 2 is a 3D video game engine in development by Valve as a successor to Source. It is used in Dota 2, Artifact, Dota Underlords, parts of The Lab, SteamVR Home, and Half-Life: Alyx.
Havok is a middleware software suite that provides a realistic physics engine component and related functions to video games. It is supported and optimized across all major platforms, including Nintendo Switch, PlayStation®, Stadia, and Xbox. Along with integrations for Unity and Unreal Engine and are used in countless proprietary game engines.
AutoDesk 3ds Max is a professional software program for 3D modeling, animation, rendering, and visualization. 3ds Max allows you to create stunning game environments, design visualizations, and virtual reality experiences.
Houdini is a 3D procedural software for modeling, rigging, animation, VFX, look development, lighting and rendering in film, TV, advertising and video game pipelines.
A-Frame is a web framework for building virtual reality experiences in WebVR with HTML and Entity-Component. A-Frame works on Vive, Rift, desktop, mobile platforms.
AppGameKit is a powerful game development engine, ideal for Hobbyist and Indie developers. Where you can start coding in the easy to learn AppGameKit BASIC or use the libraries in C++ & XCode.
Open Graphics Library(OpenGL) is an API used acrossed mulitple programming languages and platforms for hardware-accelerated rendering of 2D/3D vector graphics currently developed by the Khronos Group.
Open Computing Language (OpenCL) is an open standard for parallel programming of heterogeneous platforms consisting of CPUs, GPUs, and other hardware accelerators found in supercomputers, cloud servers, personal computers, mobile devices and embedded platforms.
OpenGL Shading Language(GLSL) is a High Level Shading Language based on the C-style language, so it covers most of the features a user would expect with such a language. Such as control structures (for-loops, if-else statements, etc) exist in GLSL, including the switch statement.
High Level Shading Language(HLSL) is the High Level Shading Language for DirectX. Using HLSL, the user can create C-like programmable shaders for the Direct3D pipeline. HLSL was first created with DirectX 9 to set up the programmable 3D pipeline.
DirectX 12 Ultimate is an API(for high performance 2D & 3D graphics) from Microsoft. DirectX 12 Ultimate brings support for ray tracing, mesh shaders, variable rate shading, and sampler feedback. Available in Windows 2004 version(May 2020 Update).
Vulkan is a modern cross-platform graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms. Vulkan is currently in development by the Khronos Group consortium.
Mesa 3D Graphics Library is a project began as an open-source implementation of the OpenGL specification. A system for rendering interactive 3D graphics. Mesa ties into several other open-source projects: the Direct Rendering Infrastructure, X.org, and Wayland to provide OpenGL support on Linux, FreeBSD, and other operating systems.
OpenGL ES is the mobile subset of OpenGL. It's supported on all major mobile platforms, and is also the base for WebGL.
OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, DSPs, FPGAs and other processors or hardware accelerators.
EGL is an interface between Khronos rendering APIs such as OpenGL or OpenVG and the underlying native platform window system.
VDPAU is the Video Decode and Presentation API for UNIX. It provides an interface to video decode acceleration and presentation hardware present in modern GPUs.
VA API is an open-source library and API specification, which provides access to graphics hardware acceleration capabilities for video processing.
XvMC is an extension of the X video extension (Xv) for the X Window System. The XvMC API allows video programs to offload portions of the video decoding process to the GPU hardware.
AMD Radeon ProRender is a powerful physically-based rendering engine that enables creative professionals to produce stunningly photorealistic images on virtually any GPU, any CPU, and any OS in over a dozen leading digital content creation and CAD applications.
NVIDIA Omniverse is a powerful, multi-GPU, real-time simulation and collaboration platform for 3D production pipelines based on Pixar's Universal Scene Description and NVIDIA RTX.
LibGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux, Mac OS X, Android, your WebGL enabled browser and iOS.
cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is based on cocos2d-iphone, but instead of using Objective-C, it uses C++. It works on iOS, Android, macOS, Windows and Linux.
MonoGame is a framework for creating powerful cross-platform games. The spiritual successor to XNA with thousands of titles shipped across desktop, mobile, and console platforms. MonoGame is a fully managed .NET open source game framework without any black boxes.
Three.js is a cross-browser JavaScript library and application programming interface used to create and display animated 3D computer graphics in a web browser using WebGL.
Superpowers is a downloadable HTML5 app for real-time collaborative projects . You can use it solo like a regular offline game maker, or setup a password and let friends join in on your project through their Web browser.
URHO3D is a free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by OGRE and Horde3D.
Vivox is a voice & text chat platform that's trusted by the world's biggest gaming brands and titles such as Fortnite, PUBG, League of Legends, and Rainbow Six Siege.
HGIG is a volunteer group of companies from the game and TV display industries that meet to specify and make available for the public guidelines to improve consumer gaming experiences in HDR.
GameBlocks is a Server Side Anti-Cheat & Middleware software.
Vulkan® is a modern cross-platform graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms. Vulkan is currently in development by the Khronos consortium.
HLSL to SPIR-V Feature Mapping Manual
Vulkan GLSL Ray Tracing Emulator Tutorial
Vulkan SDK is a set of tools that enables Vulkan developers to develop Vulkan applications.
SPIR-V is a set of tools that enables high-level language front-ends to emit programs in a standardized intermediate form to be ingested by Vulkan, OpenGL or OpenCL drivers. It eliminates the need for high-level language front-end compilers in device drivers, significantly reducing driver complexity, enables a broad range of language and framework front-ends to run on diverse hardware architectures and encourages a vibrant ecosystem of open source analysis, porting, debug and optimization tools.
SPIRV-Reflect is a lightweight library that provides a C/C++ reflection API for SPIR-V shader bytecode in Vulkan applications.
Vulkan® Tools is a project that provides Khronos Group's official Vulkan Tools and Utilities for Windows, Linux, Android, and macOS.
Vulkan-Hpp is a API that provides a header only C++ bindings for the Vulkan C API to improve the developers Vulkan experience without introducing CPU runtime cost. It adds features like type safety for enums and bitfields, STL container support, exceptions and simple enumerations.
Vulkan® Memory Allocator (VMA) is a library that provides a simple and easy to integrate API to help you allocate memory for Vulkan® buffer and image storage.
AMD Open Source Driver for Vulkan® is an open-source Vulkan driver for AMD Radeon™ graphics adapters on Linux®.
NVIDIA® Nsight™ Visual Studio Edition is an application development environment for heterogeneous platforms which brings GPU computing into Microsoft Visual Studio. NVIDIA Nsight™ VSE allows you to build and debug integrated GPU kernels and native CPU code as well as inspect the state of the GPU and memory.
Radeon™ GPU Profiler is a performance tool that can be used by developers to optimize DirectX®12, Vulkan® and OpenCL™ applications for AMD RDNA™ and GCN hardware.
Radeon™ GPU Analyzer is a compiler and code analysis tool for Vulkan®, DirectX®, OpenGL® and OpenCL™.
Radeon™ Memory Visualizer (RMV) is a tool provided by AMD for use by game engine developers. It allows engineers to examine, diagnose, and understand the GPU memory management within their projects.
DXVK is a Vulkan-based translation layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine.
MoltenVK is an implementation of Vulkan running on iOS and macOS using Apple's Metal graphics framework.
RenderDoc is a stand-alone graphics debugger that allows quick and easy single-frame capture and detailed introspection of any application using Vulkan, D3D11, OpenGL & OpenGL ES or D3D12 across Windows, Linux, Android, Stadia, or Nintendo Switch™.
PerfDoc is a cross-platform Vulkan layer which checks Vulkan applications for best practices on Arm Mali devices.
GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc. GLFW natively supports Windows, macOS and Linux and other Unix-like systems. On Linux both X11 and Wayland are supported.
VulkanSharp is a project provides a .NET binding for the Vulkan API.
Vortice.Vulkan is a .NET Standard 2.0 and .NET5 low-level bindings for Vulkan API.
VKD3D-Proton is a fork of VKD3D, which aims to implement the full Direct3D 12 API on top of Vulkan.
ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline enabled application. It is fast, portable, renderer agnostic and self-contained (no external dependencies).
Ash is a very lightweight wrapper around Vulkan.
gfx-rs is a low-level, cross-platform graphics and compute abstraction library in Rust.
Vulkan.jl is a lightweight wrapper around the Vulkan graphics and compute library. It exposes abstractions over the underlying C interface, primarily geared towards developers looking for a more natural way to work with Vulkan with minimal overhead.
Microsoft DirectX® is a low-level API that handles tasks related to multimedia for game programming and video on Microsoft platforms(Windows & Xbox).
Getting Started with DirectX 12 Ultimate
Getting Started with the DirectX 12 Agility SDK
DirectX 12 and Graphics Education | YouTube
DirectX 12 Technology | NVIDIA
AMD DirectX® 12 (DX12) Technology | AMD
Top Microsoft DirectX Courses Online | Udemy
DirectX - Learn Microsoft DirectX from Scratch Course | Udemy
DirectX 11 Programming Course | Udemy
Visual Studio is an integrated development environment (IDE) from Microsoft; which is a feature-rich application that can be used for many aspects of software development. Visual Studio makes it easy to edit, debug, build, and publish your app. By using Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, and Windows Store.
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.
DirectX-Graphics-Samples is a project that contains the DirectX 12 Graphics samples that demonstrate how to build graphics intensive applications for Windows 10.
PIX on Windows is a performance tuning and debugging tool for DirectX 12 games on Windows.
DirectStorage API is an API in the DirectX family originally designed for the Velocity Architecture to Windows. The DirectX API is architected in a way that takes all this into account and maximizes performance throughout the entire pipeline from NVMe drive all the way to the GPU. It does this in several ways: by reducing per-request NVMe overhead, enabling batched many-at-a-time parallel IO requests which can be efficiently fed to the GPU, and giving games finer grain control over when they get notified of IO request completion instead of having to react to every tiny IO completion. The DirectStorage API will be available on Windows 11 PCs with NVMe SSDs, but will also be support in Windows 10 version 1909 and newer.
NVIDIA® Nsight™ Visual Studio Edition is an application development environment for heterogeneous platforms which brings GPU computing into Microsoft Visual Studio. NVIDIA Nsight™ VSE allows you to build and debug integrated GPU kernels and native CPU code as well as inspect the state of the GPU and memory.
NVRHI (NVIDIA Rendering Hardware Interface) is a library that implements a common abstraction layer over multiple graphics APIs (GAPIs): Direct3D 11, Direct3D 12, and Vulkan 1.2. It works on Windows (x64 only) and Linux (x64 and ARM64).
RTXMU - RTX Memory Utility SDK is an SDK tool that batchs up all of the acceleration structure build inputs and pass them to RTXMU which in turn will perform all the suballocation memory requests and build details including compaction. Then post build info is abstracted away by the SDK in order to do compaction under the hood. RTXMU returns acceleration structure handle ids that are used to reference the underlying memory buffers. These handle ids are passed into RTXMU to create compaction copy workloads, deallocate unused build resources or remove all memory associated with an acceleration structure.
Radeon™ GPU Profiler is a performance tool that can be used by developers to optimize DirectX®12, Vulkan® and OpenCL™ applications for AMD RDNA™ and GCN hardware.
Radeon™ GPU Analyzer is a compiler and code analysis tool for Vulkan®, DirectX®, OpenGL® and OpenCL™.
Radeon™ Memory Visualizer (RMV) is a tool provided by AMD for use by game engine developers. It allows engineers to examine, diagnose, and understand the GPU memory management within their projects.
FNA is an XNA4 reimplementation that focuses solely on developing a fully accurate XNA4 runtime for the desktop.
FAudio is an XAudio reimplementation that focuses solely on developing fully accurate DirectX Audio runtime libraries for the FNA project, including XAudio2, X3DAudio, XAPO, and XACT3.
Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog.
DXVK is a Vulkan-based translation layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine.
VKD3D-Proton is a fork of VKD3D, which aims to implement the full Direct3D 12 API on top of Vulkan.
RenderDoc is a stand-alone graphics debugger that allows quick and easy single-frame capture and detailed introspection of any application using Vulkan, D3D11, OpenGL & OpenGL ES or D3D12 across Windows, Linux, Android, Stadia, or Nintendo Switch™.
Open Graphics Library(OpenGL)™ is an API used across multiple programming languages and platforms for hardware-accelerated rendering of 2D/3D vector graphics currently developed by the Khronos Group.
OpenGL ES™ is the mobile subset of OpenGL for Embedded Systems(ES). It's supported on all major mobile platforms, and is also the base for WebGL.
WebGL™ is a cross-platform, royalty-free web standard for a low-level 3D graphics API based on OpenGL ES, exposed to JavaScript via the HTML5 Canvas element.
Khronos Technology Courses and Training
Top OpenGL Courses Online | Coursera
Top OpenGL Courses Online | Udemy
OpenGL Online Training Courses | LinkedIn Learning
Getting Started with OpenGL ES
BuGLe is a debugger for Linux and other UNIX-like OSes. BuGLe combines a graphical OpenGL debugger with a selection of filters on the OpenGL command stream. The debugger allows viewing of state, textures, framebuffers and shaders, while the filters allow for logging, error checking, video capture and more.
gDEBugger is a full-featured and free debugger and profiler representing the state-of-the-art in OpenGL and OpenGL ES debugging and profiling on Windows and Linux.
KTX is a lightweight file format for delivering textures to OpenGL family APIs.
RenderDoc is a stand-alone graphics debugger that allows quick and easy single-frame capture and detailed introspection of any application using Vulkan, D3D11, OpenGL & OpenGL ES or D3D12 across Windows, Linux, Android, Stadia, or Nintendo Switch™.
NVIDIA® Nsight™ Visual Studio Edition is an application development environment for heterogeneous platforms which brings GPU computing into Microsoft Visual Studio. NVIDIA Nsight™ VSE allows you to build and debug integrated GPU kernels and native CPU code as well as inspect the state of the GPU and memory.
Radeon™ GPU Profiler is a performance tool that can be used by developers to optimize DirectX®12, Vulkan® and OpenCL™ applications for AMD RDNA™ and GCN hardware.
Radeon™ GPU Analyzer is a compiler and code analysis tool for Vulkan®, DirectX®, OpenGL® and OpenCL™.
AMD Radeon ProRender is a powerful physically-based rendering engine that enables creative professionals to produce stunningly photorealistic images on virtually any GPU, any CPU, and any OS in over a dozen leading digital content creation and CAD applications.
NVIDIA Omniverse is a powerful, multi-GPU, real-time simulation and collaboration platform for 3D production pipelines based on Pixar's Universal Scene Description and NVIDIA RTX.
MoltenGL is an implementation of the OpenGL ES 2.0 API that runs on Apple's Metal graphics framework.
EGL is an interface between Khronos rendering APIs such as OpenGL or OpenVG and the underlying native platform window system.
Equalizer is an open source programming interface and resource management system for scalable OpenGL applications. An Equalizer application can be deployed on any visualization system, from a single-pipe workstation to large scale graphics clusters.
GLee is a free cross-platform extension loading library that takes the burden off your application. GLee makes it easy to check for OpenGL extension and core version availability, automatically setting up the entry points with no effort on your part.
GLEW is an open-source cross-platform extension loading library with thread-safe support for multiple rendering contexts and automatic code generation capability. GLEW provides easy-to-use and efficient methods for checking OpenGL extensions and core functionality.
GLUS is an open-source C library, which provides a hardware and operating system abstraction plus many functions usually needed for graphics programming using OpenGL, OpenGL ES or OpenVG.
OpenGL Mathematics (GLM) is a C++ mathematics library for 3D software based on the OpenGL Shading Language (GLSL) specification.
libktx is a library of functions(part of the KTX tool set) for writing KTX format files and instantiating GL textures from them.
OpenSceneGraph is a high-level 3D graphics toolkit exposing OpenGL's capabilities while providing many capabilities of its own. OpenSceneGraph boasts a large user community and has been employed for visual simulation, games, virtual reality, scientific visualization, and modeling.
Mesa 3D Graphics Library is a project that began as an open-source implementation of the OpenGL specification. A system for rendering interactive 3D graphics. Mesa ties into several other open-source projects: the Direct Rendering Infrastructure, X.org, and Wayland to provide OpenGL support on Linux, FreeBSD, and other operating systems.
Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol. The compositor can be a standalone display server running on Linux kernel modesetting and evdev input devices, an X application, or a Wayland client itself.
Sotfware Toolkits that have Wayland support right now
Contribution instructions for Wayland
Contribution instructions for Weston
WSLG: X11 and Wayland Applications in Windows Subsystem for Linux(WSL2)
Qt Wayland Compositor Examples
The Wayland Display Server on Fedora Docs
Wayland features on Fedora Project Wiki
KWin/Wayland on KDE Community Wiki
Wayland Desktop Landscape on Gentoo Wiki
Wayland in Void Linux Handbook
Weston is a lightweight and functional Wayland compositor.
XWayland is an X Server running as a Wayland client(for backwards compatibility), allowing the Xorg server can be modified to use wayland input devices for input and forward either the root window or individual top-level windows as wayland surfaces.
KWin is the window manager for the KDE Plasma Desktop. It gives you complete control over your windows, making sure they're not in the way but aid you in your task. It paints the window decoration, the bar on top of every window with (configurable) buttons like close, maximize and minimize.
Qt is the faster, smarter way to create innovative devices, modern UIs & applications for multiple screens. It is one of the most popular toolkits for the Wayland and X11 windowing.
GTK is a free and open source cross-platform widget toolkit for creating graphical user interfaces developed by GNOME Project. It is one of the most popular toolkits for the Wayland and X11 windowing.
NVIDIA Wayland EGL External Platform library is a work-in-progress implementation of a EGL External Platform library to add client-side Wayland support to EGL on top of EGLDevice and EGLStream families of extensions.
NVIDIA EGL External Platform Interface is a work-in-progress specification of the EGL External Platform interface for writing EGL platforms and their interactions with modern window systems on top of existing low-level EGL platform implementations. This keeps window system implementation specifics out of EGL drivers by using application-facing EGL functions.
Sway is an i3-compatible Wayland compositor.
wlroots is a modular Wayland compositor library.
WayfireWM is a 3D Wayland compositor, inspired by Compiz and based on wlroots.
SDDM is a modern display manager for X11 and Wayland aiming to be fast, simple and beautiful. It uses modern technologies like QtQuick, which in turn gives the designer the ability to create smooth, animated user interfaces.
x11docker is an application that you allows to run graphical desktop applications (and entire desktops) in Docker Linux containers.
Mako is a lightweight notification daemon for Wayland. It also works on Sway.
Wayland-rs is a Rust implementation of the wayland protocol (client and server).
Wine-wayland is an application that allows you to running DX9/DX11 and Vulkan games using pure Wayland and Wine/DXVK.
How Audio is implemented with PipeWire
How WirePlumber, the PipeWire session manager works. Source: Collabora
PipeWire is a server and user space API to deal with multimedia pipelines. It provides a low-latency, graph based processing engine on top of audio and video devices that can be used to support the use cases currently handled by both pulseaudio and JACK. PipeWire was designed with a powerful security model that makes interacting with audio and video devices from containerized applications easy. Nodes in the graph can be implemented as separate processes, communicating with sockets and exchanging multimedia content using fd passing.
WirePlumber is a modular session / policy manager for PipeWire and a GObject-based high-level library that wraps PipeWire’s API, providing convenience for writing the daemon’s modules as well as external tools for managing PipeWire. The WirePlumber daemon implements the session & policy management service. It follows a modular design, having plugins that implement the actual management functionality.
Core API is used by all clients that need to communicate with the PipeWire Daemon and provides the necessary structs to interface with the daemon.
Implementation API is primarily used by the PipeWire Daemon itself but also by the PipeWire Session Manager and modules/extensions that need to build objects in the graph.
SPA (Simple Plugin API) is an extensible API to implement all kinds of plugins.
GStreamer is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently.
Media Source Extensions (MSE) is a W3C specification that allows JavaScript to send byte streams to media codecs within Web browsers that support HTML5 video and audio. Also, this allows the implementation of client-side prefetching and buffering code for streaming media entirely in JavaScript.
WebRTC is an open-source project that adds real-time communication capabilities to your application that works on top of an open standard. It supports video, voice, and generic data to be sent between peers, allowing developers to build powerful voice- and video-communication solutions.
- Si quieres colaborar con esta guía, mandame una Pull Request y lo revisaré lo antes posible.
- Ainus64 - (Mis Juegos En Linux)
Este repositorio es un Clone Fork demikeroyal, pero el cual se ha traducido, y añadido muchísima mas información adicional en español que no existe en el repositorio original, es por ello que he decidido hacer un clone en español independiente ya que este se está transformando en un proyecto Independiente con tantos cambios, pero respetando al Autor Original en las secciones correspondendientes.
Esta obra es un Fork del Autor Original: https://github.com/mikeroyal/Steam-Deck-Guide
Distribuido bajo la licencia original de Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.