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

Responder a