Why can't I find the procedure entry point mfcreatedxgidevicemanager?

Solución al error MFCreateDXGIDeviceManager en GM

12/04/2012

Valoración: 4.63 (2650 votos)

En el apasionante mundo del desarrollo de videojuegos, pocas cosas son tan frustrantes como un error de compilación que detiene en seco todo nuestro progreso. Te has esforzado, has diseñado tus mecánicas, has creado tus sprites y, cuando llega el momento de la verdad, al pulsar el botón de "Run", te encuentras con una pared de texto incomprensible y un mensaje de error críptico. Uno de los más desconcertantes que pueden aparecer, especialmente para desarrolladores que trabajan con hardware más antiguo, es el relacionado con MFCreateDXGIDeviceManager. Si has visto este error o el código de salida -1073741511 en tu log de GameMaker, no te preocupes, no estás solo y, lo más importante, hay una explicación y varias soluciones para ello.

Why did my mfcreatedxgidevicemanager build fail?
For the details of why this build failed, please review the whole log above and also see your Compile Errors window. The procedure entry point MFCreateDXGIDeviceManager could not be located in the dynamic link library MFPlat.DDL." This message was a result of trying to run the game; not shown in GM but as a Windows popup error message.

Este artículo está diseñado para guiarte a través del laberinto técnico, explicando en términos sencillos qué significa este error, por qué aparece específicamente en ciertos ordenadores y, lo más crucial, cómo puedes solucionarlo para volver a lo que realmente importa: crear videojuegos increíbles. Vamos a desglosar el problema desde su raíz hasta las soluciones más prácticas.

Índice de Contenido

¿Qué Significa el Error "MFCreateDXGIDeviceManager no Encontrado"?

Cuando GameMaker intenta ejecutar tu juego, compila todo tu código y tus assets en un paquete ejecutable. Para correr este paquete, utiliza un programa llamado "Runner.exe". Este Runner es el responsable de interactuar con tu sistema operativo para dibujar gráficos en la pantalla, reproducir sonido y gestionar las entradas del jugador. Para hacer todo esto, necesita comunicarse con las librerías del sistema, como DirectX.

El error "The procedure entry point MFCreateDXGIDeviceManager could not be located in the dynamic link library MFPlat.DDL" se puede traducir como: "Oye, estaba intentando encontrar una herramienta específica llamada 'MFCreateDXGIDeviceManager' dentro de la caja de herramientas del sistema 'MFPlat.dll', pero no la encuentro por ninguna parte".

En términos más técnicos:

  • MFPlat.dll: Es una librería de Microsoft Media Foundation, una parte de Windows que se encarga de todo lo relacionado con multimedia, como vídeo y audio. Los motores de juego modernos la utilizan para gestionar de forma eficiente los recursos gráficos.
  • MFCreateDXGIDeviceManager: Es una función específica dentro de esa librería. Su trabajo es crear un "gestor de dispositivos DXGI". Piensa en ello como un supervisor que ayuda a que la tarjeta gráfica (a través de DirectX) y otras partes del sistema trabajen juntas de forma coordinada, algo esencial para el rendimiento de los juegos modernos.
  • Entry Point Not Found (Punto de Entrada no Encontrado): Es el núcleo del problema. El Runner de GameMaker fue programado esperando que esa función existiera en el sistema operativo, pero al buscarla, no la encontró. Esto provoca un fallo catastrófico e inmediato, y el Runner se cierra, lo que en el log de GameMaker se reporta como "exited with non-zero status (-1073741511)", que es el código de error específico de Windows para un "punto de entrada no encontrado".

Entonces, la pregunta clave no es qué hace la función, sino ¿por qué no está en tu ordenador?

La Raíz del Problema: Una Brecha Generacional con Windows 7

Aquí es donde resolvemos el gran misterio. La función MFCreateDXGIDeviceManager no ha existido siempre en Windows. Fue introducida por Microsoft a partir de Windows 8. Esto significa que cualquier versión anterior del sistema operativo, incluyendo el venerable y popular Windows 7, simplemente no tiene esta función en su librería `MFPlat.dll`.

Las versiones más recientes de GameMaker y, en particular, sus runtimes (el conjunto de herramientas que el motor usa para construir y ejecutar el juego para una plataforma específica), se desarrollan y actualizan pensando en los sistemas operativos modernos que usa la gran mayoría de la gente: Windows 10 y Windows 11. Los desarrolladores de GameMaker asumen que ciertas funciones y tecnologías modernas estarán presentes en el sistema. Al dejar de dar soporte oficial a Windows 7, ya no se preocupan por mantener la compatibilidad con él.

Es como si una aplicación moderna de smartphone intentara usar el GPS para una función de mapas, pero la estás intentando ejecutar en un teléfono de principios de los 2000 que ni siquiera tenía GPS. La aplicación fallará porque busca una característica de hardware y software que simplemente no existe en ese dispositivo antiguo. Tu ordenador con Windows 7, a pesar de que pueda haber sido potente en su día, se ha encontrado con esta misma barrera de compatibilidad de software.

Soluciones Prácticas para Volver a la Acción

Afortunadamente, no todo está perdido. Tienes varias vías para solucionar este problema, cada una con sus pros y sus contras. Aquí te las presentamos, de la más recomendada a la más específica.

Solución 1: Actualizar tu Sistema Operativo (La Opción Definitiva)

