Paleta de comandos

Navegá el sitio, cambiá el tema o saltá a un proyecto.

MP
Volver al trabajo
4
Juego 4X mobile · Upcoming/2026/Lidera el equipo · Dirección de proyecto · Motor Rust/wgpu

4x Animals

Un 4X de estrategia por turnos hecho para el móvil: civilizaciones de animales que exploran, expanden, explotan y exterminan, en sesiones que entran en un bolsillo.

  • Rust
  • wgpu
  • WGSL
  • WASM
  • WebGPU
  • Tauri
  • winit
  • JNI
El ángulo

4X Animals es un juego de estrategia por turnos del género 4X (eXplore, eXpand, eXploit, eXterminate) pensado de raíz para mobile. El jugador toma una civilización de animales y la lleva de una manada que explora el mapa a un imperio que domina el continente, en partidas diseñadas para jugarse en el celular sin perder profundidad. La ambición del proyecto es llegar a miles de jugadores en su lanzamiento. Lo que permite apuntar tan alto es un motor 3D propio en Rust/wgpu —una sola simulación que corre nativa en Android, web y desktop— y un equipo que Miguel lidera y dirige, del diseño de producto al renderer de bajo nivel.

+0

Mil jugadores

meta de lanzamiento, no dato logrado

0

Ejes de juego

explore · expand · exploit · exterminate

0

Plataformas

Android · web · desktop

0k

LOC Rust

motor propio · ~8k TS además

El problema

Un 4X que normalmente vive en la PC, llevado al bolsillo

El 4X es uno de los géneros más profundos de la estrategia, pero casi siempre vive en sesiones largas frente a un escritorio. 4X Animals busca traer esa profundidad —explorar el mapa, expandir tu civilización, explotar recursos y exterminar rivales— a partidas que entren en el ritmo del móvil, sin sentirse recortado. Y para apuntar a miles de jugadores en el lanzamiento, tiene que correr bien en teléfonos reales, no solo en hardware de gama alta.

La decisión

Motor propio para no quedar atado a un engine pesado

En lugar de cargar un motor genérico, el equipo construye su propio renderer sobre wgpu (que compila a Vulkan, Metal, DX y WebGPU), con una arquitectura de una sola simulación y skins delgadas por plataforma. Eso permite que el mismo juego corra nativo en Android, navegador y escritorio, controlar el costo en mobile y mover el proyecto hacia su meta de alcance con un equipo chico y dirigido. Miguel lidera tanto la dirección del producto como el corazón técnico del motor.

El resultado

Un juego upcoming con base técnica para escalar

4X Animals está en desarrollo activo: ya corre lado a lado en Android, browser y desktop sobre una simulación determinista y testeada, lista para sostener el multijugador competitivo. El objetivo declarado es llegar a más de diez mil jugadores en su lanzamiento; el motor propio y la arquitectura cross-platform son la apuesta que hace creíble ese número.

En pantalla

Lo que se ve

Tri-plataforma lado a lado

El mismo 4X corriendo en Android, browser y desktop

Las 4 X del género

Explorar, expandir, explotar y exterminar con civilizaciones de animales

Creación de Rey

Oro sobre azul-noche

Motor propio en Rust

10 crates, ~21k LOC sobre wgpu

Bajo el capó

Una pieza load-bearing

Código real del proyecto — la parte que sostiene la idea.

crates/fourx-animals-game/src/terrain_blend.rs
Rust
fn smoothstep(edge0: f32, edge1: f32, t: f32) -> f32 {
    let x = ((t - edge0) / (edge1 - edge0)).clamp(0.0, 1.0);
    x * x * (3.0 - 2.0 * x)
}

/// Hornea un splatmap 64x64: 0 = material-A puro, 255 = material-B puro.
fn bake_splatmap(mask: NeighborMask) -> Vec<u8> {
    let size = SPLATMAP_SIZE as usize;
    let mut pixels = vec![0u8; size * size];
    for pv in 0..size {
        for pu in 0..size {
            let u = (pu as f32 + 0.5) / size as f32;
            let v = (pv as f32 + 0.5) / size as f32;
            let mut blend = 0.0_f32;
            if mask.north { blend = blend.max(smoothstep(0.55, 0.85, v)); }
            if mask.south { blend = blend.max(smoothstep(0.45, 0.15, v)); }
            if mask.east  { blend = blend.max(smoothstep(0.55, 0.85, u)); }
            if mask.west  { blend = blend.max(smoothstep(0.45, 0.15, u)); }
            pixels[pv * size + pu] = (blend * 255.0) as u8;
        }
    }
    pixels
}

Terrain blend por splatmap + smoothstep. Se prehornean las 16 combinaciones de NeighborMask al arrancar: un splatmap por patrón único, mezclado con smoothstep para bordes suaves.

Lo resuelto

En concreto

Un 4X completo —explorar, expandir, explotar, exterminar— condensado en sesiones pensadas para jugarse desde el teléfono.

Civilizaciones de animales con identidad propia: el gancho es un 4X accesible y con carácter, no un clon serio de los clásicos de PC.

Motor 3D propio en Rust/wgpu con shaders WGSL escritos a mano: corre nativo en Android (JNI), web (WASM/WebGPU) y desktop (winit) desde un solo core.

Simulación server-authoritative determinista, base sobre la que se construirá el multijugador competitivo.

Diseño de producto documentado a nivel estudio, con anti-referencias explícitas y un equipo dirigido para shippear, no solo prototipar.