# Spring Engine

El Spring Engine (también denominado SpringRTS y formalmente TA Spring) es un motor de juego para videojuegos de estrategia en tiempo real. Este motor de juego es de software libre y de código abierto, sujeto a los términos de la GNU General Public License (GPL) versión 2.

## Historia
### Inicios como un clon de Total Annihilation

El desarrollo fue iniciado por Stefan Johansson y Robin Westbeg, miembros del clan de juego sueco Yankspankers, bajo el nombre de TASprWindows Desde 2005 está siendo desarrollado por la comunidad. El proyecto aspiraba originalmente a traer la experiencia de juego de Total Annihilation a las tres dimensiones y que el juego pudiera hacer funcionar los mods y los elementos de third-party del Total Annihilation. El lanzamiento inicial fue el 7 de julio de 2007, consiguiendo sus objetivos iniciales

### Evolución a un motor de juego general para RTS

Desde entonces, el proyecto evolución desde un mero clon de Total Annihilation a un genérico para RTS, incluyendo características más flexibles, como una extensión que permite el desarrollo en alto nivel a través de una interfaz de Lua La mayoría de los juegos que funcionan sobre este motor (a partir de diciembre de 2010) están centrados en el modo multijugador. Actualmente todavía hay un número de misiones de un solo jugador, construidos en frameworks utilizando las capacidades de interpretación de Lua del motor. También hay un gran número de Inteligencias artificiales(IAs) de pelea, permitiendo partidas offline o añadiendo jugadores extras en un juego en línea.

## Software

La mayoría de los juegos basados en Spring Engine están diseñados para ser jugados en línea, en partidas multijugador. Sping Engine usa una simulación de juego determinista que es ejecutada a la vez en todos los clientes del juego. Solo los comandos del usuario son mandados a otros jugadores, previniendo cualquier forma de hacer trampas de forma activa. El multijugador es posible tanto en Linux como en Microsoft Windows. El lobby anterior al juego usa un protocolo especialmente diseñado para el motor, similar al Internet Relay Chat para facilitar la comunicación, la unión de jugadores y el ajuste de las opciones de la batalla.
Los lobbies del juego pueden instalarse en los juegos de un solo jugador. Esto puede hacerse o bien usando un modo especial de un jugador o usando el modo multijugador con una contraseña y añadiendo bots al juego. En vez de usar bots, algunos juegos admiten modos de juegos especiales que permiten el modo de juego de un jugador. Los más populares en esta última modalidad son Zero-K y Balanced Annhilation con su modo “gallina”, donde el jugador debe defenderse de hordas de monstros. Desde la versión 0.79, Spring también implementa misiones. Se añadió un editor de misiones intuitivo con funciones avanzadas.
Las IAs de pelea (o bots) son necesarios para poder hacer funcionar una partida con el modo de un solo jugador. Estas toman el rol de controlar un equipo y pueden ser vistos como una máquina equivalente a un jugador humano, pero son menos astutos. El motor admite que los complementos de IAs de pelea estén escritos en una variedad de Lenguajes de programación. Actualmente estos son Lua, C, C++, Python y lenguajes basados en JVM como Java y Groovy. Es también posible desarrollar complementos para que más lenguajes sean admitidos.

## Juegos que utilizan Spring Engine

Esta es la lista de juegos más populares que utilizan este motor de juego

### Código abierto

* Zero-K
* Spring: 1944
* Evolution RTS
* Kernel Panic
* Conflict Terra
* On the Edge
* Metal Factions
* The Cursed

### Propietario

* Star Wars: Imperial Winter
* Journeywar

### Derivados de Total Annihilation

* Balanced Annihilation
* Beyond All Reason
* Tech Annihilation
* NOTA
* XTA