Aunque puede ser la solución que menos quieres oír, es la más correcta y la que te evitará futuros dolores de cabeza. Actualizar tu sistema operativo a Windows 10 o Windows 11 resolverá este problema de raíz y te dará acceso a todas las librerías y funciones modernas que el software actual requiere. No solo GameMaker, sino muchas otras herramientas de desarrollo y juegos ya no son compatibles con Windows 7.

  • Ventajas: Máxima compatibilidad, acceso a las últimas versiones de todos los programas, mejoras de seguridad y rendimiento.
  • Desventajas: Puede que tu hardware de 15 años no sea oficialmente compatible o no funcione de manera óptima con un sistema operativo moderno. Podría requerir una instalación limpia, lo que implica hacer copias de seguridad de tus datos.

Solución 2: Instalar y Usar un Runtime de GameMaker Antiguo

Esta es la solución más práctica si no puedes o no quieres actualizar tu sistema operativo. GameMaker te permite instalar y cambiar entre diferentes versiones del runtime. Hubo un tiempo en que los runtimes de GameMaker sí eran compatibles con Windows 7. Tu objetivo es encontrar e instalar una de esas versiones más antiguas.

Para hacerlo, sigue estos pasos:

  1. Dentro de GameMaker, ve a File > Preferences.
  2. En el menú de la izquierda, busca la sección Runtime Feeds.
  3. Asegúrate de que estás en el canal "Stable". Verás una lista de runtimes disponibles.
  4. Busca e instala una versión anterior. El soporte oficial para Windows 7 finalizó alrededor de mediados de 2022, por lo que un runtime de finales de 2021 o principios de 2022 es un buen punto de partida. Por ejemplo, una versión como la 2022.1.x o alguna de 2021.
  5. Una vez instalado, asegúrate de seleccionarlo como el runtime activo para tu proyecto en la esquina superior derecha del IDE de GameMaker.
  6. Intenta compilar y ejecutar tu juego de nuevo. ¡Debería funcionar!
  • Ventajas: Te permite seguir trabajando en Windows 7 sin cambiar de hardware o sistema operativo. Es una solución relativamente sencilla.
  • Desventajas: No podrás usar las últimas funciones, correcciones de errores y mejoras de rendimiento que se han añadido a los runtimes más nuevos de GameMaker.

Tabla Comparativa de Plataformas para Desarrollo

Para visualizar mejor por qué ocurre este problema, aquí tienes una tabla comparativa simple:

CaracterísticaWindows 7Windows 10 / 11
Soporte de GameMakerFinalizado (Requiere Runtimes antiguos)Completo y Activo
Función MFCreateDXGIDeviceManagerInexistentePresente y funcional
Versión de DirectX SoportadaHasta DirectX 11 (con actualizaciones)DirectX 12 y superior
Actualizaciones de SeguridadFinalizadas (Vulnerable)Activas

Preguntas Frecuentes (FAQ)

A continuación, respondemos algunas dudas comunes que pueden surgir en torno a este error.

¿Puedo simplemente copiar el archivo MFPlat.dll de un ordenador con Windows 10 al mío?

No. Absolutamente no. Las librerías del sistema como `MFPlat.dll` están profundamente integradas en el sistema operativo y dependen de docenas de otras librerías y componentes del kernel. Copiar y pegar un archivo de una versión de Windows a otra casi con toda seguridad causará inestabilidad en el sistema o simplemente no funcionará.

¿Este error significa que mi ordenador es demasiado viejo para hacer juegos?

Para las versiones más modernas de las herramientas de desarrollo, sí, la edad de tu sistema operativo es un factor limitante. Un ordenador de 15 años, además de la barrera del software, tendrá dificultades para compilar proyectos grandes y para ejecutar juegos modernos que sirvan como referencia. Sin embargo, usando la solución del runtime antiguo, todavía puedes crear juegos fantásticos, especialmente si apuntas a un estilo retro o 2D que no sea exigente a nivel de hardware.

Si logro compilar con un runtime antiguo, ¿los jugadores con Windows 10/11 podrán jugar mi juego?

¡Sí! La compatibilidad hacia atrás de Windows es excelente. Un ejecutable creado con un runtime antiguo que funciona en Windows 7 funcionará sin problemas en Windows 10 y 11. El problema es el inverso: un ejecutable moderno no funciona en un sistema antiguo.

Conclusión

El error MFCreateDXGIDeviceManager no es un fallo en tu proyecto ni un problema con tu habilidad como desarrollador. Es, fundamentalmente, un conflicto de compatibilidad entre un software moderno (el último runtime de GameMaker) y un sistema operativo que ya no recibe soporte (Windows 7). La solución pasa por alinear estos dos componentes, ya sea actualizando el más antiguo (el sistema operativo) o retrocediendo a una versión anterior del más nuevo (el runtime de GameMaker).

Nuestra recomendación principal es considerar una actualización de tu entorno de desarrollo, ya que te abrirá las puertas a las últimas tecnologías y te evitará problemas similares en el futuro. Sin embargo, si eso no es una opción, cambiar a un runtime más antiguo es una solución perfectamente válida que te permitirá seguir dando vida a tus ideas. ¡Ahora, a solucionar ese error y volver a compilar!

Si quieres conocer otros artículos parecidos a Solución al error MFCreateDXGIDeviceManager en GM puedes visitar la categoría Juegos.

Subir