<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Game Development on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/game-development/</link>
        <description>Recent content in Game Development on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sun, 17 May 2026 12:37:30 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/game-development/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Guía de inicio en desarrollo de juegos con Godot: de nodos y escenas a tu primer juego 2D</title>
        <link>https://knightli.com/es/2026/05/17/godot-game-development-beginner-guide/</link>
        <pubDate>Sun, 17 May 2026 12:37:30 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/godot-game-development-beginner-guide/</guid>
        <description>&lt;p&gt;Godot es un motor de juegos open source adecuado para juegos 2D, prototipos indie y proyectos 3D medianos.&lt;/p&gt;
&lt;p&gt;Sus puntos fuertes son que es ligero, abierto, rápido de iniciar y usa un sistema claro de nodos y escenas. Para principiantes suele ser más accesible que Unity, y para desarrolladores independientes permite mantener proyectos pequeños y controlados.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-rápida&#34;&gt;Conclusión rápida
&lt;/h2&gt;&lt;p&gt;No intentes aprender todo el motor desde el primer día.&lt;/p&gt;
&lt;p&gt;Una ruta mejor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Empieza por 2D, no por 3D.&lt;/li&gt;
&lt;li&gt;Entiende nodos y escenas antes de diseñar arquitecturas complejas.&lt;/li&gt;
&lt;li&gt;Aprende primero GDScript.&lt;/li&gt;
&lt;li&gt;Crea un juego pequeño que pueda empezar, fallar y reiniciarse.&lt;/li&gt;
&lt;li&gt;Luego añade animación, audio, UI, niveles y exportación.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Completar un juego pequeño enseña más que ver muchos tutoriales sueltos.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-sirve-godot&#34;&gt;Para quién sirve Godot
&lt;/h2&gt;&lt;p&gt;Godot encaja bien si quieres aprender desarrollo de juegos desde cero, crear juegos 2D indie, prototipar rápido, evitar toolchains pesadas o entender cómo se organizan los objetos dentro de un motor.&lt;/p&gt;
&lt;p&gt;Unity y Unreal siguen siendo más fuertes para pipelines comerciales grandes, tiendas de assets, SDKs de monetización móvil o gráficos 3D de alto nivel. Pero para aprender y crear tus propios juegos, Godot es una gran entrada.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-proyecto&#34;&gt;Instalación y proyecto
&lt;/h2&gt;&lt;p&gt;Descarga Godot desde la web oficial, descomprime y ejecuta.&lt;/p&gt;
&lt;p&gt;Para el primer proyecto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa el renderer por defecto.&lt;/li&gt;
&lt;li&gt;Usa un nombre en inglés.&lt;/li&gt;
&lt;li&gt;Evita rutas complicadas.&lt;/li&gt;
&lt;li&gt;Usa Git desde el inicio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;first-godot-game
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Familiarízate con Scene, FileSystem, Inspector, Script y las vistas 2D / 3D.&lt;/p&gt;
&lt;h2 id=&#34;nodos-y-escenas&#34;&gt;Nodos y escenas
&lt;/h2&gt;&lt;p&gt;Los conceptos centrales son nodos y escenas.&lt;/p&gt;
&lt;p&gt;Nodos comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Node2D&lt;/code&gt;: objeto base 2D.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sprite2D&lt;/code&gt;: muestra una imagen.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CollisionShape2D&lt;/code&gt;: forma de colisión.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CharacterBody2D&lt;/code&gt;: personaje controlable.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Camera2D&lt;/code&gt;: cámara 2D.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AudioStreamPlayer&lt;/code&gt;: reproduce audio.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Label&lt;/code&gt;: muestra texto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una escena es un grupo reutilizable de nodos. Un jugador, un enemigo o un nivel pueden ser escenas.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Player (CharacterBody2D)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Sprite2D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── CollisionShape2D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── Camera2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;primer-proyecto-recomendado&#34;&gt;Primer proyecto recomendado
&lt;/h2&gt;&lt;p&gt;Haz un juego 2D de esquivar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El jugador se mueve arriba, abajo, izquierda y derecha.&lt;/li&gt;
&lt;li&gt;Los enemigos aparecen desde los bordes.&lt;/li&gt;
&lt;li&gt;Tocar un enemigo significa perder.&lt;/li&gt;
&lt;li&gt;El tiempo de supervivencia es la puntuación.&lt;/li&gt;
&lt;li&gt;Hay pantalla inicial, game over y reinicio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto cubre movimiento, input, colisiones, spawning, UI, timers, audio y recarga de escena.&lt;/p&gt;
&lt;h2 id=&#34;movimiento-del-jugador&#34;&gt;Movimiento del jugador
&lt;/h2&gt;&lt;p&gt;Usa &lt;code&gt;CharacterBody2D&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;extends&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;CharacterBody2D&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@export&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;speed&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;300.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;_physics_process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;delta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Vector2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ZERO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Input&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;get_axis&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;move_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;move_right&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Input&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;get_axis&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;move_up&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;move_down&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;normalized&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;velocity&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;speed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;move_and_slide&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Define acciones de entrada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;move_left  -&amp;gt; A / Left
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;move_right -&amp;gt; D / Right
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;move_up    -&amp;gt; W / Up
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;move_down  -&amp;gt; S / Down
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Usa actions en vez de teclas codificadas. Así será más fácil soportar mando, táctil o remapeo.&lt;/p&gt;
&lt;h2 id=&#34;colisiones-y-física&#34;&gt;Colisiones y física
&lt;/h2&gt;&lt;p&gt;Nodos comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CollisionShape2D&lt;/code&gt;: define colisión.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Area2D&lt;/code&gt;: detecta solapamientos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CharacterBody2D&lt;/code&gt;: jugador o personaje controlado.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RigidBody2D&lt;/code&gt;: objeto físico.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;StaticBody2D&lt;/code&gt;: paredes o suelo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para empezar: usa &lt;code&gt;CharacterBody2D&lt;/code&gt; si controlas el movimiento, y &lt;code&gt;Area2D&lt;/code&gt; si solo necesitas detectar contacto.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;_on_body_entered&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Player&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nf&#34;&gt;get_tree&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;reload_current_scene&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;instanciar-enemigos&#34;&gt;Instanciar enemigos
&lt;/h2&gt;&lt;p&gt;Las escenas funcionan como prefabs:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@export&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enemy_scene&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;PackedScene&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;spawn_enemy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enemy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enemy_scene&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;instantiate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;enemy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;position&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Vector2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;800&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;randf_range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;550&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;add_child&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;enemy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Con un &lt;code&gt;Timer&lt;/code&gt;, puedes crear enemigos cada cierto tiempo.&lt;/p&gt;
&lt;h2 id=&#34;ui-puntuación-y-audio&#34;&gt;UI, puntuación y audio
&lt;/h2&gt;&lt;p&gt;La UI usa nodos &lt;code&gt;Control&lt;/code&gt;: &lt;code&gt;CanvasLayer&lt;/code&gt;, &lt;code&gt;Label&lt;/code&gt;, &lt;code&gt;Button&lt;/code&gt;, &lt;code&gt;Panel&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Puntuación simple:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;score&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;_process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;delta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;score&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;delta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;$CanvasLayer/ScoreLabel&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;score&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Audio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;$HitSound&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;play&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Un juego necesita feedback: sonidos, parpadeos, estados de botón, vibración o shake. La función por sí sola no basta.&lt;/p&gt;
&lt;h2 id=&#34;organización-del-proyecto&#34;&gt;Organización del proyecto
&lt;/h2&gt;&lt;p&gt;Desde el inicio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;res://
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── scenes/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── scripts/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── assets/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── ui/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Escenas en &lt;code&gt;scenes/&lt;/code&gt;, scripts en &lt;code&gt;scripts/&lt;/code&gt;, imágenes y audio en &lt;code&gt;assets/&lt;/code&gt;, UI en &lt;code&gt;ui/&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;errores-comunes&#34;&gt;Errores comunes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Elegir mal el tipo de nodo.&lt;/li&gt;
&lt;li&gt;Olvidar &lt;code&gt;CollisionShape2D&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Codificar teclas directamente.&lt;/li&gt;
&lt;li&gt;Meter jugador, enemigos, UI y nivel en un solo script.&lt;/li&gt;
&lt;li&gt;Empezar con un proyecto demasiado grande.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un juego pequeño terminado vale más que una gran idea abandonada.&lt;/p&gt;
&lt;h2 id=&#34;ruta-de-aprendizaje&#34;&gt;Ruta de aprendizaje
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Editor.&lt;/li&gt;
&lt;li&gt;Nodos y escenas.&lt;/li&gt;
&lt;li&gt;GDScript.&lt;/li&gt;
&lt;li&gt;Input actions.&lt;/li&gt;
&lt;li&gt;Movimiento 2D.&lt;/li&gt;
&lt;li&gt;Colisiones y &lt;code&gt;Area2D&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Timer&lt;/code&gt; y spawning.&lt;/li&gt;
&lt;li&gt;UI y puntuación.&lt;/li&gt;
&lt;li&gt;Audio y animación.&lt;/li&gt;
&lt;li&gt;Exportación a desktop o web.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La entrada a Godot no consiste en memorizar todas sus funciones, sino en entender cómo organiza juegos: nodos forman escenas, escenas forman juegos, scripts dan comportamiento y signals conectan eventos.&lt;/p&gt;
&lt;p&gt;Empieza con un juego 2D pequeño. Cuando ya tengas movimiento, colisión, UI, audio y reinicio, avanza a TileMap, guardado, máquinas de estado, 3D, shaders y optimización de exportación.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Flash para una demo de juego en Godot: ¿hasta dónde llegan unos centavos?</title>
        <link>https://knightli.com/es/2026/05/06/deepseek-v4-flash-godot-game-demo/</link>
        <pubDate>Wed, 06 May 2026 09:22:18 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/06/deepseek-v4-flash-godot-game-demo/</guid>
        <description>&lt;p&gt;¿Puede &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; encargarse del desarrollo de una demo de juego en Godot?&lt;/p&gt;
