Reenvio, para que quede en el archivo.
Kaixo, > > He creado el repositorio 'moon' en el GitHub de Itsas: > https://github.com/itsas-taldea/moon > > MOON: 1110011 es un juego de mesa que diseño Txipi hace unos años en el > contexto de https://compus.deusto.es. Además de tener copias físicas, > tengo instalada en el móvil la versión para Android que se hizo como > resultado de la campaña de Kickstarter ( > https://www.kickstarter.com/projects/garaizar/moon-0?lang=en). Suelo > jugar cuando hago viajes en avión. Tengo instalada la versión 0.1 y echo en > falta opciones de juego que estan en el manual y en el activity book. No > debería ser tan difícil reimplementarlo y así poder añadir las opciones que > faltan... Al ponerme a ello, me he dado cuenta de que hay varias versiones > posteriores (hasta la 1.0) XD. Sea como fuere, el año pasado me puse en > contacto con Txipi y me facilitó las fuentes de todas las cartas en SVG, > además de confirmarme que todo el juego (y el arte) es tan copyleft como > imposible que no lo fuera. > > Por otro lado, llevo varios años siguiendo el proyecto Godot ( > https://godotengine.org/), un "engine" open source para hacer videojuegos > y apps 2D y 3D. > *En realidad, llevo una década buscando alguna herramienta para poder > hacer software con GUIs invirtiendo un esfuerzo "razonable" para alguien > que no tiene formación en desarrollo de software. He probado Gtk con Ruby, > Qt con QML, tkinter (Python), el toolkit de Matlab, Ogre3D, Horde3D, > Urho3D, three.js, D3.js, Vue.js (con varios toolkits CSS)... Cada una > funciona en su contexto, pero no sirven para aprender una herramienta y > poder hacer GUIs que funcionen en escritorio (GNU/Linux o Windows), en Web > (HTML5 o WASM), y en móviles/tablets (Android). Lo más parecido es (era) > hacer aplicaciones web y opcionalmente complementarlas con un proceso > ejecutándose en local (o meterlas en electron para 'estandarizar' el > navegador). Demasiado JS para mi estómago.* > Godot es algo... diferente. Permite exportar a escritorio (GNU/Linux, > Windows, macOS), Web o Android prácticamente sin esfuerzo. También se puede > exportar a consolas con NDAs y dinero de por medio. Internamente no es muy > diferente del resto de "2D/3D (game) engines" escritas en C++/C#, pero > tiene un enfoque muy centrado en ser usable para quienes no saben programar > o quienes tenemos conocimientos limitados de software, y tiene el plus de > exportar a WASM. De forma similar a Blender, FreeCAD y otras herramientas > de diseño, se ha complementado la forma "tradicional" de hacer las cosas > con un lenguaje de scripting (muy inspirado en Python, pero más simple). De > hecho, hasta la versión 3.x había "Visual Scripting" también: > https://docs.godotengine.org/en/3.0/getting_started/scripting/visual_script/getting_started.html > (ver > https://godotengine.org/article/godot-4-will-discontinue-visual-scripting/). > Para funciones avanzadas, se puede compilar contra otros lenguajes usando > la semántica de C, o se pueden utilizar puertos TCP/IP de forma similar a > como se comunica un frontend web con un backend local. Aunque tiene sus > limitaciones (como no heredar el estilo nativo del explorador de archivos), > las ventajas parecen compensar. > > El año pasado decidí probar Godot 3.x utilizando Moon como contenido. Me > dejó muy buen sabor de boca, pero sabiendo que la versión 4 estaba "cerca", > decidí posponerlo (para evitar trabajo de reescritura posterior). ¡Hace > unas semanas publicaron Godot 4.0! Ya empieza a ser muy comparable a Unity > y Unreal Engine no sólo en "físicas y efectos chulos que te cagas" ( > https://godotengine.org/showcase/) sino en madurez de las APIs y > posibilidades de importación. > > Así, el repositorio que he creado contiene: > > - blueprints: los SVG de las "cartas", y la fuente. > - container: Dockerfile para usar Godot en integración continua (debería > ser upstreameado eventualmente; estoy en ello). > - doc: texto en restructuredtext y markdown para ser procesado con Sphinx. > - godot: proyecto del juego para Godot 4.x. > > Las fuentes de las cartas y la documentación (que incluye las reglas, FAQ, > etc.) están bajo CC-BY-SA. El juego para Godot 4.x está bajo Apache 2.0. > > En integración continua (por ejemplo: > https://github.com/itsas-taldea/moon/actions/runs/4618392973): > > - Se exporta el juego para GNU/Linux, Windows y macOS, y se actualizan los > assets de la pre-release tip: > https://github.com/itsas-taldea/moon/releases/tag/tip > - Se exporta el juego para Web, se genera la documentación en HTML con > Sphinx, se combinan ambos resultados y se publican/actualizan en: > - https://itsas-taldea.github.io/moon/ (la documentación) > - https://itsas-taldea.github.io/moon/play/ (el juego) > > Como el desarrollo de videojuegos "está de moda", creo que es interesante > disponer de un ejemplo a mano que ilustre lo fácil que es empezar con > herramientas open source. Porque, además de ser software libre y gratis, y > no tener royalties asociados, estoy convencido de que difícilmente puede > ser tan sencillo hacerlo con Unity/UE . El commit inicial del repositorio ( > https://github.com/itsas-taldea/moon/commit/c3af5fee1f0ea9e0c9fbeeda74a69c153886df48) > incluye un "pipeline" de 100 líneas. Eso (que se puede copiar tal cual) es > todo lo que hace falta para "publicar" un juego/app para cuatro plataformas > (linux, windows, macos y web). Y 50 líneas más ( > https://github.com/itsas-taldea/moon/blob/main/.github/workflows/Pipeline.yml) > para publicar al mismo tiempo la documentación en HTML (o PDF, o epub, o > man o...). También hay muchos juegos "indie" publicados en > https://itch.io/, que es un alternativa muy interesante si se quiere dar > a conocer el juego (y no sólo hacerlo). > > Con respecto al juego en sí (la versión web en > https://itsas-taldea.github.io/moon/play/ o las de escritorio > descargables de https://github.com/itsas-taldea/moon/releases/tag/tip) es > un prototipo muy básico. El código es lo suficientemente funcional para > cargar las "cartas" y cromprobar que la lógica de hacer operaciones y > actualizar los elementos respondiendo a eventos funciona. Es un pasatiempo, > por lo que no tengo ninguna prisa, y puede que esté meses sin tocarlo. Pero > como ya llevo un par de años haciendo alguna que otra cosa con ello de vez > en cuando, me ha parecido pertinente ordenarlo un poco y compartirlo. > > Si la "plantilla" (integración continua, documentación y proyecto Godot) > sirve para que algun alumno que quiera hacer un TFG o un proyecto en su > tiempo libre se plantee usar herramientas open source, bienvenido sea. Si a > cualquiera os apetece ojear el código y preguntar o corregir, bienvenido es > también. Ponerlo en GitHub es para facilitar que se pueda leer el código, > hacer forks y opcionalmente proponer modificaciones. Pero ya digo que por > el momento tiene poco interés didáctico el código del subdiretorio `godot/` > porque no he puesto esfuerzo en usar clases debidamente. > > A mayores, Txipi me ha comentado que la versión disponible en Google Play > y en https://moon.deusto.es/ está hecha con libGDX, y por tanto entiendo > que en Java. Aunque no han publicado las fuentes todavía, tienen intención > de hacerlo. Eventualmente, incluiré esa versión en un subdirectorio del > repositoro y trataré de añadir a la integración continua la compilación en > paralelo con la versión hecha con Godot. Creo que dada la simplicidad de > las reglas de Moon, puede ser interesante ver las similitudes y diferencias > entre dos implementaciones en diferentes lenguajes y por diferentes > personas. > > Salud > > Unai >
_______________________________________________ ITSAS mailing list [email protected] http://list.ehu.eus/mailman/listinfo/itsas
