25/11/2019
Ofrecer a los jugadores la opción de disfrutar de un juego en pantalla completa es más que un simple detalle técnico; es un estándar fundamental en la experiencia de usuario. Una inmersión total puede ser la diferencia entre un buen juego y uno inolvidable. Afortunadamente, GameMaker proporciona herramientas sencillas y potentes para gestionar los modos de ventana. Sin embargo, aunque las funciones básicas son fáciles de implementar, existen matices y técnicas más avanzadas, como el modo sin bordes o la correcta gestión de las vistas, que todo desarrollador debería conocer para ofrecer un producto pulido y profesional. En esta guía completa, desglosaremos todo lo que necesitas saber para controlar la visualización de tu juego, desde la configuración inicial hasta la resolución de los problemas más frecuentes.

El Método Más Sencillo: Empezar en Pantalla Completa
Para aquellos que deseen que su juego se inicie directamente en modo de pantalla completa sin que el jugador deba hacer nada, GameMaker ofrece una opción increíblemente directa en su configuración global.
Este método es ideal para juegos tipo arcade, presentaciones o cualquier experiencia donde quieras maximizar la inmersión desde el primer segundo. Para activarlo, sigue estos pasos:
- Dentro del IDE de GameMaker, busca el árbol de recursos (generalmente a la derecha).
- Navega hasta "Game Options" (Opciones del Juego) y haz doble clic.
- Selecciona la plataforma para la que estás compilando (por ejemplo, Windows, macOS).
- Dentro de las opciones de "Graphics" (Gráficos), encontrarás una casilla de verificación llamada "Start in fullscreen mode" (Iniciar en modo de pantalla completa).
- Marca esta casilla, guarda los cambios y ¡listo! La próxima vez que ejecutes tu juego, se lanzará ocupando toda la pantalla.
Si bien es extremadamente fácil, este método tiene una desventaja: es estático. El jugador no tendrá una forma sencilla de volver al modo ventana a menos que tú programes esa funcionalidad específicamente.
Control Dinámico: La Función window_set_fullscreen()
El verdadero poder reside en dar al jugador el control. Para ello, GameMaker nos brinda la función window_set_fullscreen(enable). Esta función es el núcleo de cualquier sistema de cambio de pantalla y es muy fácil de usar.
La función acepta un único argumento booleano (true o false):
window_set_fullscreen(true);: Cambia el juego a modo de pantalla completa.window_set_fullscreen(false);: Devuelve el juego a modo ventana.
Implementando un Interruptor (Toggle) para el Jugador
La implementación más común es permitir que el jugador presione una tecla (como F11, un estándar en muchas aplicaciones) para alternar entre los dos modos. Para lograr esto, necesitamos comprobar primero en qué estado se encuentra la ventana actualmente. Aquí es donde entra en juego la función window_get_fullscreen(), que devuelve true si el juego ya está en pantalla completa y false si no lo está.

