AN
Volver

Clover MMO

En desarrollo

RPG online en pixel art que corre en el navegador, con multijugador directo entre jugadores.

Arquitectura del online: Jugador ↔ WebRTC directo ↔ Jugador; WebSocket → Cloudflare Worker → Durable Object → D1 (SQLite)WebRTC directoWebSocketWebSocketJugadorPhaser 4 en el navegadorJugadorPhaser 4 en el navegadorCloudflare Workerjuego · API · WebSocketDurable Objectsala y economíaD1 (SQLite)cuentas y guardados
Arquitectura del online

Qué hace

RPG de acción online en pixel art isométrico que corre en el navegador. Una aldea y un bosque para explorar, combate con armas y magias, pesca, misiones, un jefe y una mascota.

Cómo está hecho

  • Online con conexión WebRTC directa entre jugadores y una sala en el servidor como respaldo
  • Economía validada en el servidor: inventario, tiendas, pesca, misiones y drops a prueba de trampas
  • Login con Discord y Google, dos personajes por cuenta y guardado en la nube
  • Ciclo de día y noche, clima y un editor de zonas propio
  • Sala que duerme sin jugadores y escrituras agrupadas para un costo mínimo en Cloudflare

Stack

TypeScript · Phaser 4 · Vite · Cloudflare Workers · Durable Objects · D1 · Better Auth · GitHub Actions

Funcionalidades

  • Combate con katanas, espadón, arco y magias de grimorio
  • Aldea y Bosque del Este en un mundo isométrico, con día, noche y clima
  • Pesca, misiones, tiendas e inventario
  • Enemigos, un jefe (el Lobo Alfa) y una mascota que sigue y ataca
  • Multijugador con chat y grupo
  • Login con Discord o Google, 2 personajes por cuenta y guardado en la nube

Desafíos técnicos

Economía a prueba de trampas

El juego solo pide acciones; el servidor las valida y devuelve el nuevo estado. Un reordenamiento del inventario solo se acepta si los objetos y las cantidades siguen iguales, y los sorteos, la distancia y el tiempo de pesca, excavación y drops se validan en el servidor.

Ping bajo con servidor fuera de Brasil

La posición de los jugadores va por WebRTC directo entre ellos, lo que reduce el ping y la carga del servidor. La sala del servidor queda de respaldo.

Costo mínimo en Cloudflare

La sala (un Durable Object) duerme cuando nadie está activo, las escrituras en la base se agrupan y el mismo código arma el mapa en el cliente y en el servidor.

Herramientas propias

Editor de zonas · Generador de personajes LPC · Generación de íconos y sprites en Python · Montaje de sonidos con ffmpeg

Proyecto personal · en desarrollo · ~44 mil líneas · 139 commits. Proyecto de fan, sin fines comerciales, inspirado en el universo de Black Clover.