<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ronnie Portales</title>
    <description>The latest articles on DEV Community by Ronnie Portales (@quetzacoll12).</description>
    <link>https://dev.to/quetzacoll12</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1489378%2F801b47a1-42c2-4e10-a410-08282b962ee2.jpg</url>
      <title>DEV Community: Ronnie Portales</title>
      <link>https://dev.to/quetzacoll12</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/quetzacoll12"/>
    <language>en</language>
    <item>
      <title>Construyendo Moxie-Gotchi Arena v5.0: La Pasión del Fútbol hecha Arquitectura Segura</title>
      <dc:creator>Ronnie Portales</dc:creator>
      <pubDate>Sun, 12 Jul 2026 23:42:35 +0000</pubDate>
      <link>https://dev.to/quetzacoll12/construyendo-moxie-gotchi-arena-v50-la-pasion-del-futbol-hecha-arquitectura-segura-49oo</link>
      <guid>https://dev.to/quetzacoll12/construyendo-moxie-gotchi-arena-v50-la-pasion-del-futbol-hecha-arquitectura-segura-49oo</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-07-09"&gt;Weekend Challenge: Passion Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Construí &lt;strong&gt;Moxie-Gotchi Arena v5.0 (Edición Pasión y Rivalidad Mundialista)&lt;/strong&gt;. Es un videojuego de simulación estratégica web inspirado en la devoción, el espíritu de equipo y la obsesión sana que genera el fútbol durante la Copa del Mundo. &lt;/p&gt;

&lt;p&gt;El proyecto transforma el ciclo clásico de cuidado y combate RPG en la gestión real de un club: controlas la energía física de tus jugadores, diseñas jugadas de pizarrón en el entrenamiento técnico, manejas el fervor de tu hinchada y compites en la cancha contra tu "Rival Clásico" en derbis de alta presión. El objetivo principal fue demostrar que un juego web adictivo y pasional puede estar respaldado por una arquitectura de software limpia y altamente segura.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;El proyecto se ejecuta de forma local de manera desacoplada. Puedes ver la interfaz del estadio interactivo, la barra de táctica en tiempo real y la consola del VAR integrada directamente en el repositorio de código adjunto abajo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Puedes revisar todo el código fuente, la base de datos relacional y los scripts en mi repositorio público de GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/quetzacoll12/moxie-gotchi-arena-passion" rel="noopener noreferrer"&gt;moxie-gotchi-arena-passion en GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Para hacerle honor a los "proyectos nocturnos hechos con pasión", estructuré el sistema utilizando una arquitectura &lt;strong&gt;Cliente-Servidor&lt;/strong&gt; completamente independiente:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;El Backend (El Corazón Táctico):&lt;/strong&gt; Construido en &lt;strong&gt;Python&lt;/strong&gt; con &lt;strong&gt;FastAPI&lt;/strong&gt; y &lt;strong&gt;SQLite3&lt;/strong&gt;. Decidí delegar toda la lógica crítica y de persistencia relacional al servidor para implementar un sistema hermético de &lt;strong&gt;Validación en el Lado del Servidor (Server-Side Validation / Anti-Cheat)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cálculo de Estados:&lt;/strong&gt; Las recuperaciones en el vestuario curan exactamente el 30% ($HP_{heal} = \lfloor HP_{max} \times 0.30 \rfloor$). Este valor se calcula consultando la base de datos en Python, impidiendo que un usuario altere su vida modificando el código desde la consola del navegador (&lt;code&gt;F12&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistencia Temporal contra F5:&lt;/strong&gt; Los 5 minutos de espera requeridos entre partidos (charla técnica) se controlan mediante marcas de tiempo UNIX guardadas en SQLite. Si el jugador refresca la página para saltarse el tiempo, el backend detecta los milisegundos restantes y bloquea la petición asíncrona devolviendo un código &lt;code&gt;400 Bad Request&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;El Frontend (La Grada Interactiva):&lt;/strong&gt; Diseñado con HTML5, CSS3 con una estética oscura y vibrante de estadio de fútbol, y &lt;strong&gt;JavaScript asíncrono&lt;/strong&gt; nativo utilizando la API &lt;code&gt;fetch&lt;/code&gt; para comunicarse con el VAR (backend) sin recargar la pantalla.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;Al ser un desarrollo nativo enfocado puramente en la arquitectura de seguridad backend con Python y bases de datos relacionales, me postulo a la categoría general del desafío técnico de fin de semana para proyectos impulsados por la pasión por el software.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
  </channel>
</rss>
