Saltar al contenido
Alejandro ArandaAlejandro Aranda
Volver a proyectos
6 min de lecturaProyectos

Centurion, de un recuerdo de infancia a un remake web

Hay juegos que se quedan contigo sin que sepas muy bien por qué. Centurion: Defender of Rome fue uno de ellos. Lo jugué de niño y durante años lo tuve en la memoria como un mapa del Mediterráneo lleno de legiones que avanzaban de provincia en provincia, como fichas sobre un tablero que parecía no tener fin.

Hace poco volví a jugarlo en archive.org. Empecé por curiosidad y acabé dedicándole la tarde entera, como quien vuelve a una casa de la infancia y descubre que las habitaciones eran más pequeñas de lo que recordaba. Volver a un juego de hace más de treinta años tiene algo de excavación: reconoces las ideas que funcionaban y también lo que el tiempo ha ido desgastando. De ahí salió la pregunta que da origen a este proyecto: ¿qué pasaría si ese juego existiera hoy, en el navegador, sin instalar nada?

La idea del remake

El objetivo nunca fue copiar el original, sino recuperar su esencia: la campaña sobre el mapa de Roma, la diplomacia con los pueblos vecinos, las batallas y los juegos del circo. El original tenía 27 provincias. Este remake tiene 53, ampliadas con el mismo espíritu, y el mapa es ahora una mesa de guerra en 3D que se puede girar, acercar y leer como un mapa antiguo puesto a contraluz.

El proyecto se llama CENTVRION · Vincere Mare Nostrum. Es un nombre que suena a conquista, y eso es justo lo que pide el juego: pensar, avanzar y volver a intentarlo cuando una provincia se te escapa.

Cómo se ha hecho

1. Respeto al original y licencias

He sido respetuoso con el material del juego original. En el repositorio no hay nada de aquel juego: ni arte, ni retratos, ni fondos, ni textos. Respetar un juego no es solo no copiarlo; es construir desde otro sitio, con materiales propios o con licencias que dejen claro qué se puede hacer con ellos. Es un remake no oficial, y todo lo que se publica lo hace con licencias explícitas:

  • Código: AGPL-3.0.
  • Arte y textos: CC BY-NC-SA 4.0.
  • Librerías de terceros: three.js y OrbitControls, con licencia MIT; las fuentes Cinzel e Inter, con licencia SIL OFL 1.1.
  • Datos de terreno: fuentes públicas (AWS Terrain Tiles y NASA Blue Marble), atribuidas en el README.

2. El motor

El juego está escrito en JavaScript puro, sin frameworks, como quien levanta una casa con herramientas sencillas. El motor es determinista: la misma semilla y las mismas órdenes dan siempre la misma partida. Si algo falla, puedo rebobinar como una cinta y ver exactamente qué pasó. Hay 58 comprobaciones automáticas del motor y bots que juegan partidas completas para detectar fallos antes de que los encuentre un jugador.

Las batallas tienen dos modos: el clásico, por turnos, y el de tiempo real, donde las órdenes se trazan con el ratón, como en el manual del original. La batalla naval tiene sus propios barcos en 3D, que avanzan sobre el agua dejando su estela detrás.

3. El mapa

El mapa está hecho con Three.js. El relieve sale de datos públicos de elevación (AWS Terrain Tiles, con SRTM, ETOPO1 y GEBCO), y la superficie usa imágenes de NASA Blue Marble. Cuando acercas la cámara, la tierra se afila con teselas de más resolución, y de pronto los Apeninos aparecen bajo tus legiones como si siempre hubieran estado ahí.

Las provincias salen del mapa del Imperio romano que usamos en mappuzzle: mappuzzle.xyz/map/roman-empire.

Cada ciudad es una pequeña maqueta en 3D, 53 en total. Las generé a partir de imágenes de referencia con TRELLIS, las limpié y las ajusté al terreno, hasta que cada una parece pertenecer a su paisaje.

Pantalla de título del remake de Centurion
La pantalla de título: arte nuevo, pensado para el remake.

4. Arte, retratos y sonido

Las ilustraciones de eventos, los fondos de batalla, los retratos de los líderes y los emblemas de los pueblos (54 en total) son arte nuevo, generado con herramientas de imagen con IA y revisado a mano, una a una. Cada emblema es un pequeño blasón: una loba capitolina, un delfín tarentino, un carnyx galo o un elefante bárcida. Los gladiadores se modelaron en Blender sin interfaz y se animan con un rig propio en Three.js.

La música no está grabada. Se sintetiza en directo con la Web Audio API, nota a nota, sin samples. El juego no carga ni un solo fichero de audio: todo el sonido nace en el navegador, como si un músico nunca dejara del todo de tocar.

5. Dos idiomas

El código está escrito en castellano y el inglés sale de un diccionario de frases. Una herramienta del proyecto comprueba que ninguna frase de la interfaz se quede sin traducir. Traducir un juego es escucharlo en otra voz, y el objetivo es que suene igual de natural en los dos idiomas.

6. El prólogo

El prólogo empieza con el cielo: un atardecer rojizo, las siluetas negras de un templo circular que es Vesta y de un casco con cresta que es Marte, y una línea de horizonte que gira y separa a los dos dioses. Después, la historia de Roma se cuenta en dos partes.

La primera es el mito. Rea Silvia, una vestal, y Marte son los padres de Rómulo y Remo. Arrojados al Tíber, encallan bajo una higuera, y una loba los encuentra y los amamanta. Llega el augurio: Remo ve seis buitres y Rómulo, doce, y cada uno reclama para sí el derecho a fundar la ciudad. Remo salta las murallas que había empezado a levantar su hermano, y Rómulo lo mata con la frase que cita el vídeo: «Así perezca quien salte mis murallas», según Tito Livio. Ahí se rompe la fraternidad, y con ella empieza la historia de Roma. El vídeo termina con las siete colinas y el año 753 a. C., la fecha tradicional de la fundación: una ciudad, siete colinas y un año que marca el punto de partida de todo lo que viene después.

La segunda parte es la expansión. El mapa de Italia y del Mediterráneo se llena de arcos que salen de Roma, y el imperio crece como una mancha de aceite sobre el agua: primero la república, el saqueo de Breno en el 390 a. C., las guerras samnitas y Pirro de Epiro, hasta que Roma se hace con Italia. Después vienen las guerras púnicas y Aníbal, Hispania, Pérgamo y Narbonense; Pompeyo en Oriente, César en la Galia y Augusto. El último acto es el más revelador: Trajano, en la máxima extensión del imperio, y luego el mapa rebobina hasta el 275 a. C., cuando todavía solo era Italia. Allí empieza tu campaña.

Este es el prólogo, en castellano:

7. Programar con ayuda de IA

Empecé con Antigravity y Gemini. Los resultados eran pobres y lentos, como trabajar con un aprendiz entusiasta que tarda en entender lo que le pides, pero me sirvieron para montar un primer prototipo funcional de lo que luego ha acabado siendo el juego. Después seguí con Claude, usando mis propias skills, que he ido afinando en los últimos tiempos. Con ellas, el trabajo se parece más a dirigir un equipo que a dictar cada línea.

Qué falta

Lo que más pide una mejora son los gráficos de los juegos del circo, sobre todo la carrera de cuadrigas: ahí el juego todavía se queda corto frente a todo lo demás. Por lo demás, el juego ya es totalmente funcional y muy disfrutable, de principio a fin.

Puedes jugarlo en centurion.mappuzzle.xyz.

También te puede interesar