in

CoreWar: Un juego de programación de batalla

Cuando la computación estaba en pañales, Silas Warner creó un juego llamado RobotWar, este luego inspiró CoreWar, un juego donde programadores desarrollan aplicaciones llamadas “guerreros”, cuyo objetivo es eliminar al resto de los programas. Luego de 25 años de existencia y muchos torneos, la base de seguidores sigue creciendo y aquí te contamos un poco de qué va este juego (y sus versiones alternativas).

Durante los años 70, Silas Warner (programador, por aquel entonces, de MUSE Softwaree y uno de los mayores colaboradores del sistema PLATO) creó un juego llamado RobotWar. El concepto era programar un robot que pueda ganarle al resto sin ninguna intervención del usuario. Este juego se volvió tan popular que, para 1982 ya existían torneos anuales donde varios programadores podían competir entre ellos. Tal como RobotWar, CoreWar es una variante en donde los jugadores deben programar una aplicación (llamada Guerrero) para que pelee contra el resto de los programas por el control de la máquina virtual MARS (Memory Array Redcode Simulator). Estos programas están escritos utilizando el lenguaje Redcode, muy similar al lenguaje ensamblador.

Partida de CoreWar corriendo bajo el simulador pMARS.

A lo largo de los años (están cerca de cumplir su aniversario número 25) se han experimentado con muchas técnicas y estrategias para ganar. Las más conocidas son: sobrescribir memoria ciegamente, buscar al oponente y generar nuevos procesos. Estas técnicas son conocidas como piedra, papel y tijera, ya que, no importa qué, una siempre le gana a la otra.

Lo más interesante de CoreWar es que cada programador hace su “guerrero” lo mejor que puede y una vez que comienza la batalla no pueden hacer otra cosa más que mirar la pantalla y rezar por que no lo destruyan por completo. El hecho de que las peleas generalmente tienen más de dos programas batallando lo hace aún más emocionante.

Una partida de CoreLife.

Como dijimos, el éxito de CoreWar fue tan grande que también tuvo sus propias variaciones. Una de las más populares es CoreLife que, a diferencia de CoreWar, tiene un elemento aleatorio en la batalla, por ende, el resultado nunca puede ser determinado por las condiciones originales. Más allá de esa diferencia, CoreLife es muy similar al juego original.

Sin dudas este no es un juego para cualquiera, es más, para muchos seguramente no es un juego sino una pantallita con lucecitas. Pero quienes se dan maña con este tipo de lenguaje de programación parecen disfrutarlo mucho y es por eso que año a año crece aún más. No creemos que se vuelva un entretenimiento masivo, debido a la naturaleza compleja de la programación, pero sin duda nos gustaría ver más de CoreWar en el futuro.

Reportar

¿Qué te pareció?

Escrito por Tomás Garcia

10 Comments

Leave a Reply
  1. Excelente, seria interesante que hiciera un tutorial con cosas basicas a la hora de programar, asi algunos cuantos podemos aprender, y que mas insentivo para practiar que un juego…creo que seria muy prometedor y educativo para los que queremos comenzar en el mundo de la programacion y no sabemos como…

  2. Solo apto para informaticos experimentados, si no lo eres, echa tu tiempo en aprender primero informatica que te sera mas util y despues juega.

    • Sí, como dice en el artículo, es viejísimo. De los años 70. Muy bien 10 por ser un virtuoso en lectura comprensiva y por comentarios tan útiles. XD

  3. pues el ensamblador no es cualquier cosa eh, es un lenguaje de bajo nivel por lo cual es mucho mas complejo que los programitas que todos hacemos en C.

    saludos.

    • que vos hagas "programitas" con c, no es culpa de la herramienta sino de quien la usa, que no sepas explotar el potencial que tiene c como lenguaje, no permite que lo menosprecies, o por lo menos investiga un poquito que se ha desarrollado con él.

  4. jajajaja me causo gracia tu comentario "programitas"???? y mas eso de "que todos hacemos" todos es mucho recurso humano no crees?, como dijo el camarada andres no se que tipo de programas hagas tu pero hay cosas que ni siquiera te imaginas que se pueden hacer con C, y en una cosa si tienes razon el lenguaje ensamblador no es cualquier cosa debes tener una mente muy abstraida para comprender y ser un programador nato, ocea que minimo debiste ser aceptado en alguna ingenieria, o estar tocado por dios en el mundo de la programacion, hay gente muuuy buena chicos de 15 años(si no es que menos) que programan para los ejercitos en varios paises del globo, y bueno animo y suerte a los que pretenden iniciar en la programacion el lenguaje ensamblador lo tendrian que abordar como en tercer lugar o quiza segundo despues de aver aprendido otros de mas alto nivel, bueno sadulos, tengo que seguir con algunas redes neuronales en C ¬¬

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Photoshop SpeedUp: Photoshop más rápido

3Dconnexion SpacePilot PRO 3D Mouse