Le damos la bienvenida a la guía de desarrollo de juegos para Windows.
Nota
Antes de invertir tiempo en desarrollar un juego basado en el marco de UWP, ten en cuenta que UWP ya no está en desarrollo activo. Además, los juegos basados en UWP ya no se aceptan en la Tienda Xbox.
En esta guía se proporciona una colección completa de los recursos e información que necesitará para desarrollar un juego para la Plataforma universal de Windows (UWP). Hay disponible una versión en inglés (EE. UU.) de esta guía en formato PDF.
Introducción al desarrollo de juegos para la Plataforma universal de Windows (UWP)
En esta guía se proporciona una colección completa de información y recursos que le ayudarán a medida que desarrolle su juego. Las secciones se organizan según las fases de desarrollo del juego, por lo que sabrá dónde buscar información cuando la necesite.
Si no estás familiarizado con el desarrollo de juegos en Windows, es posible que la guía de introducción sea donde quieres empezar. La sección Recursos de desarrollo de juegos también proporciona una encuesta de alto nivel de documentación, programas y otros recursos que son útiles al crear un juego. Si quiere empezar por ver algo de código UWP, consulte Ejemplos de juegos.
Recursos de desarrollo de juegos
Desde la documentación hasta los programas para desarrolladores, foros, blogs y ejemplos, hay muchos recursos disponibles para ayudarle en su recorrido por el desarrollo de juegos. Este es un resumen de los recursos que debería conocer antes de comenzar a desarrollar el juego para Windows.
Nota
Algunas características se administran a través de varios programas. En esta guía se cubre una amplia gama de recursos, por lo que es posible que algunos recursos no sean accesibles según el programa en el que participa o su rol de desarrollo concreto. Para obtener información sobre cómo asociarse con Microsoft, consulte Programas para desarrolladores.
Documentación sobre el desarrollo de juegos
A lo largo de esta guía, encontrará vínculos profundos a la documentación relevante, organizada por tareas, tecnología y fase de desarrollo de juegos. Para ofrecerle una vista amplia de lo que tiene a su disposición, estos son los principales portales de documentación para el desarrollo de juegos para Windows.
Portal principal del Centro de desarrollo de Windows
El registro como desarrollador en el Centro de partners es el primer paso para publicar el juego de Windows. Una cuenta de desarrollador le permite reservar el nombre del juego y enviar juegos gratuitos o de pago a Microsoft Store para todos los dispositivos Windows. Use su cuenta de desarrollador para administrar el juego y los productos incluidos en el juego, obtener análisis detallados y habilitar servicios que crean excelentes experiencias para sus jugadores de todo el mundo.
Microsoft también ofrece varios programas para desarrolladores con el fin de ayudarle a desarrollar y publicar juegos de Windows. Se recomienda ver si alguno es adecuado para usted antes de registrarse en una cuenta del Centro de partners. Para más información, vaya a Programas para desarrolladores.
Programas para desarrolladores
Para publicar un juego en Microsoft Store, también tendrá que crear una cuenta de desarrollador en el Centro de partners.
Ejemplos de juegos
Hay muchas muestras de juegos y aplicaciones para Windows disponibles que le ayudarán a comprender las funciones de juegos de Windows y a empezar a desarrollar juegos rápidamente. Se desarrollan y publican ejemplos con regularidad, así que no olvide consultar de vez en cuando los portales de ejemplos para ver las novedades. También puede ver los repositorios de GitHub para recibir notificaciones de cambios y adiciones.
Aplicaciones de ejemplo para la Plataforma universal de Windows
Los foros para desarrolladores son un buen lugar para hacer y responder preguntas sobre el desarrollo de juegos y conectarse con la comunidad de desarrollo de juegos. Los foros también pueden ser recursos fantásticos para encontrar respuestas existentes a problemas difíciles a los que los desarrolladores se han enfrentado y resuelto en el pasado.
Publicación de aplicaciones y foros para desarrolladores de juegos
Los blogs para desarrolladores son otro excelente recurso para obtener la información más reciente sobre el desarrollo de juegos. Encontrará publicaciones sobre nuevas características, detalles de implementación, procedimientos recomendados, antecedentes de arquitectura, etc.
En la fase de concepto y planeamiento, se decide el aspecto del juego y las tecnologías y herramientas que se usarán para que cobre vida.
Introducción a las tecnologías de desarrollo de juegos
Al empezar a desarrollar un juego para UWP, tiene varias opciones disponibles para gráficos, entrada, audio, redes, utilidades y bibliotecas.
Si ya ha decidido todas las tecnologías que utilizará en su juego, entonces ya tiene todo listo. Si no es así, la guía Tecnologías de juegos para aplicaciones para UWP es una excelente introducción a muchas de las tecnologías disponibles y es muy recomendable leer para ayudarle a comprender las opciones y cómo encajan juntas.
Elección de la tecnología de gráficos y del lenguaje de programación
Hay varios lenguajes de programación y tecnologías de gráficos que se pueden usar en los juegos para Windows. El método que elija depende del tipo de juego que esté desarrollando, la experiencia, las preferencias de su estudio de desarrollo y los requisitos de las funciones específicas del juego. ¿Va a usar C#, C++ o JavaScript? ¿DirectX, XAML o HTML5?
DirectX
Microsoft DirectX es la opción para los gráficos y multimedia en 2D y 3D de mayor rendimiento.
DirectX 12 es más rápido y eficaz que cualquier versión anterior. Direct3D 12 permite escenas más enriquecidas, más objetos, efectos más complejos y un uso completo del hardware de GPU moderno en equipos Windows y Xbox One.
Si prefiere usar la conocida canalización de gráficos de Direct3D 11, también puede aprovechar las nuevas funciones de optimización y representación agregadas a Direct3D 11.3. Además, si es un desarrollador de API de Windows de escritorio demostrado con raíces de Win32, también tendrá esa opción en el juego para Windows.
Las amplias características y la integración profunda de la plataforma de DirectX proporcionan la potencia y el rendimiento que necesitan los juegos más exigentes.
XAML es un lenguaje de interfaz de usuario declarativo fácil de usar con características cómodas como animaciones, guiones gráficos, enlace de datos, gráficos basados en vectores escalables, cambio de tamaño dinámico y gráficos de escenas. XAML funciona bien para la interfaz de usuario de juego, menús, sprites y gráficos en 2D. Para facilitar el diseño de la interfaz de usuario, XAML es compatible con herramientas de diseño y desarrollo como Expression Blend y Microsoft Visual Studio. Generalmente se usa XAML con C#, pero C++ también es una buena opción si es tu lenguaje preferido o si el juego exige un uso de la CPU muy alto.
El lenguaje de marcado de Hipertexto (HTML) es un lenguaje de marcado de interfaz de usuario común que se usa para páginas web, aplicaciones y clientes enriquecidos. Los juegos para Windows pueden usar HTML5 como una capa de presentación completa con las características conocidas de HTML, el acceso a la Plataforma universal de Windows y la compatibilidad con características web modernas como AppCache, Web Workers, Canvas, arrastrar y colocar, programación asincrónica y SVG. En segundo plano, la representación HTML aprovecha la potencia de la aceleración de hardware de DirectX, por lo que todavía puede obtener las ventajas de rendimiento de DirectX sin escribir ningún código adicional. HTML5 es una buena opción si es un experto en desarrollo web, migra un juego web o quiere usar capas de gráficos y lenguajes que pueden ser más fáciles de enfocar que las otras opciones. HTML5 se usa con JavaScript, pero también puede llamar a componentes creados con C# o C++/CX.
La Infraestructura de gráficos de DirectX (DXGI) de Microsoft proporciona interoperabilidad y compatibilidad con varias tecnologías de gráficos. Para los gráficos de alto rendimiento puede combinar XAML y DirectX, mediante XAML para los menús y otra interfaz de usuario simple y DirectX para la representación de escenas en 2D y 3D complejas. DXGI también proporciona compatibilidad entre Direct2D, Direct3D, DirectWrite, DirectCompute y Microsoft Media Foundation.
Guía y referencia de programación de Infraestructura de gráficos de DirectX
C++/WinRT es un lenguaje con poca sobrecarga y de alto rendimiento que proporciona una excelente combinación de velocidad, compatibilidad y plataforma de acceso. C++/WinRT facilita el uso de todas las excelentes funciones de juegos de Windows, incluidos DirectX y Xbox Live. También puede reutilizar el código y las bibliotecas de C++ existentes. C++/WinRT crea código nativo y rápido que no produce la sobrecarga de la colección de elementos y, por lo tanto, su juego puede ofrecer un gran rendimiento y un bajo consumo de energía, lo que permite aumentar la duración de la batería. Usa C++/WinRT con DirectX o XAML, o crea un juego que use una combinación de ambos.
C#
C# es un lenguaje moderno e innovador que es sencillo, potente, seguro para tipos y orientado a objetos. C# permite un desarrollo rápido y conserva la familiaridad y expresividad de los lenguajes de estilo C. Aunque es fácil de usar, C# tiene muchas funciones avanzadas de lenguaje como polimorfismo, delegados, expresiones lambda, clausuras, métodos iteradores, covarianza y expresiones de Language Integrated Query (LINQ). C# es una excelente opción si tiene como destino XAML, quiere obtener un inicio rápido en el desarrollo del juego o tener una experiencia anterior de C#. C# se usa principalmente con XAML, así que si quiere usar DirectX, elija C++ en su lugar, o escriba parte de su juego como un componente de C++ que interactúe con DirectX. O bien, considere Win2D: una biblioteca de gráficos de Direct2D de modo inmediato para C# y C++.
Usar componentes de Windows Runtime para combinar lenguajes
Con la Plataforma universal de Windows, es fácil combinar componentes escritos en lenguajes diferentes. Cree componentes de Windows Runtime en C++, C# o Visual Basic y, a continuación, llámalos desde JavaScript, C#, C++ o Visual Basic. Esta es una excelente manera de programar partes del juego en el lenguaje de su elección. Los componentes también le permiten usar bibliotecas externas que solo están disponibles en un lenguaje en particular, así como usar código heredado que ya ha escrito.
Si elige DirectX para el juego, tendrá que decidir qué versión usar: Microsoft Direct3D 12 o Microsoft Direct3D 11.
DirectX 12 es más rápido y eficaz que cualquier versión anterior. Direct3D 12 permite escenas más enriquecidas, más objetos, efectos más complejos y un uso completo del hardware de GPU moderno en equipos Windows y Xbox One. Dado que Direct3D 12 funciona a un nivel muy bajo, puede dar a un equipo de expertos en desarrollo de gráficos o a un equipo de desarrollo de DirectX 11 con experiencia todo el control que necesiten para maximizar la optimización de gráficos.
Direct3D 11.3 es una API de gráficos de bajo nivel que usa el conocido modelo de programación de Direct3D y controla más de la complejidad implicada en la representación de GPU. También se admite en Windows y Xbox One. Si tiene un motor existente escrito en Direct3D 11 y no está listo para hacer que el salto a Direct3D 12, puede usar Direct3D 11 en 12 para lograr algunas mejoras de rendimiento. Las versiones 11.3+ contienen las nuevas características de representación y optimización habilitadas también en Direct3D 12.
Dependiendo de las necesidades del juego, el uso de puentes, motores de juego o middleware puede ahorrar tiempo de desarrollo y pruebas y recursos. Estos son algunos recursos y información general para puentes, motores de juegos y middleware.
Azure PlayFab
Ahora, como parte de la familia de Microsoft, Azure PlayFab es una plataforma back-end completa para juegos en directo y una manera eficaz para que estudios independientes empiecen a trabajar. Impulse los ingresos, la interacción y la retención, al tiempo que reduce los costos, con servicios de juegos, análisis en tiempo real y LiveOps.
Unity ofrece una plataforma para crear atractivos juegos y aplicaciones en 2D, 3D, VR y AR. Le permite hacer realidad su visión creativa con rapidez y ofrece sus contenidos en prácticamente cualquier medio o dispositivo.
A partir de Unity 5.4, Unity admite el desarrollo de Direct3D 12.
El conjunto modular de herramientas y tecnologías de Havok ayuda a los creadores de juegos llegar a nuevos niveles de interactividad e inmersión. Havok permite una física altamente realista, simulaciones interactivas y cinemáticas impresionantes. La versión 2015.1 o posteriores admite oficialmente UWP en Visual Studio 2015 en x86, 64 bits y Arm.
Unreal Engine 4 es un conjunto completo de herramientas de desarrollo de juegos para todos los tipos de juegos y desarrolladores. Para los juegos de consola y de PC más exigentes, Unreal Engine lo utilizan los desarrolladores de juegos de todo el mundo.
Ahora que ha decidido el tipo de juego que quiere crear y las herramientas y tecnología de gráficos que usará para hacerlo, está listo para empezar a trabajar en el diseño y prototipo. En su núcleo, el juego es una aplicación de la Plataforma universal de Windows, por lo que es ahí donde empezará.
Introducción a la Plataforma universal de Windows (UWP)
El Plataforma universal de Windows (UWP) proporciona una plataforma de API común en todos los dispositivos Windows. Los juegos que tienen como destino UWP pueden llamar a las API de WinRT que son comunes a todos los dispositivos. Debido a que la UWP proporciona un nivel de API principal garantizada, tiene la opción de crear un único paquete de la aplicación que se instalará en todos los dispositivos Windows 10. Y si quiere, su juego puede seguir llamando a las API (incluidas algunas API clásicas de Windows de Win32 y .NET) que son específicas de los dispositivos en los que se ejecuta el juego.
A continuación se muestran guías excelentes que describen las aplicaciones de la Plataforma universal de Windows en detalle y se recomienda leer para ayudarle a comprender la plataforma.
Introducción a las aplicaciones de la Plataforma universal de Windows
Configurar y prepararse para desarrollar una aplicación de la Plataforma universal de Windows es un proceso rápido y fácil. Las siguientes guías le indicarán el proceso paso a paso.
Si empieza a dar sus primeros pasos en la programación para UWP y está considerando usar XAML en el juego (consulte Elección de la tecnología de gráficos y lenguaje de programación), la serie de vídeos sobre el desarrollo de Windows 10 para principiantes absolutos es un buen punto de partida.
Presentación de la serie para principiantes absolutos de Windows 10 con XAML (publicación de blog)
La administración de la duración del proceso o el ciclo de vida de la aplicación describe los distintos estados de activación a los que una aplicación de la Plataforma universal de Windows puede realizar la transición. El juego se puede activar, suspender, reanudar o terminar, y puede pasar a través de esos estados de varias maneras.
Control de transiciones de ciclo de vida de la aplicación
La génesis de un gran juego es un diseño inspirado.
Los juegos comparten algunos principios de diseño y elementos de interfaz de usuario comunes con las aplicaciones, pero a menudo cuentan con un aspecto, sensación y objetivo de diseño únicos en la experiencia de usuario. Los juegos tienen éxito cuando se aplica un diseño meditado a ambos aspectos, ¿cuándo debe usar la experiencia de usuario probada del juego y cuándo debe divergir e innovar? La tecnología de presentación que elija para el juego (DirectX, XAML, HTML5 o alguna combinación de las tres) influirá en los detalles de implementación, pero los principios de diseño que se apliquen son en gran medida independientes de esa elección.
Aparte del diseño de la experiencia de usuario, el diseño del juego, como el diseño de nivel, el ritmo, el diseño del mundo y otros aspectos es una forma de arte propia, una que le corresponde a usted y a su equipo, y no se trata en esta guía de desarrollo.
Seguir una guía de color coherente en el juego mejora la estética, ayuda a la navegación y es una herramienta eficaz para informar al jugador de la funcionalidad del menú y HUD. El hecho de colorear de forma coherente los elementos del juego como, por ejemplo, las advertencias, los daños, los puntos de experiencia y los logros, puede dar lugar a una interfaz de usuario más limpia y reducir la necesidad de usar etiquetas explícitas.
El uso adecuado de la tipografía mejora muchos aspectos del juego, como el diseño de la interfaz de usuario, la navegación, la legibilidad, la atmósfera, la marca y la inmersión del jugador.
Un mapa de interfaz de usuario es un diseño de navegación y menús del juego expresados como un diagrama de flujo. El mapa de la interfaz de usuario ayuda a todas las partes interesadas implicadas a comprender la interfaz del juego y las rutas de navegación, y puede exponer obstáculos potenciales y puntos muertos al principio del ciclo de desarrollo.
Estas son guías y referencias para implementar audio en juegos con XAudio2, XAPO y Windows Sonic. XAudio2 es una API de audio de bajo nivel que proporciona procesamiento de señales y base de mezcla para desarrollar motores de audio de alto rendimiento. La API de XAPO permite la creación de objetos de procesamiento de audio multiplataforma (XAPO) para su uso en XAudio2 en Windows y Xbox. La compatibilidad con audio de Windows Sonic le permite agregar Dolby Atmos for Home Theater, Dolby Atmos for Headphones y compatibilidad con HRTF de Windows al juego o aplicación multimedia de streaming.
Mejor potencia, mejor rendimiento: su juego en DirectX 12
Kit de herramientas y bibliotecas de DirectX
El kit de herramientas de DirectX, la biblioteca de procesamiento de texturas de DirectX, la biblioteca de procesamiento de geometría de DirectXMesh, la biblioteca UVAtlas y la biblioteca DirectXMath proporcionan textura, malla, sprites y otras funciones de utilidad y clases auxiliares para el desarrollo de DirectX. Estas bibliotecas pueden ayudarte a ahorrar tiempo y esfuerzo en el desarrollo.
Obtención del kit de herramientas de DirectX para DirectX 12
En esta fase, el estudio está totalmente comprometido y pasa al ciclo de producción, con trabajo distribuido entre todos los miembros de su equipo. Está puliendo, refactorizando y ampliando el prototipo para crearlo en un juego completo.
Notificaciones y iconos dinámicos
Un icono es la representación de la aplicación en el menú Inicio. Los iconos y las notificaciones pueden impulsar el interés del jugador incluso cuando no está jugando.
Habilitación de compras de productos en la aplicación (complemento)
Un complemento (producto en la aplicación) es un elemento complementario incluido en el juego que los jugadores pueden comprar. Los complementos pueden ser niveles de juego, elementos o cualquier otra cosa que los jugadores puedan disfrutar. Si se usan adecuadamente, los complementos pueden proporcionar ingresos a la vez que mejoran la experiencia del juego. Puede definir y publicar los complementos del juego mediante el Centro de partners y habilitar las compras en la aplicación en el código del juego.
Depuración, optimización del rendimiento y supervisión
Para optimizar el rendimiento, puede aprovechar el Modo Juego en Windows para proporcionar a los jugadores la mejor experiencia de juego posible utilizando completamente la capacidad de su hardware actual.
Windows Performance Toolkit (WPT) consta de herramientas de supervisión del rendimiento que generan perfiles de rendimiento detallados de aplicaciones y sistemas operativos Windows. Esto es sumamente útil para supervisar el uso de memoria y mejorar el rendimiento de juegos. Windows Performance Toolkit se incluye en Windows SDK y Windows ADK. Este kit de herramientas consta de dos herramientas independientes: Windows Performance Recorder (WPR) y Windows Performance Analyzer (WPA). ProcDump, que forma parte de Windows Sysinternals, es una utilidad de línea de comandos que supervisa los picos de CPU y genera archivos de volcado durante los bloqueos del juego.
Algunas partes del desarrollo de DirectX pueden ser matizadas y complejas. Cuando llegue al punto de producción en el que necesite profundizar en los detalles del motor de DirectX o depurar problemas de rendimiento difíciles, los recursos y la información de esta sección pueden ayudar.
Herramienta de optimización y depuración de rendimiento para DirectX 12 en Windows
Desarrolle juegos internacionales para la plataforma de Windows y obtenga información sobre las características internacionales integradas en los principales productos de Microsoft.
No deje que los problemas de certificación retrasen la publicación del juego. Estas son las directivas y los problemas comunes de certificación que se deben tener en cuenta.
Acuerdo para desarrolladores de aplicaciones de Microsoft Store
El manifiesto de la tienda (StoreManifest.xml) es un archivo de configuración opcional que puede incluir en el paquete de la aplicación. En él se proporcionan funciones adicionales que no forman parte del archivo AppxManifest.xml. Por ejemplo, puede usar el manifiesto de la tienda para bloquear la instalación del juego si un dispositivo de destino no tiene el nivel mínimo especificado de funciones de DirectX o la memoria mínima especificada del sistema.
Cuando haya terminado el desarrollo y haya enviado el juego, todavía no habrá terminado. Quizás haya terminado el desarrollo de la versión uno, pero el camino del juego en el mercado tan solo acaba de comenzar. Querrá supervisar el uso y los informes de errores, responder a los comentarios del usuario y publicar actualizaciones en el juego.
Application Insights de Visual Studio proporciona análisis de rendimiento, telemetría y uso para el juego publicado. Application Insights te ayuda a detectar y solucionar problemas después del lanzamiento del juego, supervisar y mejorar el uso continuamente, así como comprender la forma en que los jugadores interactúan con el juego. Aplicación Insights funciona agregando un SDK a la aplicación, que envía la telemetría al Portal de Azure.
Creación y administración de actualizaciones de contenido
Para actualizar el juego publicado, envíe un nuevo paquete de la aplicación con un número de versión superior. Después de que el paquete realice su camino a través del envío y la certificación, estará disponible automáticamente para los clientes como una actualización.
Xbox Live es una red de juegos líder que conecta a millones de jugadores de todo el mundo. Los desarrolladores obtienen acceso a las características de Xbox Live que pueden aumentar orgánicamente el público de su juego, incluida la presencia de Xbox Live, marcadores, ahorros en la nube, centros de juego, clubs, chat de fiesta, DVR de juegos, etc.
En el equipo de Xbox, creemos que, si todo el mundo juega, ganamos todos. Nos comprometemos a garantizar que el máximo de desarrolladores posible disponga de las herramientas necesarias para crear experiencias accesibles. En esta ruta de aprendizaje se presentan los conceptos fundamentales sobre la accesibilidad en los juegos para desarrolladores de juegos, plataformas y hardware que quieran ampliar sus conocimientos sobre esta cuestión.