Spring (game engine)

Spring (formerly known as TA Spring or Total Annihilation: Spring), is a full 3D free/open source RTS game engine originally created by the Swedish Yankspankers, intended to bring the gameplay experience of Total Annihilation into three dimensions. The core game engine is licensed under the GNU GPL.

Games are played using one of a number of mods. There are several free content mods which may be used free of charge. But there's also commercial content available for the Spring Engine. Content from Total Annihilation has been modified to run on the Spring Engine although playing such content requires that one own a copy of the original Total Annihilation game.

Spring is being developed by the engine's community. The initial goal was to have the game run the mods and third-party units from Total Annihilation. With this goal completed the project has moved on to serving as a more general RTS engine. Most of the games are mainly focused on multiplayer. There are currently a few single player missions, built on the basic support for this through Lua scripting. There are also many skirmish AIs, allowing for offline play or extra players in an online game.

Engine
Spring is designed to be played as online multiplayer matches. It uses a deterministic game simulation which is executed on all game clients. Only the user commands are sent to other players, which prevents any active cheating. AMD-64 and i386 platforms are supported for multiplayer on Linux, and i386 on Windows. Spring uses a lobby with a look and feel similar to an IRC client.

The lobbies for the game allow setting up single player games as well. This can be done either by using a special single player mode, or using the multiplayer mode with a password and adding bots to the game. Instead of using bots, some mods also support special game modes that allow single player gameplay. Most popular in this area are the "chicken" modes of Balanced Annihilation and Complete Annihilation, where a player has to defend against randomly appearing monsters. Since version 0.79, Spring also features missions.

Skirmish AIs (or bots) are needed to get a normal single player game running. They take over the role of controlling a team and can therefore be seen as a machine equivalent to a human player. The engine supports Skirmish AI plugins to be written in a variety of programming languages. Currently these are C, C++, Python, Java, Groovy and Lua. It is also possible to develop plugins to support more languages.

Spring's rendering features include deformable terrain, 3D projectiles and multiple water renderers. The unit files of Total Annihilation are compatible, allowing third-party units to be imported. The scripting language allows for a customizable gameplay and user interface modifications. Players can also draw and write on the game map to coordinate tactical moves with other players. The third-party AI allows for varying degrees of difficulty.

Source code
Spring's source code, licensed under the GNU General Public License, is primarily written in the C++ programming language, as is springlobby. An alternative lobby TASclient, is written in Delphi, and its current game server is written in Java. The C++ code structure is written in an object-oriented manner and is documented to some extent using doxygen. However most of the code has no proper documentation yet. The official source code package includes project files for various IDEs and building tools, including CMake, SCons, KDevelop, Microsoft Visual C++ 7.0/8.0, and Xcode.

Games and mods
Spring has numerous mods in various stages of development. Some are based upon and use content from the original Total Annihilation game, this includes the mods: Balanced Annihilation, Complete Annihilation, NOTA, and XTA. However, there are many mods which are derivatives of other works of fiction, such as a Gundam mod, a Warhammer 40,000 mod, and a Star Wars mod based on the Galactic Civil War. There are also several fully original games, including "Expand & Exterminate", a strategic game inspired by Earth 2150 and "Kernel Panic", a Darwinia-esque game emphasizing simplicity.

Balanced Annihilation
As the name suggests, the mod rebalanced Absolute Annihilation, which was a rebalanced version of the Total Annihilation mod Uberhack. The unit stats have been modified from Uberhack's base stats making it very dissimilar from Uberhack. It features all the previous units from retail version of Total Annihilation, plus several extras for each faction. The balance does not reflect Total Annihilation gameplay as much as an augmented version of Total Annihilation.

Star Wars: Imperial Winter
Featuring over a hundred different units for the Galactic Empire and Rebel Alliance, spanning from The Phantom Menace to Return of the Jedi, Imperial Winter aims to not only recreate the epic battles and rich universe of Star Wars, but also offers innovative and interesting design features such as asymmetrical sides, realistic weapon physics and a territory-based resource system designed to target competitive gamers as well as Star Wars fans. The production is currently in a closed beta testing as of January 2009.

P.U.R.E.
Not to be confused with the ATV game Pure, P.U.R.E. is set in a time where humans were at war against an evil AI called the Overmind. It is developed by a single person, known by the Spring community as Argh. The game features up to 57 unique units, new and improved GUI, unique resource system and 2 different sides, and a main menu (though not in-game). P.U.R.E. is featured in ModDB and several other review sites. {

Complete Annihilation
Complete Annihilation is a regularly updated game that is often regarded as a showcase of what the Spring Engine can do. The game is designed with a flat technology tree, where the effectiveness of a unit is based on its appropriateness to the situation rather than lighter units being superseded by heavier ones. Although Complete Annihilation is a game that uses content from Total Annihilation, it is currently working towards being free from any those assets. In Complete Annihilation two "species" of autonomous and reproductive robots fight perpetually for control of their bleak, nihilistic galaxy, doomed by their creators to stay locked in conflict until the entropic heat death of the universe.

Spring:1944
Spring: 1944 is one of the furthest-developed games on the Spring engine, and as the name suggests is based on the later years of the Second World War. It contains nearly 300 unique units across the four major belligerent factions (USA, United Kingdom, Nazi Germany and the USSR), with all content being produced by several main developers and a handful of contributors, and is the most popular independent production project on the Spring engine. Unlike most conventional WW2-themed real-time strategy games, Spring: 1944 is heavily "epic" in scope, with players commanding hundreds of units and multiplayer team games involving thousands of infantry, vehicles, tanks and aircraft.

Kernel Panic
Kernel Panic is a game that has no connection or basis in Total Annihilation. In this game, there are three races: The System, the Network and the Hacker, all having their own advantages and disadvantages. As expected, the game flows inside of a computer, leading to a fast packed, intense, game of action. There are no resources in Kernel Panic, so the player can build units until the map is full. The game`s textures and sounds resembles old games, and maps are like computer boards and chips.