Aquí tienes un ejemplo de código que puedes colocar en el evento "Key Press - F11" de un objeto controlador persistente (como un `obj_game_manager`):
if (window_get_fullscreen()) { // Si ya estamos en pantalla completa, volvemos a modo ventana. window_set_fullscreen(false);} else { // Si estamos en modo ventana, pasamos a pantalla completa. window_set_fullscreen(true);}Con este simple bloque de código, has creado un sistema de alternancia robusto y funcional que los jugadores esperarán encontrar en tu juego.
La Alternativa Moderna: Pantalla Completa Sin Bordes (Borderless Fullscreen)
La pantalla completa tradicional a veces puede ser problemática. Cambiar a otras aplicaciones (Alt+Tab) puede causar parpadeos, retrasos o incluso bloqueos temporales. Para solucionar esto, existe el modo de "pantalla completa sin bordes".
Técnicamente, el juego sigue ejecutándose en una ventana, pero esta ventana se redimensiona para ocupar exactamente toda la pantalla y se le quitan los bordes y la barra de título. El resultado es visualmente idéntico a la pantalla completa, pero con la flexibilidad y estabilidad de una aplicación en modo ventana. Esto es especialmente útil para jugadores con múltiples monitores.
GameMaker facilita esto con la función window_enable_borderless_fullscreen(enable).
¡Importante! Debes llamar a esta función antes de activar la pantalla completa. No tendrá efecto si el juego ya está en modo fullscreen.

Aquí tienes un ejemplo de cómo combinar ambas funciones para activar una pantalla completa sin bordes:
// Primero, habilitamos el modo sin bordes para la próxima vez que se pida pantalla completa.window_enable_borderless_fullscreen(true);// Ahora, activamos la pantalla completa. La configuración anterior hará que sea sin bordes.window_set_fullscreen(true);
Nota: Según la documentación oficial, esta función está diseñada principalmente para la plataforma Windows.
Tabla Comparativa: Pantalla Completa Estándar vs. Sin Bordes
| Característica | Pantalla Completa Estándar (Exclusiva) | Pantalla Completa Sin Bordes |
|---|---|---|
| Rendimiento | Potencialmente mayor, ya que el sistema operativo le da al juego control exclusivo sobre la pantalla. | Excelente, aunque teóricamente podría ser ligeramente inferior al modo exclusivo. La diferencia es a menudo imperceptible. |
| Comportamiento de Alt+Tab | Lento, puede causar parpadeos o minimización del juego. | Instantáneo y fluido, como cambiar entre dos ventanas normales. |
| Soporte Multimonitor | Problemático. El ratón puede quedar atrapado en la pantalla del juego y las otras pantallas pueden parpadear. | Ideal. Permite mover el ratón fácilmente a otros monitores sin minimizar el juego. |
| Notificaciones del Sistema | Generalmente no se muestran o minimizan el juego. | Pueden superponerse al juego sin interrumpirlo. |
Solución de Problemas Comunes: ¡Mi Juego se Ve Roto!
Un problema muy común que encuentran los desarrolladores es que, al cambiar de modo ventana a pantalla completa (o viceversa), los gráficos se estiran, se deforman o partes de la interfaz de usuario (GUI) se descolocan. Esto ocurre porque cambiar el tamaño de la ventana no actualiza automáticamente el tamaño de la vista o del viewport que tu juego está renderizando.
La ventana del juego es el contenedor, pero el viewport es el "lienzo" sobre el que se dibuja tu juego. Debes asegurarte de que el lienzo se redimensione correctamente junto con el contenedor.
Cómo Redimensionar la Vista y la GUI
La mejor manera de manejar esto es tener un objeto controlador que, cada vez que se cambia el tamaño de la ventana, recalcule y ajuste el tamaño de la cámara y de la capa GUI.
Aquí hay un script de ejemplo que podrías ejecutar justo después de cambiar el modo de pantalla:
/// @function update_resolution()// Obtener las nuevas dimensiones de la ventana var _w = window_get_width();var _h = window_get_height();// Actualizar la capa GUI para que coincida con el nuevo tamaño display_set_gui_size(_w, _h);// Actualizar la cámara principal (asumiendo que usas la vista 0) var _camera = view_get_camera(0);camera_set_view_size(_camera, _w, _h);// Actualizar el viewport para que ocupe toda la ventana view_set_wport(0, _w);view_set_hport(0, _h);
Ahora, puedes llamar a esta función justo después de usar `window_set_fullscreen()`:
if (window_get_fullscreen()) { window_set_fullscreen(false);} else { window_set_fullscreen(true);}// Llamamos a nuestra función para ajustar todo después del cambio.update_resolution();Esta práctica asegura que tu juego se adapte correctamente a cualquier resolución, manteniendo la relación de aspecto y la posición de la interfaz, lo que resulta en una experiencia mucho más profesional para el jugador.

Preguntas Frecuentes (FAQ)
¿Por qué mi juego no vuelve a modo ventana después de marcar "Start in fullscreen"?
La opción en Global Game Settings solo define el estado inicial. No crea una lógica para revertirlo. Si quieres que el jugador pueda salir de la pantalla completa, debes programar un interruptor usando `window_set_fullscreen(false)` asociado a una tecla o a una opción del menú.
¿La pantalla completa sin bordes funciona en todas las plataformas?
No, la función `window_enable_borderless_fullscreen()` está diseñada específicamente para Windows. En otras plataformas, el comportamiento puede variar o simplemente no funcionar. Siempre es recomendable probar tu juego en cada plataforma de destino.
Mi juego se ve pixelado o borroso en pantalla completa, ¿por qué?
Esto suele ocurrir cuando la resolución base de tu juego (el tamaño de tu cámara/vista) es mucho menor que la resolución del monitor. Al estirar esa pequeña imagen para que ocupe una pantalla grande, los píxeles se agrandan. Puedes experimentar con la configuración de la cámara y las vistas, o habilitar opciones como el suavizado de texturas (texture interpolation) si buscas un look menos pixelado.
¿Puedo cambiar la resolución de la pantalla en modo fullscreen?
El modo de pantalla completa exclusivo a menudo cambia la resolución del monitor para que coincida con la del juego. Sin embargo, una práctica más moderna, especialmente con el modo sin bordes, es mantener la resolución nativa del monitor y simplemente escalar el viewport de tu juego para que se ajuste. Esto suele dar mejores resultados en monitores modernos.
Si quieres conocer otros artículos parecidos a Pantalla Completa en GameMaker: La Guía Definitiva puedes visitar la categoría Juegos.
