<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>el blog de manuq</title><link>https://blog.manuq.ar/</link><description>contenido reciente en el blog de manuq</description><generator>Hugo</generator><language>es-AR</language><lastBuildDate>Sun, 01 Jan 2023 08:00:00 -0700</lastBuildDate><atom:link href="https://blog.manuq.ar/index.xml" rel="self" type="application/rss+xml"/><item><title>jogos de Gamescom Latam 2026</title><link>https://blog.manuq.ar/posts/juegos-de-gamescom-2026/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><guid>https://blog.manuq.ar/posts/juegos-de-gamescom-2026/</guid><description>lo que jugué y un poco del evento</description><content:encoded><![CDATA[<p>Fui a <a href="https://latam.gamescom.global">este evento</a> en São Paulo, Brasil. En tres días jugué un montón de videojuegos y tuve lindas conversaciones. ¡Gracias a Endless Access por mandarme! Muito obrigado. También obrigado a mi colega Joana por ser una gran compañía. Aprovechamos a tirar ideas para el laburo. Además se encargó de los preparativos del viaje, y fue mi guía turística para ir a cenar a un lugar bien paulista.</p>
<p>De más está decir que la lista abajo es re subjetiva según mi gusto e intereses. La mayoría de estos juegos estaban en los stands como finalistas del BIG festival.</p>
<h2 id="slay-clones">slay clones</h2>
<p>En los 90&rsquo;s DOOM fue tan influyente que empezaron a aparecer muchos juegos similares. Se dieron en llamar los <em>doom clones</em> (recomiendo escuchar <a href="https://open.spotify.com/episode/269Ap2L5ekYpCzDzVO5UJp?si=6c1a8da09bcb4110">episodio #89 de Modo Historia</a>). Parece que hoy están empezando a haber clones del <a href="/posts/qu%C3%A9-aprender-de-slay-the-spire-2/">slay the spire</a>. Aunque es un poco injusto llamarles así, porque cada uno trata fuerte de sobresalir con una vuelta de tuerca original. Acá hay algunos de los que jugué, y la vuelta que le dieron:</p>
<p><a href="https://1plus1gamestudios.com/duo-quest-digital-game/">Duo Quest</a>, de Malasia. Me gustan los juegos cooperativos &ldquo;de sofá&rdquo; (local multiplayer), me gusta el slay the spire&hellip; ¡así que este juego es justo para mí! La dupla de jugadores comparten la barra de salud, y cada unx tiene sus propias cartas según el rol que eligieron (magx, guerrerx, etc). Y una vuelta más: en un momento el gameplay normal se torna un show de preguntas y respuestas: lxs dos jugadores deben seleccionar una respuesta para la misma pregunta, sin saber lo que selecciona la otra persona. Por ejemplo &ldquo;¿cuál es tu mejor excusa cuando estás cocinando y arruinás la comida?&rdquo;. Si eligen la misma respuesta tienen una carta de powerup para jugar. Tuve la suerte de jugar con Rizal, ¡el diseñador del juego! Él y su pareja fueron muy generosos y hablamos un poco de cómo es diseñar un juego de cartas, de su complejidad (me hablaron de muchas planillas de excel y de balancear constantemente el juego según el playtesting), y de cómo trabajaron el interrumpir el juego con texto en la pantalla (las preguntas pueden ser largas, las respuestas son cortas). También tienen una versión de juego de mesa. ¡Buena suerte con tus juegos, Rizal!</p>
<p><a href="https://store.steampowered.com/app/3271280/Shroom_and_Gloom/">Shroom and Gloom</a>, de&hellip; ¿? Es un calabozo en primera persona. Lo que me atrajo al stand fueron las visuales dibujadas a mano para un juego en 3D, un problema que cada tanto me ronda la cabeza (perdón, esto soy). El truco de ellxs es: muchas muchas capas y una cámara súper controlada: podés moverte para adelante y para atrás, como sobre rieles, pero no girar. Y podés mirar alrededor un poquito con el mouse, lo suficiente para percibir profundidad sin que se rompa la ilusión.</p>
<p>Y finalmente <a href="https://ghostpixel-games.itch.io/keepers-of-vyrellia">Keepers of Vyrellia</a> o simplemente &ldquo;el keepers&rdquo;, de Córdoba, Argentina. Este se está haciendo en Godot y lo conozco bien por la comunidad Godot Meetup local.  Estuve dando vueltas por el evento con Fran, desarrollador del juego, y con Ire, la productora. Y también pude saludarlo a Nico, el director del juego y también desarrollador. Ya había jugado a la demo unas semanas atrás (tienen un <em>build</em> web en itch.io) y les había dado mi <em>feedback</em>. La vuelta de tuerca en este caso es que la carta tiene dos lados, y esa dualidad está presente en todo el juego: atacar/defender, edge/dull, violeta/magenta. Fue genial ver siempre gente en su stand. Nico dio una charla pero lamentablemente para mí, fue en la parte de negocios, y no la pude ver. Le deseo lo mejor a este juego. Ah y ¡gracias por el pin de Godot, Fran! Necesitaba vestir algo relacionado con Godot.</p>
<h2 id="top-downs">top-downs</h2>
<p>Dado que trabajo haciendo <a href="https://github.com/endlessm/threadbare">Threadbare</a>, cuando veo una vista <em>top-down</em> me voy derecho a ver qué onda. Tanto para ver cómo hicieron el pixel art, o cómo funcan los controles, o cómo resuelven los diálogos y el HUD, etc. Aún más si el juego tiene algo de acción-puzzle o narrativa.</p>
<p>Fue el caso cuando vi <a href="https://store.steampowered.com/app/3070390/Master_Lemon_The_Quest_for_Iceland/">Master Lemon: The quest for Iceland</a>, un juego narrativo de Brasil nominado por su impacto social. El juego es tributo a una persona real, André Lima, quien aparentemente fue un brasileño políglota y aventureron que murió trágicamente en Islandia. La historia de fondo es muy similar a la de Threadbare: el lenguaje está en peligro, porque se está esparciendo una plaga que devora las memorias del mundo.</p>
<p>También <a href="https://store.steampowered.com/app/3488640/Magical_Blush/">Magical Blush</a>, el cual tiene una mecánica de &ldquo;resbalar sobre hielo&rdquo; que vi implementada por estudiantes en <a href="https://github.com/Gamelab5-UTP-Grupo8-2/threadbare/tree/el_valiente_soldadito">un fork de Threadbare</a>.</p>
<p>Del lado del combate top-down jugué a <a href="https://store.steampowered.com/app/2350790/Moonlighter_2_The_Endless_Vault/">Moonlighter 2: The Endless Vault</a> (ninguna relación con Endless Access), de España. Y a <a href="https://isart-digital.itch.io/candellum">Candellum</a>, de Francia. ¡Este último fue hecho por estudiantes! Y tiene una mecánica de combate interesante: Sos una vela de cera, y cuando entrás en combate la llama te consume. Podés arrojar la llama a tus enemigos (también velas) para ahorrar tiempo y vencerles. Pero luego aparecen enemigos con armadura, que sólo se puede romper teniendo la llama sobre vos. Entonces tiene un compromiso de riesgo/recompensa bien pensado.</p>
<p>Y otro que me gustó mucho: <a href="https://store.steampowered.com/app/4186490/Dungeon_Concierge/">Dungeon Concierge</a> es un juego de acción-puzzle de Argentina, ¡también hecho por estudiantes! Tuve la chance de charlar con uno de ellos, Federico, que estaba en el stand pispeando a la gente jugar y para resetear el juego. El tema del juego es muy interesante. Vos <em>no</em> sos el héroe: sos la persona precarizada a cargo de la limpieza del calabozo. ¡Por suerte también tenés poderes mágicos para hacerlo! Fede me comentó de la importancia de poner a los trabajadores como protagonistas, y de hacer un juego que trate la justicia social en estos tiempos. Y ahora me doy cuenta que el día siguiente al que hablamos era 1 de mayo, día de lxs trabajadorxs. Idea para ellos: meter un <em>easter egg</em>, cada primero de mayo el personaje jugador se rehúsa a trabajar. ¡Con estudiantes así hay futuro! Jugué sólo un ratito pero pude ver las mecánicas de acción-puzzle y hablar un poco con Fede sobre cómo las diseñaron.</p>
<h2 id="y-un-popurrí">y un popurrí</h2>
<p><a href="https://whitethorngames.com/colorbound">Colorbound</a> de Chile me hizo acordar a <a href="https://willthompson.co.uk/posts/bgcolor-2025/">BgColor 2025</a>, el puzzle platformero que mi hizo compa Will. ¡Pero este es re difícil! No pude pasar del tercer nivel en el evento, debería probar la demo en casa. La música andina es hermosa, también el pixel art, incluyendo el sicus como cursor o puntero. Me tomó un rato darme cuenta que era un cursor que podía mover con el <em>stick</em> derecho, no solo un sprite en la pantalla. Al juego le vendrían bien unos <em>hints</em> para los controles.</p>
<p><a href="https://spooky.express/">Spooky Express</a> de Inglaterra estaba ahí. Que tiene a Phoenix como artista técnicx en los créditos, la persona que hizo los puzzles sokoban para Threadbare. Ya había jugado la demo en mi teléfono android. Jugarlo en una pantalla grande se sintió mucho mejor. Es re lindo este juego.</p>
<p><a href="https://store.steampowered.com/app/3215230/Go_Slimey_Go/">Go Slimey Go</a> de Argentina estaba ahí también. Ya lo había jugado en otro evento en Rosario. Me encanta.</p>
<p><a href="https://store.steampowered.com/app/3629780/Tingus_Goose/">Tingus Goose</a>, de&hellip; ¿Australia? (entiendo que el diseñador del juego que estaba en el stand es brasileño). Este era un stand con varios juegos del mismo <em>publisher</em>, Playsaurus. Se dedican a los <em>idlers</em>: <em>clickers</em>, juegos incrementales, <em>auto battlers</em>. Todos estos géneros son bastante nuevos para mí, aunque me gustan los juegos sin objetivo aparente, más como areneros. Tingus Goose es un poco así: re bizarro, tiene dibujos y animaciones delirantes del artista <a href="https://mastertingus.com/">Master Tingus</a>.</p>
<p><a href="https://store.steampowered.com/app/3035120/Is_This_Seat_Taken/">Is this seat taken?</a>, de España, es un lindo puzzle cozy. Lo jugué con Joana. Nota al margen: también fuimos a cenar a <a href="https://www.instagram.com/reels/DRCsoT6jf95/">un lugar tradicional muy rico</a>. ¡Gracias Joana!</p>
<p><a href="https://store.steampowered.com/app/2121510/Tenebris_Somnia/">Tenebris Somnia</a>, de Argentina. Fue gracioso (y aterrador) cuando después de estar trabado un buen rato recibí una ayuda &ldquo;tenés que llevar la vela a&hellip;&rdquo; de la mismísima actriz, que estaba al lado mío, caracterizada como el personaje del juego.</p>
<h2 id="más-allá-de-los-juegos">más allá de los juegos</h2>
<p><strong>Cosplayers</strong> con el toque brazuca de carnaval. ¡Muchísimxs cosplayers!</p>
<p>Largas colas de jóvenes en los <strong>meet &amp; greet</strong> con influencers, que son ídolxs en Brasil mucho más que en otros países.</p>
<p>Largas colas de gente en los <strong>stands principales</strong> (Nintendo, Riot/LoL, etc) haciendo desafíos para ganar souvenirs.</p>
<p><strong>Charlas</strong>. Asistí a algunas, pero no tenía el pase <em>business</em> y al parecer las charlas orientadas a desarrolladores, las que me hubiera gustado presenciar, estaban del lado restringido. Y esto no estaba marcado en el cronograma del sitio web. Las charlas del área general eran esponsoreadas y más para gamers o fans que para desarrolladores, con algunas buenas excepciones. Espero que el año que viene los organizadores sean más cuidadosos con esto, les mandé feedback.</p>
<p><strong>Talleres</strong>. Fue genial ver uno de pixel art con Piskel (la misma app que se usa en talleres de Endless) y de game dev en general. Era una muestra del programa de un año que hace la Prefeitura de São Paulo. Que en Argentina sería el ministerio de desarrollo social (el que al escribir esto, no existe&hellip; pff, pero alguna vez existió y volverá a existir, cuando pase la locura, espero).</p>
<p>Dado que estamos considerando una versión demo de Threadbare que se pueda dejar andando en un stand sin nuestra presencia, estuve observando qué hacían estos juegos al respecto. La respuesta en casi todos los casos es: nada de nada. Se deja librado a la gente que inicie una nueva partida a través del menú del juego, a veces teniendo que darse cuenta sola qué botón apretar (normalmente Start en un control o la tecla Escape en un teclado). A veces, el personal del evento a cargo de la zona aprende a reiniciar el juego y ayuda con eso. Otras veces, los propios creadores del juego estaban dando vueltas para hacerlo. Solo vi un juego que tenía una versión especial, que terminaba con una pantalla de créditos tipo &ldquo;gracias por jugar a la demo&rdquo; y se reiniciaba automáticamente.</p>
<p>Sacando la GDC de 2019, ¡este fue el evento más grande al que fui! Estoy acostumbrado a eventos más chicos, así que no estaba lo suficientemente preparado. Creo que ahora tengo más herramientas para aprovechar el próximo gran evento.</p>
]]></content:encoded></item><item><title>sobre videojuegos y truco</title><link>https://blog.manuq.ar/posts/sobre-videojuego-y-truco/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.manuq.ar/posts/sobre-videojuego-y-truco/</guid><description>¿se puede hacer un videojuego inspirado en el truco?</description><content:encoded><![CDATA[<p>Parte 1: el porqué.</p>
<p>Los videjuegos de cartas son los típicos que digo &ldquo;me gusta jugarlos pero no hacerlos&rdquo;. No es lo primero que pienso a la hora de hacer videojuegos. Para hacer, prefiero algo más en tiempo real, 2d, con personajes en un mundo, con narrativa. El solo hecho de pensar en la complejidad del <a href="/posts/qu%C3%A9-aprender-de-slay-the-spire-2/">Slay the Spire</a>, el sinnúmero de cartas, sus modificaciones, la cantidad de combinaciones, el balancear todo eso.. ¡me da un vértigo!</p>
<p>Pero juego al truco bastante seguido con amigos. Y desde hace rato que me vengo haciendo dos preguntas separadas:</p>
<ol>
<li>cómo sería un rediseño del juego de mesa, simplificado, sin limitarse al mazo español</li>
<li>cómo sería un videojuego inspirado en la estrategia y las mecánicas el truco, que no sea un simulador del juego de mesa</li>
</ol>
<p>Preguntas que me están llevando, sin querer, a meterme en el mundo del diseño de juegos. Soy amateur para muchas cosas, pero en <em>game design</em> soy muuy amateur. ¿Qué puede malir sal? ¿Qué puedo saber eu de esta situação? Quiero probar con un prototipo, y probablemente fracase.</p>
<h3 id="examen-de-historia">Examen de historia</h3>
<p>Ojo que no es que no haya videojuegos que llevan al juego de mesa a la pantalla de la PC o del celu, ¡todo lo contrario! La historia de los videojuegos en Argentina no se puede contar sin cantar &ldquo;¡truco!&rdquo;. Los más destacados:</p>
<ul>
<li>
<p>En los 80s la competencia entre Sacoa y Playland produce los dos primeros fichines argentinos: Trucotron y Truco Clemente. El segundo con <a href="https://papelitos.com.ar/nota/el-clemente-de-caloi">el personaje de Caloi</a>, cumbia y chamamé. <a href="https://www.youtube.com/watch?v=fLhb4urIy_U">Acá hay un video de ambas ROMs en un gabinete</a>. Para quien quiera chusmear más, aparecen en <a href="https://revistareplay.com.ar/digitales/">revista REPLAY nro. 7 y nro 14 (respectivamente)</a>.</p>
</li>
<li>
<p>Por ahí también y con las computadoras hogareñas aparece el primer videojuego comercial argentino: Truco Arbiser, el primer videojuego comercial argentino. Me acuerdo jugarlo en MS-DOS. Tiraba versitos, te cargaba, y hasta sonaba la cumparsita en el &ldquo;speaker&rdquo; interno. <a href="https://www.youtube.com/watch?v=bTSxL3I9ugE">Acá un video de <em>gameplay</em> muy divertido</a>. Aparece en <a href="https://revistareplay.com.ar/digitales/">REPLAY nro. 15</a>.</p>
</li>
<li>
<p>Más tarde, en la era del CD-ROM&hellip; Truco argentino v3.0 de Sintesoft. La estética muy tanguera, arrabalera. Envejeció un poco mal (el puntero del mouse es un chumbo, entre otras cosas). Pero haciendo la vista gorda, es el único que conozco que tiene personajes, cada uno con su personalidad, animaciones 2d y hasta voces grabadas. No estoy al tanto de que haya aparecido en una REPLAY.</p>
</li>
<li>
<p>Con los primeros celulares, los ladrillitos Nokia y Motorola&hellip; Truco Mobile y Truco Personal. Primeros pinitos en apps para celulares &ldquo;no smart&rdquo;. Tiene sistema multijugador contra un usuario random, aunque por la internet de entonces podías terminar jugando contra un bot. Aparece en <a href="https://revistareplay.com.ar/digitales/">REPLAY nro. 31</a>.</p>
</li>
<li>
<p>Mucho más acá, Truco Blyts. El más conocido para jugar hoy en día en el celu. Tengo un amigo que lo vicia.</p>
</li>
</ul>
<p>Si me estoy olvidando de alguno importante, <a href="mailto:manuel.por.aca@gmail.com?subject=sobre%20videojuegos%20y%20truco">me avisan.</a></p>
<h3 id="ronda-vs-pantalla">Ronda VS pantalla</h3>
<picture>
  <!-- User prefers light mode: -->
  <source srcset="/images/ronda-vs-pantalla-claro.png" media="(prefers-color-scheme: light)"/>
  <!-- User prefers dark mode: -->
  <source srcset="/images/ronda-vs-pantalla-oscuro.png"  media="(prefers-color-scheme: dark)"/>
  <!-- User has no color preference: -->
  <img src="/images/ronda-vs-pantalla-claro.png" alt="Comparación entre cartas dispuestas en ronda sobre una mesa, versus cartas dispuestas en grilla en una pantalla."/>