&lt;p&gt;El foco es simple: ¿puede crear una pequeña demo de Godot que se ejecute, se observe y tenga efectos físicos?&lt;/p&gt;
&lt;p&gt;La respuesta corta es sí. La calidad no es comercial, pero ya es suficiente para prototipos de gameplay y demos de interacción física. Más importante aún, el costo es muy bajo, lo que lo hace adecuado para validar ideas rápidamente.&lt;/p&gt;
&lt;h2 id=&#34;rendimiento-de-la-demo&#34;&gt;Rendimiento de la demo
&lt;/h2&gt;&lt;p&gt;El foco de esta demo es la interacción física.&lt;/p&gt;
&lt;p&gt;Varios efectos visibles incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La cuerda puede cortarse.&lt;/li&gt;
&lt;li&gt;La caja cae al suelo.&lt;/li&gt;
&lt;li&gt;Después de aumentar la masa, las colisiones de la caja se vuelven más contundentes.&lt;/li&gt;
&lt;li&gt;La cuerda muestra elasticidad evidente.&lt;/li&gt;
&lt;li&gt;Después de ajustar fricción y elasticidad, la caja muestra deslizamiento y rebote claros.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo que presenta, esto ya no es solo &amp;ldquo;unos scripts de Godot generados&amp;rdquo;. Es un pequeño prototipo que puede ejecutarse y mostrar comportamiento físico observable.&lt;/p&gt;
&lt;h2 id=&#34;usabilidad&#34;&gt;Usabilidad
&lt;/h2&gt;&lt;p&gt;El valor de esta demo es que puede ejecutarse, verse y modificarse. No es un juego completo ni un proyecto de ingeniería listo para comercialización directa, pero ya demuestra varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; puede entender el objetivo básico de una demo de Godot.&lt;/li&gt;
&lt;li&gt;Un AI Agent puede convertir requisitos en un proyecto ejecutable.&lt;/li&gt;
&lt;li&gt;Tareas no web como interacción física en Godot están entrando en una etapa de prototipado de bajo costo.&lt;/li&gt;
&lt;li&gt;Para desarrolladores individuales, puede convertir rápidamente una idea en algo visible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el objetivo es construir un juego formal, claramente no basta. Pero si el objetivo es verificar si una idea de gameplay es interesante o si el efecto físico aproximado puede hacerse, esta demo ya es usable.&lt;/p&gt;
&lt;h2 id=&#34;significado-del-costo&#34;&gt;Significado del costo
&lt;/h2&gt;&lt;p&gt;La parte más notable no es lo pulidos que son los visuales, sino el costo.&lt;/p&gt;
&lt;p&gt;Si una demo física de Godot puede producir una versión ejecutable con costos de modelo de unos pocos centavos, su significado no es reemplazar el desarrollo profesional de videojuegos. Es reducir de forma drástica el costo de prueba y error de prototipos.&lt;/p&gt;
&lt;p&gt;Antes, validar una pequeña idea de juego normalmente requería saber Godot, escribir scripts, configurar escenas y ajustar parámetros físicos. Ahora un AI Agent puede generar primero una versión ejecutable, y los humanos pueden juzgar si la dirección tiene sentido.&lt;/p&gt;
&lt;p&gt;Para desarrolladores indie, este tipo de experimentación de bajo costo es útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Validar rápidamente conceptos de gameplay.&lt;/li&gt;
&lt;li&gt;Generar demos temporales para que otros las vean.&lt;/li&gt;
&lt;li&gt;Explorar APIs de Godot y el sistema físico.&lt;/li&gt;
&lt;li&gt;Convertir ideas en un primer proyecto ejecutable.&lt;/li&gt;
&lt;li&gt;Reducir el costo de código escrito a mano antes de aclarar la dirección.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;rendimiento-de-deepseek-v4-flash&#34;&gt;Rendimiento de DeepSeek V4 Flash
&lt;/h2&gt;&lt;p&gt;Vale la pena notar que el modelo usado aquí es &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt;, no un modelo insignia más caro y pesado.&lt;/p&gt;
&lt;p&gt;Funciona bien en el rol de modelo de prototipado de bajo costo. No es el más fuerte, estable ni adecuado para entregar ingeniería de producción, pero resulta atractivo en escenarios sensibles al presupuesto donde el objetivo es probar rápidamente una dirección.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4 Flash + Agent + Godot&lt;/code&gt; encaja mejor con estas tareas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pequeños prototipos de gameplay.&lt;/li&gt;
&lt;li&gt;Demos de efectos físicos.&lt;/li&gt;
&lt;li&gt;Validación de conceptos de UI o interacción.&lt;/li&gt;
&lt;li&gt;Ejemplos de enseñanza.&lt;/li&gt;
&lt;li&gt;Ayuda para entender la estructura de proyectos Godot.&lt;/li&gt;
&lt;li&gt;Generar un primer proyecto ejecutable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es menos adecuado para asumir directamente estas tareas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arquitectura de juego grande.&lt;/li&gt;
&lt;li&gt;Controladores de personaje complejos.&lt;/li&gt;
&lt;li&gt;Sincronización de red.&lt;/li&gt;
&lt;li&gt;Código central para proyectos comerciales.&lt;/li&gt;
&lt;li&gt;Simulación física de alta precisión.&lt;/li&gt;
&lt;li&gt;Envío automático sin pruebas humanas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, sirve como primer borrador y banco de pruebas, no como responsable de ingeniería de producción.&lt;/p&gt;
&lt;h2 id=&#34;qué-demuestra-esto&#34;&gt;Qué demuestra esto
&lt;/h2&gt;&lt;p&gt;Esto muestra que AI coding sigue expandiéndose desde sitios web, scripts y APIs backend hacia desarrollo de juegos y prototipado interactivo.&lt;/p&gt;
&lt;p&gt;El desarrollo de juegos solía tener una barrera alta de entrada, especialmente cuando motores, scripts, gestión de assets y sistemas físicos se mezclaban. Los principiantes podían atascarse fácilmente. Ahora modelos más herramientas Agent pueden configurar primero el proyecto, permitiendo a los desarrolladores centrarse en juzgar el gameplay y ajustar efectos.&lt;/p&gt;
&lt;p&gt;Esto puede traer tres cambios:&lt;/p&gt;
&lt;p&gt;Primero, los prototipos de juegos se vuelven más baratos. Muchas ideas ya no tienen que esperar a un desarrollo completo para validarse; pueden convertirse primero en demos ejecutables.&lt;/p&gt;
&lt;p&gt;Segundo, los desarrolladores indie pueden estar más dispuestos a experimentar. Personas que no conocen Godot pueden aun así usar IA para tocar la estructura del proyecto y el flujo básico.&lt;/p&gt;
&lt;p&gt;Tercero, la estabilidad del modelo se vuelve más importante. El desarrollo de juegos no consiste solo en que el código corra. El efecto también debe ser razonable, la sensación debe ser normal y los parámetros deben ser controlables. En el futuro, modelos que combinen mejor visuales reales y estado de ejecución serán más adecuados para este tipo de tarea.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Flash para una demo de Godot se puede resumir en una frase: &lt;strong&gt;no perfecto, pero lo bastante barato, rápido y adecuado para prototipar.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Todavía está lejos de los juegos comerciales, pero si el objetivo es validar una pequeña idea de juego a costo extremadamente bajo, ya tiene valor.&lt;/p&gt;
&lt;p&gt;Para desarrolladores individuales, el uso más realista no es entregar todo el juego a la IA, sino dejar que la IA produzca primero un proyecto ejecutable mientras los humanos hacen juicio, compromisos y pulido. Usados así, modelos de bajo costo como DeepSeek V4 Flash se vuelven realmente atractivos.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
