Todos mis proyectos, detalladamente.
⌕

Destacados

Más

2026
OpenRAHS
OpenRAHS
Librería de código abierto en Luau para la fila de hints de botones en la esquina de un juego de Roblox. Elige el glifo según lo que el jugador tenga en las manos, sigue la distribución del teclado y los cambios de tecla del Input Action System, nunca toca el input y dibuja a través de un frontend que se puede reemplazar evento por evento.
LuauRobloxUIInput
Monociclo Autosuficiente de Mastedore
Monociclo Autosuficiente de Mastedore
Monociclo para Roblox que vive en un solo modelo y se pega en cualquier juego. No usa VehicleSeat ni ruedas físicas: el Humanoid del jugador hace el movimiento y un modelo cinemático de rueda decide cómo.
LuauRobloxGameplayVehicles
Rod and Reef: Quests
Rod and Reef: Quests
El sistema de quests de Rod and Reef: 530 definiciones como datos, un mismo perfil que corre en servidor y cliente, un grafo de prerequisitos que sobrevive a quests desactivadas, espacios de quest derivados de los objetivos y un estimador de dificultad en lances esperados.
LuauRobloxGameplayPython
Rod and Reef: Minijuego de pesca
Rod and Reef: Minijuego de pesca
Cada pez de Rod and Reef se pelea en un dial donde una aguja y un objetivo giran en sentidos opuestos. La dificultad sale de la caña contra la rareza y el tamaño del pez, la puntuación es un tira y afloja, y los efectos se dibujan con Spray, mi librería de partículas para GUI.
LuauRobloxGameplayUIVFX
Rod and Reef: Datos del jugador
Rod and Reef: Datos del jugador
Cómo Rod and Reef guarda los datos de cada jugador con sesiones de ProfileStore, cómo le llega al cliente una copia que se mantiene al día con una foto inicial más cambios por ruta, y cómo viajan los regalos entre servidores sin perderse.
LuauRobloxBackendDataStoreNetworking
Rod and Reef: Diálogos
Rod and Reef: Diálogos
Las conversaciones de los NPCs de Rod and Reef son tablas de Luau que se convierten en grafos, se arman por capas y se recorren dos veces: una en el cliente para mostrarlas y otra en el servidor para que nadie pueda cobrar una quest que no le ofrecieron.
LuauRobloxGameplayNetworking
Rod and Reef: Sistema de suerte
Rod and Reef: Sistema de suerte
Cada lance de Rod and Reef pasa por cinco tiradas y varias capas de suerte: caña, cebo, amigos cerca, bote, multiplicadores, techos, pity y un empujón hacia los peces de tus quests. Este artículo explica la matemática de cada capa y cómo se compone.
LuauRobloxGameplayMath
Rod and Reef: Temporadas
Rod and Reef: Temporadas
Temporadas de 45 días contadas desde una época fija, cuatro leaderboards por temporada sobre OrderedDataStores y títulos permanentes para el top 50. Ningún servidor coordina con otro: la temporada es una función del reloj y el cierre es una tarea idempotente.
LuauRobloxBackendDataStore
Rod and Reef: Subtítulos
Rod and Reef: Subtítulos
Un pipeline en Python que transcribe las voces de Rod and Reef con OpenAI Whisper, identifica qué línea del guion es cada toma improvisada, genera los subtítulos palabra por palabra como módulos de Luau y los sube a Roblox. En el juego, un reproductor guiado por reloj los muestra sin desfasarse de la voz.
PythonLuauRobloxAudioUI
Rod and Reef: Ambient Barks
Rod and Reef: Ambient Barks
El protagonista de Rod and Reef comenta lo que haces mientras juegas. Por debajo hay varias máquinas de estados en paralelo con pesos, un catálogo de 73 líneas grabadas y un director que decide cuándo hablar sin repetirse.
LuauRobloxGameplayAudio
QueueService
QueueService
Fila FIFO para Roblox que se arma en el mapa con partes numeradas. Congela a los jugadores, los hace caminar a su puesto sobre una polilínea y la rellena con NPCs para que siempre se vea llena.
LuauRobloxGameplay
Owake
Owake
Reloj despertador retro, cronómetro y reloj digital para AVR. Construido sobre una máquina de estados finitos jerárquica y un driver propio para LCD HD44780.
C++AVREmbedded
SolidCrystalI2C
SolidCrystalI2C
Driver moderno, de alto rendimiento y facilidad de uso para controlar pantallas LCD basadas en el HD44780 en sistemas AVR/Arduino
C++AVREmbedded
2024
Sword Masters
Sword Masters
Juego de espadas por rondas en Roblox que me contrataron para rehacer desde cero en 2024: PvP, cacerías de zombies y una pelea contra un jefe, votación de mapa entre rondas, siete habilidades y una tienda rotativa. Esta página enlaza al artículo técnico de cada sistema.
LuauRobloxGameplayBackendAI
Sword Masters: Dash
Sword Masters: Dash
Dash, la habilidad gratis con la que empieza todo jugador, te lanza hasta 50 studs hacia adelante. Por debajo hay un AlignPosition que tira de la raíz hacia un punto delante, un AlignOrientation que fija hacia dónde miras, y dos formas de parar: tocar un marcador invisible en el destino o que pasen 0.4 segundos.
LuauRobloxGameplayPhysics
Sword Masters: Fireball
Sword Masters: Fireball
Fireball crece en tu mano, te deja elegir un punto a menos de 75 studs y doblar el arco arrastrando el mouse, y después vuela por ese arco un punto por frame hasta explotar contra el mapa con 80 de daño.
LuauRobloxGameplayPhysicsMath
Sword Masters: Habilidades
Sword Masters: Habilidades
Cada jugador de Sword Masters equipa una habilidad de siete. Cada habilidad es un módulo del servidor con las mismas cuatro funciones, y unos pocos remotes dejan que las largas le pidan input al cliente a la mitad, como hacia dónde apuntar o cuándo disparar.
LuauRobloxGameplayNetworking
Sword Masters: Jefe
Sword Masters: Jefe
La pelea contra el Mountain Guardian venía de la versión anterior de Sword Masters, y mi trabajo fue integrarla. Decide con varios bucles en temporizadores independientes, un conjunto de banderas en atributos y cooldowns que cuentan hacia atrás, y elige sus ataques como una cadena de Markov que nunca repite un movimiento dos veces seguidas.
LuauRobloxGameplayAI
Sword Masters: Laser beam
Sword Masters: Laser beam
Laser beam encoge tu espada, saca un láser de tu brazo y lo dispara durante ocho segundos. Apuntas girando la cámara, el largo del rayo sale de un blockcast contra el mapa y el volumen de golpe es una caja alineada con el rayo que se revisa en cada frame.
LuauRobloxGameplayVFX
Sword Masters: Rondas
Sword Masters: Rondas
El ciclo que corre cada servidor de Sword Masters: intermedio, votación de mapa, carga, teletransporte, cuenta regresiva, la ronda y sus recompensas. Es una máquina de cinco estados movida por una tabla de handlers, un tick por segundo, dentro de una promesa que se reinicia una vez antes de cerrar el servidor.
LuauRobloxGameplayBackend
Sword Masters: Tienda de habilidades
Sword Masters: Tienda de habilidades
La tienda de habilidades de Sword Masters muestra tres ofertas sorteadas por rareza que rotan según un reloj. La oferta actual vive en un DataStore y las nuevas se anuncian por MessagingService, para que todos los servidores muestren las mismas tres.
LuauRobloxBackendDataStoreMath
Sword Masters: Zombies
Sword Masters: Zombies
Las cacerías de zombies de Sword Masters sacan oleadas de ocho tipos de enemigos. Cada zombie persigue en saltos de a lo sumo 12 studs sobre SimplePath, vuelve a planear al final de cada salto y tiene un watchdog de un segundo que convierte cualquier falla silenciosa del pathfinding en un reintento.
LuauRobloxGameplayAIPathfinding