
Road Survivor: arcade de conducción en Java, sin motor de juego
Arcade de conducción para Android: esquiva el tráfico, encadena monedas y aguanta todo lo que puedas.
- Tamaño
- 17 MB
- Android
- 5.0+
- Lenguaje
- Java
- Tests
- 100
- año
- 2026
- estado
- Online
Qué es Road Survivor
Road Survivor es un arcade de conducción para Android. Llevas un coche por una carretera que no deja de acelerar: el tráfico cae por carriles, las monedas te suben de nivel y cada choque cuesta una vida. Se juega con un dedo: arrastras y el coche te sigue libre en los dos ejes, sin salirse de la carretera y por los dos tercios de abajo de la pantalla.
No hay Unity ni ningún otro motor detrás. Está escrito en Java puro sobre el sistema de vistas de Android: los coches y los premios son GIFs animados que caen con animadores, y las colisiones se comprueban cada 16 ms comparando rectángulos. Está en Google Play y no lleva anuncios. Lo que ganas en carrera se gasta en un garaje con 17 coches y 5 carreteras, y tu mejor nivel puede entrar en un ranking global.
Control con un dedo
El coche te sigue en los dos ejes sin saltar al dedo, se inclina al girar y nunca se sale de la carretera.
Siempre hay salida
Cada oleada deja un carril sin nada que haga daño, y ese carril se mueve como mucho una posición respecto al anterior.
Combos de monedas
Encadenar monedas sin chocar multiplica su valor por 2, 3 y hasta 4; rozar un coche sin tocarlo suma un punto extra.
Seis especiales
Corazón, escudo, monedas x2, estrella de invencibilidad y nivel exprés. Y la calavera, que se lleva dos vidas de golpe.
Garaje
17 coches y 5 carreteras que se compran con lo ganado en carrera, además de vidas extra hasta un máximo de seis.
Ranking global
El mejor nivel de cada partida compite en una tabla compartida en Firebase Firestore con los diez primeros.
Oleadas justas
Todo el balance sale de una sola fórmula continua. En el nivel 1 un coche tarda 2,3 segundos en cruzar la pantalla; cada nivel le quita 80 ms, con un suelo de 950 ms. La separación entre oleadas no es un tiempo fijo, sino una fracción de esa caída (del 62 % al 36 %), así que la distancia entre oleadas es siempre la misma proporción de pantalla: el juego acelera sin volverse injugable. El asfalto tarda un 20 % más que el tráfico en cruzar la pantalla. Con la misma velocidad los coches parecían aparcados; con el desfase se leen como tráfico.
Lo que cae se reparte por carriles (3 o 4, según el ancho del móvil), no en posiciones al azar. Midiendo el generador con semillas fijas vi que, a nivel alto, la moneda se quedaba el último carril libre: los especiales salían en el 8,7 % de las oleadas en vez del 14,7 % que marca su enfriamiento, y la calavera desaparecía desde el nivel 16. Servir el especial antes que la moneda no bastó; el arreglo fue bajar el tope de obstáculos a carriles − 2 cuando hay cuatro.
El bug de las arañas gigantes
Las skins compradas se guardaban en SQLite con su id de recurso de Android, y esos ids los reasigna el compilador en cada build. Al añadir un solo icono, el botón de pausa, los dibujos que venían después en orden alfabético cambiaron de número y la carretera de la partida pasó a ser un GIF de arañas gigantes. Ahora la base de datos solo guarda el nombre de la skin, que es estable, y el dibujo se resuelve por nombre en tiempo de ejecución.
Power-ups que no mienten
La última tanda de cambios fue de mecánicas. El escudo usaba una estrella amarilla que no decía «escudo», y el x2 compartía sprite con las llamas que salen al chocar: un premio y una señal de daño con el mismo dibujo. Ahora cada objeto tiene icono propio con un código de color fijo (oro para dinero y nivel, cian para el escudo, morado para la calavera, naranja para el x2, blanco para la invencibilidad), y ningún sprite que ya significaba algo cambia de significado. De paso, el escudo pasó a proteger también de la calavera.
La estrella blanca nueva te hace intocable 8, 7 o 6 segundos según el nivel, con un aura bajo el coche y 600 ms de gracia al terminar, para no quitarte una vida por un choque que empezó siendo invencible. Todos los bonos cuentan con un único reloj que la pausa congela de verdad, y ni ellos ni el combo sobreviven al game over, ni siquiera pagando las 100 monedas de continuar.
“El escudo absorbe el golpe entero: parar solo una de las dos vidas sería peor que no pararlo, porque el jugador no tiene forma de ver qué ha pasado.”
Cuatro años a rachas
Road Survivor nació en dos semanas de junio y julio de 2022, con el algoritmo de caída, la tienda y los coches. En julio de 2025 lo rescaté para que volviera a compilar con el Android actual y le cambié el paquete a com.dragoadri.roadgame. En agosto de 2026 llegó la reforma grande: la lógica salió de la pantalla a un paquete Java sin dependencias de Android y con tests, el coche pasó de moverse solo en horizontal a ir libre en los dos ejes, y levantar el dedo dejó de pausar la partida.
Hoy son unas 4.800 líneas de Java y 100 tests JUnit en verde, todos sobre la lógica pura: dificultad, oleadas, colisiones, power-ups, skins y daño. Eso permite rebalancear el juego sin abrir un emulador. La pantalla de partida sigue siendo una sola Activity de más de 1.600 líneas y los textos mezclan español e inglés. El siguiente paso, un cañón con munición, está diseñado pero no implementado. Los otros 59 juegos, todos offline, viven dentro de DragoTerminal.
Capturas de Google Play
Ficha
Versión en el repositorio: 1.2 (versionCode 10) Requisitos: Android 5.0 o superior (minSdk 21) Compilado para: Android 16 (targetSdk 36) Tamaño: 17 MB Paquete: com.dragoadri.roadgame Anuncios: ninguno
Publicaciones relacionadas

DragoTerminal: 34 herramientas y 59 juegos en una terminal Matrix
Navaja suiza Android: SSH, bases de datos, red, IA y un arcade de 59 juegos, estilo Matrix.

GasolAPP: las gasolineras más baratas de España en tu bolsillo
Las gasolineras más baratas de España, Francia y Portugal, con datos oficiales. En Google Play.

BrújulAPP: brújula, altitud y coordenadas para Android
Brújula para Android hecha en Flutter, con altitud GPS, coordenadas en cinco formatos y mapa.
Comentarios
0 comentarios





