10 mayo 2013

MonoGame no funciona... aún

XNA era una biblioteca desarrollada por Microsoft para permitir la creación de juegos para Windows e incluso para XBox, como alternativa sencilla (y limitada) a DirectX.

Pero la dejaron morir. Shawn Hargreave, el creador de la biblioteca Allegro y que fue contratado por Microsoft como "alma madre" de XNA, lleva tiempo orientado a otras cosas (como Windows Phone 8); Nick Gravelyn, que también posteaba con frecuencia sobre la plataforma, lleva más de dos años sin publicar nada en su blog; el propio blog del "equipo de desarrollo de XNA" ha publicado apenas cuatro posts en más de medio año, y no hablan sobre XNA sino sobre otras tecnologías auxiliares o... ¿sustitutivas? como MonoGame.

Así que iba siendo el momento de probar ese tal MonoGame, que se supone que es una nueva plataforma open source, que trata de ser compatible con XNA, pero permitiendo la portabilidad a Linux, Android, Mac e iOS con una cierta facilidad, además de la plataforma Windows original.

Y el resultado no ha sido bueno. Sobre una máquina virtual de Windows XP, con Visual Studio 2010 Express (que se supone que es el único prerrequisito para desarrollar para Windows), he probado a instalar la última versión de MonoGame para Windows, la 3.0.1, de marzo de 2013. La instalación ha sido rápida y sin problemas aparentes, he podido entrar a Visual Studio y ver que me ofrecía la posibilidad de crear proyectos de MonoGame.


Primer jarro de agua fría: a pesar de estar en Windows, se me ofrece crear proyectos para Linux, pero no para Android, a pesar de que esa máquina virtual tiene instalado el Android SDK y otras herramientas auxiliares, como Eclipse, y la he utilizado para crear alguna aplicación Android con anterioridad.

Veo que los proyectos para Windows no se basan en DirectX (a pesar de que SharpDX es parte de la distribución), sino en OpenGL. Razonable, si se busca portabilidad, pero peligroso...

Y efectivamente: creo un proyecto vacío para Windows, lo lanzo y aparece un primer error que dice que no encuentra "openal32.dll". Busco en los foros de MonoGame y me llevan a una descarga ( http://monogame.codeplex.com/discussions/357014 ) que soluciona este primer problema. Vuelvo a lanzar y ahora es "OpenGL32.dll" el que no tiene cierto punto de entrada que el proyecto espera ("No se puede encontrar el punto de entrada denominado 'glBindFramebuffer' en el archivo DLL 'opengl32.dll'."). Esta DLL es de 2008, así que busco una versión más moderna, tomada de un Windows 7... mismo error. Busco otra aún más moderna, tomada de un Windows 8, y me dice que "esa DLL no es una imagen válida de Windows". Quizá sea una DLL de 64 bits y el XP de pruebas es de 32 bits. Llevo el ejecutable y las DLL al equipo que tiene Windows 8, lo lanzo con doble clic, y recibo un "el programa dejó de funcionar". Lo lanzo desde línea de comandos para ver los mensajes de error... y no hay mensajes de error.

Y el caso es que en la página de MonoGame se puede ver de gente que ha creado proyectos, incluso para Android e iOs, y que los ha subido a las correspondientes AppStores. Será desde Linux o desde Mac, porque lo que es desde Windows... o yo he pasado algo por alto, o el sistema todavía está muy poco pulido.

XNA era engorroso de instalar, y un juego con XNA no era especialmente fácil de llevar a terceras personas, por los redistribuibles que había que instalar con anterioridad, pero al menos se podía hacer funcionar. Con MonoGame no lo he conseguido. Si lo llego a lograr, lo contaré...


3 comentarios:

Phinter dijo...

Cabezón de mi, leo esta entrada en tu blog y me digo: 'Aún Nacho Cabanes habiendo probado MonoGame, debo hacer la prueba por mi mismo'. ¡Pam, contra el muro! Los mismos errores uno tras otro, JaJa!

Mencionar que la estructura que viene de ejemplo es igual a XNA, quizás me convezca mucho cuando saquen algo estable. ¡Saludo!

By: Pedro Zalacain.

Anónimo dijo...

xna difícil de instalar? solo era clic en siguiente y así sucesivamente ahora con monogame también me lanzo el error de la dll de openal pero sin mayores inconvenientes en este directorio se encuentra el instalador de una solitaria dll “C:\Program Files (x86)\MonoGame\v3.0” clic en install y listo ahora con tu según fatídico error, no sé si habrás probado xna 4 en tu maquinita sabrás que a diferencia de xna 3, esta versión necesita de más recursos de hardware para ser más específicos de recursos de video si pruebas monogame en una pc más moderna no te saldrá ningún error y con esto diviértete con monogame que hasta ahora y con mucho agrado es igual a xna y no probé solo con 2d también con 3D, la estructura si es igual.

Guaymas dijo...

Cierto lo que comenta anónimo, si funciona instalando oalinst.exe
Probado con monogame 3.0.1 vsstudio ultimate 2010 y win8 64 bits.