</picture>
<p>El tema es que todos los juegos anteriores presuponen que el jugador es también un jugador del juego de cartas. Conoce bien las reglas y está buscando una experiencia parecida, pero en videojuego. Quizá con algún <em>feature</em> de este medio como agregar narrativa, poder jugar por internet&hellip; o simplemente que tenga una estética tanguera, o gauchesca en los gráficos o el sonido. O alguna otra vuelta de rosca <em>gamer</em>. Por ejemplo, me acabo de enterar de <a href="https://store.steampowered.com/app/3872160/Envido/">un videojuego de truco roguelike</a>, ¡pinta muy bien!</p>
<p>Me encanta que existan esos videojuegos y me gusta jugarlos. Pero el prototipo que quiero hacer yo es otra cosa. Me interesa más enfocarme en la esencia del truco, con su mentira y su mecánica de &ldquo;decidir con información parcial&rdquo; en las dos apuestas (envido y truco). Algo más parecido a lo que hace <a href="https://marvelsnap.com/">Marvel Snap</a> (tengo que confesar que cuando apareció dije &ldquo;uy, me ganaron de mano&rdquo;). Cantar &ldquo;¡snap!&rdquo; es prácticamente cantar &ldquo;¡truco!&rdquo;.</p>
<p>Y también, me interesa trasladar solamente lo que se puede. En particular, las señas es algo imposible de llevar a la pantalla. Y es parte importante del &ldquo;decidir con info parcial&rdquo;. Cada medio tiene lo suyo. Intentar trasladar las cosas que sólo funcionan alrededor de una mesa a la pantalla no tiene sentido, es forzado. A menos que querramos hacer una simulación, como es el caso de todos los videojuegos mencionados arriba. Durante la pandemia con mis amigos tratamos de buscar una alternativa que se juegue a la distancia. Mi conclusión fue que, a menos que sea con realidad virtual, no se puede. El aspecto de sociabilización, lo que se dice y lo que no, la persuasión en la mentira, a quién mirar, son únicos del medio &ldquo;estamos jugando alrededor de una mesa&rdquo; y un videojuego no lo puede reemplazar. ¡Y está buenísimo que así sea! ¿Se podrá encontrar alguna mecánica análoga a las señas y que a la vez sea propia de los videojuegos? ¿Obtener powerups para revelar algo de info de la mano del oponente, por ejemplo?</p>
<p>Incluso en la interfaz. La pantalla es rectangular así que no tiene sentido poner las cartas en círculo o bazas. Es mejor ponerlas en filas y columnas (Marvel Snap lo hace bien). Algunos videojuegos de truco hacen un punto medio bastante forzado: ponen las cartas en ronda, pero derechas a la cámara. Las cartas originales están diseñadas para jugarse en bazas, para ser leídas desde cualquier lado de la mesa. En un videojuego se puede cambiar el diseño totalmente. Incluso no tienen porqué ser cartas.</p>
<h3 id="un-truco-más-accesible">Un truco más accesible</h3>
<p>Tengo la intuición de que el truco tiene algo para darle a los videojuegos. Y quero probarla, por eso el prototipo. Conozco varios juegos de mesa modernos, tipo eurojuegos. Hay varios en casa, y aún así el truco sigue siendo uno de mis predilectos para jugar con amigxs. Hay algo ahí.</p>
<p>Vale aclarar que cuando digo &ldquo;truco&rdquo; (¡quiero retruco!) en realidad estoy pensando en truco argentino. Más precisamente el que se juega en mi región. Y más precisamente, el que juego con mis amigos y las &ldquo;reglas de la casa&rdquo;: sin cantora. De a seis jugadores, o a lo sumo de a cuatro. De dos (la versión de varios de los videojuegos arriba) se deja sólo para aprender o para el &ldquo;punta y hacha&rdquo;.</p>
<p>Una vez, hablando con Juliano, un amigo brasileño, me dijo en portuñol: &ldquo;ah sí el truco, ese que tiene vira y se juega con las cartas de corazones, de picas&hellip;&rdquo;. ¿Lo quee? Me estaba hablando del truco paulista. Ahí me enteré que el truco, más colonial que el dulce de leche, se juega en muchos lugares de latinoamérica y con muchas variantes&hellip; hasta con la baraja inglesa. Hay poca información en internet y hasta la Wikipedia se pierde con las variantes. Pero me puse a aprender lo que pude de cada una. Entre ellas la uruguaya, que tiene &ldquo;muestra&rdquo;. Lo que entiendo es que la muestra (y la vira en otras variantes) es un <em>hack</em> que le agregaron a las reglas para que sea imposible cartearse (randomiza en cada mano cuáles son la cartas más altas). El problema es que a la vez hace a las reglas de juego mucho más complicadas. En mi caso cuando juego con amigos (¡no apostamos plata!) asumimos buena fe. Y en el caso de un videojuego, cartearse es imposible, a menos que le agreguemos esa mecánica (algunx que esté haciendo un simulador de truco que la implemente, puede ser divertido).</p>
<p>Volviendo a la primera pregunta de arriba&hellip; si hay variantes más complicadas que otras, ¿porqué no pensar en una variante más simple? Si hay variantes que hasta usan otra baraja ¿porqué no diseñar una baraja <em>custom</em> para la nueva variante? Además haría que el juego sea más accesible. Me ha tocado explicar las reglas y son bastante difíciles de aprender. Para la apuesta &ldquo;truco&rdquo; hay que memorizarse toda una jerarquía de 14 niveles. ¡Pero el rango o jerarquía de la carta se podría poner en la carta misma! Para la apuesta &ldquo;envido&rdquo; los puntos van del 0 al 33, pero hay un hueco: no se pueden obtener puntos entre el 8 y el 19. ¿Se podrá encontrar una escala de puntos más simple y continua?</p>
<p>Un par de veces deslicé las ideas que tengo para rediseñar el truco a jugadores. Y no lo recibieron bien, les pareció al pedo. Probablemente el prototipo les dé la razón. Eso sí, en esas oportunidades, me faltó dar todo el contexto que tiene este posteo. Explicar el porqué. También tratar de modernizar algo que está pegado a la tradición es pecar un poquito de hereje, y la verdad que sí soy, no me preocupa ese mote.</p>
<p>En fin, en esta primera parte dejo planteado el tema, porque ya se hizo re largo. En las que sigan, voy a ir comentando cómo me está yendo con el prototipo. O mejor dicho los prototipos: para el rediseño simplificado pueden llegar a ser cartas para imprimir, para el videojuego va a ser definitivamente un proyecto de Godot.</p>
<p>Antes de terminar, vaya un saludo especial a mis compañeros de juego: gurka, checho, mosca, tade, mauri, nico y pepo.</p>
]]></content:encoded></item><item><title>qué aprender de Slay the Spire 2</title><link>https://blog.manuq.ar/posts/qu%C3%A9-aprender-de-slay-the-spire-2/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.manuq.ar/posts/qu%C3%A9-aprender-de-slay-the-spire-2/</guid><description>el proyecto más popular de godot, decompilado</description><content:encoded><![CDATA[<p>Slay the Spire 2 me convoca por dos cosas:</p>
<p>Uno, me gustan los juegos de cartas. Vengo de Marvel Snap y Balatro en videojuegos. Y como juego de mesa, en las juntadas con amigos nunca falla <a href="/posts/sobre-videojuego-y-truco/">el viejo y querido truco</a>.</p>
<p>Y dos, me entusiasma que esté hecho en Godot, que es el engine que vengo usando en el laburo. Hay bastante escrito en internet de cómo transicionaron desde Unity. Valga el chiste: &ldquo;Muerte a los salvages unityarios!&rdquo; exclaman desde la federación de Godot.</p>
<p>Así que lo compré hace unas semanas. Todavía está en <em>early access</em>, y ya la está rompiendo. Está en el top 5 de los juegos más vendidos y jugados en Steam en este momento. Y de esos cinco hay tres que son <em>free to play</em>, lo que para mí lo hace ranquear a este (que es pago) aún más arriba.</p>
<p>Como gamedev amateur que soy, que se pueda inspeccionar un proyecto tan bestseller y popular me parece impresionante.</p>
<h2 id="decompilando">Decompilando</h2>
<p>La decompilación no se hizo esperar. Ocurrió al publicarse, antes de que tocara el suelo. ¡Horror! Excepto que la gente de Mega Crit es buena onda. Uno de ellos, Jake, <a href="https://www.reddit.com/r/godot/comments/1rm7ueb/comment/o8zqpit/">dijo</a>:</p>
<blockquote>
<p>Me haría muy feliz saber que otros desarrolladores de videojuegos aprendieron algo al leer nuestro código y nuestras escenas :)</p>
</blockquote>
<p>¿Qué es decompilar? Básicamente es recuperar el proyecto editable a partir de los archivos binarios distribuídos del juego. Poder volver a abrirlo en el editor de Godot.</p>
<p>Como tengo una copia legal y el visto bueno de los creadores, posteé en Godot Meetup Argentina: &ldquo;¿qué tan difícil puede ser decompilarlo?&rdquo;. Unos minutos más tarde me respondí a mí mismo con una captura de la escena de la carta básica. Con <a href="https://github.com/GDRETools/gdsdecomp">Godot RETools</a> fue RE simple (cuac). Tan simple como bajarse la herramienta, apuntarla a un archivo local del juego (al <code>.pck</code>), y hacer un click. Después pude abrir el proyecto con la versión de Godot que más se ajusta (v4.5.1).</p>
<p>Salvedad: el juego decompilado así no corre. Por un lado, porque lo hicieron con una versión custom de Godot, adaptada a sus necesidades. Y por otro porque el <em>core</em> del juego, toda la lógica, vive en una lib propia. Se puede usar otra herramienta para decompilar esta lib en código fuente legible de C#, pero realmente no es la parte que más me interesa.</p>
<h2 id="y-qué-aprender">¿Y qué aprender?</h2>
<p>Lo primero que hice fue abrir algunas escenas con personajes y ver las animaciones. ¡Qué maravilla! Están hechas en Spine que es una herramienta aparte, no son las animaciones esqueletales de Godot. Pero se las puede reproducir desde el editor tranquilamente.</p>
<p>Después me detuve un rato en la organización del proyecto. Nada del otro mundo, pero siempre es interesante ver cómo otros organizan sus archivos, porque no hay una forma que sea la mejor para todos los casos.</p>
<p>Creí que iba a aprender mucho más de interfaz gráfica y los <a href="https://docs.godotengine.org/es/stable/classes/class_control.html">nodos Control</a>. La parte UI de Godot está inspirada en KDE y yo vengo del palo de GTK, por lo tanto se me hace difícil entender cómo se diseñan las interfaces, todo me parece extraño. Dada la naturaleza de este proyecto, un videojuego de cartas con mucha UI, muchas cosas en el HUD, mucha info en pantalla, pensé que me iba a servir inspeccionar las escenas. Pero todavía no le pude sacar mucho jugo. ¡Voy a seguir intentando!</p>
<p>Lo que más me sirvió inspeccionar hasta ahora: ¡los efectos de partículas y los shaders! Hay escenas en que mezclan hasta 6 efectos de partículas simples, que todas juntas y sumando un shader, logran un efecto increíble.</p>
<h2 id="godot-meetup-argentina">Godot Meetup Argentina</h2>
<p>Fui compartiendo todo esto en Godot Meetup Argentina. Es el grupo de Whatsapp más grande en el que estoy. Ahí pasa de todo: gente comparte el progreso de sus juegos, se organizan eventos, se resuelven dudas, etc. La vez pasada, a uno se le ocurrió agregar la sintaxis que tienen los shaders de recombinar las componentes de un vector de forma fácil en un script, lo que en la jerga se conoce como <a href="https://en.wikipedia.org/wiki/Swizzling_%28computer_graphics%29">swizzling</a>. Y mandó <a href="https://github.com/godotengine/godot/pull/118223">un pull request</a> para arriba. Veremos.</p>
<h2 id="conclusión">Conclusión</h2>
<p>Creo que por esto mismo de tener todo el core en una lib propia, y las animaciones todas en Spine, es que pudieron transicionar de Unity a Godot relativamente fácil.</p>
<p>Así y todo hay mucho que aprender del proyecto decompilado. Vengo jugando el juego, y cuando algo visual me interesa, voy y lo busco en el proyecto para ver cómo lo hicieron.</p>
<p>Está buenísimo ver a profesionales de los videojuegos mucho más alineados con el open source y compartiendo el conocimiento. Claramente es la intención de este team por lo fácil que es decompilarlo. Si hubieran querido, hay formas de obstaculizarla.</p>
<p>De más está decir que es un juegazo, ¡súper recomendable!</p>
]]></content:encoded></item><item><title>participando en la VsJam</title><link>https://blog.manuq.ar/posts/participando-en-la-vsjam/</link><pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.manuq.ar/posts/participando-en-la-vsjam/</guid><description>dos semanas alocadas haciendo un juego para una consola muy peculiar</description><content:encoded><![CDATA[<p><a href="https://github.com/ventilastation/vsdk/pull/81">¡Esta fue mi entrega</a> para la ventilastation jam! (incluye video). El juego que me salió en el poco tiempo que tuve para dedicarle, en un par de semanas. Me divirtí a lo loco. Ayudó mucho que lloviera el finde y no haya podido ir a navegar. Paso a contar un poco&hellip;</p>
<h2 id="tres-pycamps">Tres pycamps</h2>
<p>&hellip;resumen mi historia con la <a href="https://ventilastation.protocultura.net/">ventilastation</a>:</p>
<ul>
<li>
<p>2013: El pycamp en que los vi revolear una tira de leds para escribir &ldquo;hola mundo&rdquo; en el aire. Meses más tarde, mi amigo alecu nos sorprendía con el <em>&ldquo;super ventilagon&rdquo;</em>, su port del <a href="https://superhexagon.com/">super hexagon</a>. Todavía más me sorprendí cuando lo pude jugar y comprobar que el port era tan preciso e hipnotizante como el original.</p>
</li>
<li>
<p>¿2018? El pycamp en que junto con SAn empezamos a hacer el emulador para la ventilastation en <a href="https://pyglet.org/">pyglet</a>, mientras alecu se peleaba con <a href="https://micropython.org/">micropython</a>.</p>
</li>
<li>
<p>2025: Mucho más acá en el tiempo&hellip; ¡marzo de este año! El pycamp en que hice assets para el &ldquo;a jugar con vugo&rdquo; (juego inspirado en <a href="https://es.wikipedia.org/wiki/A_jugar_con_Hugo">el programa de televisión</a>), teniendo a la ventilastation real a mano.</p>
</li>
</ul>
<p>(Qué es un pycamp no se puede sintetizar, merece posteo aparte. Pero es básicamente una desconferencia de <a href="https://www.python.org.ar/">la comunidad de python argentina</a> que tiene su propia idiosincrasia. Yo me suelo sumar a los videojuegos.)</p>
<p>La ventilastation es un proyecto espectacular por varias razones: el hardware y software libre, que se pueda programar en (micro)python, que el microchip esté girando a toda velocidad junto con los leds, la estética hacker/punk/contestataria de los juegos.</p>
<h2 id="la-jam">La jam</h2>
<p>Me enteré una semana tarde de la jam online pero decidí sumarme igual. ¡Hacía <a href="https://github.com/manuq/aereo.manuq.ar">muucho</a> que no me sumaba a una jam! Trabajamos exclusivamente en el emulador, compartiendo el progreso en el discord del evento. Y en tres sesiones, los jueves (dos para mí) alecu nos mostraba cómo se veía lo que habíamos pusheado en el hardware real, estrimeando la cámara en el discord, apuntándola de lleno al ventilador. Le encontró la vuelta a sincronizar ambas velocidades (la de la cámara y la del venti) para que se vea bastante fiel.</p>
<p>Empecé instalando <a href="https://github.com/ventilastation/vsdk">el vsdk</a> adentro de <a href="https://containertoolbx.org/">un toolbx</a>. Dejo los pasos <a href="https://gist.github.com/manuq/bbfc2fbd87a2acd72d5a1da865511dbe">en este gist</a> para quien guste de usar sistemas inmutables como yo.</p>
<p>Mi idea era continuar el &ldquo;a jugar con vugo&rdquo;. De aquella vez me había llevado como experiencia:</p>
<ul>
<li>Qué tipos de assets quedan mal para los tiles del camino / túnel. Se van achicando muy rápido en el eje Y. Pasada la mitad del túnel el tile de 16 pixeles de altura se muestra en 4 <a href="https://github.com/ventilastation/vsdk/blob/main/docs/developers-guide.md#part-iv-ventilastation-display-and-sprites">arxeles</a> o menos.</li>
<li>Que no hay que poner fondos brillantes. ¡Mejor dejar zonas oscuras!</li>
</ul>
<p>Pero me malcopé con esto y perdí bastante tiempo, sobre todo con workarounds que aparentaban verse bien en el emulador pero se demostró no ser así en el hardware real. Mi <a href="https://github.com/ventilastation/vsdk/pull/54">primer pull request</a> (incluye video) fue una demo de un túnel que va y viene, nada más.</p>
<h2 id="tincho-vrunner">Tincho vrunner</h2>
<p>Justo hace poco Nico, un amigo periodista que trabaja en el diario local, publicó <a href="https://www.ellitoral.com/area-metropolitana/video-viral-tincho-carpincho-jorge-alvarez-martin-familia-periodista-personaje-realizador-canal13-santafe-islas-capibara-muneco-mascota-abuelo-lobato_0_bJrUxksHhR.html">una crónica</a> sobre un personaje autóctono de nuestra cultura pop. Y se me ocurrió <a href="https://github.com/ventilastation/vsdk/pull/56">meterlo como personaje en el juego</a>. Esto también me dio pilas para seguir la jam, meter gameplay, y convertir la demo en un juego posta: el juego de tincho carpincho. Tener un tema o algo para inspirarse está bueno. Se puede leer más sobre tincho en el <a href="https://github.com/ventilastation/vsdk/tree/main/apps/micropython/apps/tincho_vrunner#tincho-vrunner">README</a>.</p>
<p>Lo convertí en una carrera contrareloj, un &ldquo;vrunner&rdquo;. La tradición dice que cada título de la ventilastation juega con la letra V. Hice dos niveles y que <a href="https://github.com/ventilastation/vsdk/pull/65">se pueda ganar o perder</a> (video en el link). En el primer nivel el objetivo es ir &ldquo;palante&rdquo;, hacia adentro. Y en el otro el objetivo es ir &ldquo;patrás&rdquo;, o hacia afuera, rebotando en las&hellip; ¿cajas? ¿almohadas? ¿piedras?. Hay bloques rojos que te frenan, que después se convirtieron en yuyos en el <a href="https://www.aseprite.org/">aseprite</a>.</p>
<p>El <em>sdk</em> es muy simple, todo lo que se puede hacer entra <a href="https://docs.google.com/presentation/d/1gfKrzKq1-QdnFjiBYQB6Z456wWDf1JxnY42-vLq9Bws/">en tres slides</a>:</p>
<ul>
<li>la clase <strong>Sprite</strong>. Con setters y getters como <code>Sprite.y() -&gt; int</code>, <code>Sprite.set_y(int)</code>, <code>Sprite.set_perspective(int)</code></li>
<li>la clase <strong>Scene</strong>. Con métodos a redefinir como <code>Scene.on_enter()</code>, <code>Scene.step()</code></li>
<li>el singleton <strong>director</strong>. Con métodos como <code>director.push(scene)</code>, <code>director.was_pressed(joy_const)</code>, <code>director.sound_play(filename)</code></li>
</ul>
<p>Viniendo de trabajar día a día con <a href="https://godotengine.org/">godot</a> donde toodo es posible, las restricciones de la ventilastation son aire fresco para mí, y un re buen disparador para crear. Es algo sobre lo que estuve reflexionando hace poco en el <em>game club</em> del laburo, donde jugamos al <a href="https://minitgame.com/">minit</a> (un juego con una paleta de 1 bit).</p>
<p>Por ejemplo en <a href="https://github.com/endlessm/threadbare">threadbare</a> tenemos capas y capas de tiles. Varios de los cuales quedan tapados. Por lo que a menos que el engine esté haciendo algo inteligente, se deben estar dibujando cosas innecesariamente. Y como el hardware actual de una compu personal sobra para el juego, no importa. En cambio en la ventilastation hay que cuidar la memoria, y no se pueden estar instanciando sprites en el medio del <em>game loop</em>. Para los tiles, por ejemplo, tengo una lista fija de sprites que voy reusando a lo largo del túnel. Cuando las tiras horizontales de tiles salen por afuera del círculo, se vuelven a poner en el centro, poniendo la imagen (el frame) que corresponde a esa altura del túnel. Lo mismo hago con los props.</p>
<p>Lo particular de la ventilastation es su pantalla circular, que es super cool, y que las coordenadas sean radiales. Hay 3 modos de perspectiva para un sprite, y dominarlas es re importante para hacer los juegos:</p>
<ul>
<li>Modo 0: yo lo llamo &ldquo;fullscreen&rdquo;. Reproyecta la imagen en coordenadas cartesianas para que se vea tal cual. Con esta hice los fondos, por ejemplo el carpincho pescando de la pantalla inicial.</li>
<li>Modo 1: yo lo llamo &ldquo;túnel&rdquo;. La imagen aparece doblada y rotada según la coordenada X y se va achicando al aumentar la coordenada Y, hasta desaparecer en el centro, sin perder su relación de aspecto. Con esta hice el suelo y los props.</li>
<li>Modo 2: yo lo llamo &ldquo;HUD&rdquo;. Como la anterior, la imagen aparece doblada y rotada según la coordenada X. Pero en las Y siempre ocupa la misma cantidad de arcos (que son 54 en total), entonces al moverla en las Y se va deformando (cambiando el <em>aspect ratio</em>). Con esta hice al player que corre en loop, y los carteles. Se evidencia cómo se deforma en los carteles que animé en vertical con la consignas: &ldquo;llegá al fondo&rdquo;, &ldquo;llegá afuera&rdquo;. ¡Hace un lindo efecto de <em>squash &amp; stretch</em> que da para aprovechar la próxima!</li>
</ul>
<p>¡Operador módulo (<code>%</code>) por todas partes! Para las animaciones cuadro a cuadro se ajusta la velocidad así:</p>
<pre tabindex="0"><code>self.cur_frame = (self.cur_frame + 1) % 256
self.player.set_frame((self.cur_frame // 16) % 4)
</code></pre><p>Eso es adentro del método <code>step()</code> de la escena. Hace que el sprite de tincho cambie cada 16 steps, mostrando la animación de 4 cuadros de duración, en loop.</p>
<p>Una vez que tuve algo de gameplay volví a iterar los assets. Agregué carteles tipo &ldquo;ganaste&rdquo; para informar a les jugadores, comunicar el objetivo y los controles. Para los efectos de sonido retro usé el generador <a href="https://sfxr.me/">sfxr</a> que va bien con la onda de la consola. Jugando con los sliders hice tres variantes de cada uno. El código los randomiza así:</p>
<pre tabindex="0"><code>director.sound_play(&#34;tincho_vrunner/powerup%d&#34; % randrange(3))
</code></pre><p>Más allá de estos <em>snippets</em> no hay mucho que rescatar <a href="https://github.com/ventilastation/vsdk/blob/main/apps/micropython/apps/tincho_vrunner/tincho_level.py">del código</a>, que es código de jam. Digamos que no sigue los más altos estándares de la industria.</p>
<p>Por último iteré en el diseño de los dos niveles y tunié un poco la mecánica. Pedí ayuda con la música en el discord y <a href="https://juanelhongo.itch.io/">JuanElHongo</a> me pasó varias que tenía, de las cuales una iba como piña. Adentro.</p>
<p>Me encantó ver el proceso de los otros juegos de la jam, y aunque no hubo tanta interacción entre nosotres ¡el conjunto de juegos quedó buenísimo!</p>
<h2 id="pos-jam">¿Pos jam?</h2>
<p>Estas son cosas que me quedaron en el tintero, lo que me gustaría hacer en caso retomar el desarrollo del juego:</p>
<ul>
<li>Mejorar las colisiones. Recibí re buen feedback sobre esto y es algo que también había notado en el emulador. Por cuestiones de tiempo usé la detección de colisiones que viene con la clase Sprite. Pero casi siempre en gamedev uno termina usando una colisión diferente al asset, más chica o más grande, para hacer al juego menos gorra, menos punitivo. También es raro que no colisione cuando va para atrás, pero es lo que habilita la mecánica de rebote.</li>
<li>Arreglar bug: no se reproduce la música en el nivel 2.</li>
<li>Mejorar la definición de los niveles así se pueden editar más rápido.</li>
<li>Agregar un par de niveles más. Aprovechar más la mecánica de rebote, de ir para atrás, que es como el distintivo del juego.</li>
</ul>
]]></content:encoded></item></channel></rss>