This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources. Find sources: "Spring Engine" – news ·newspapers ·books ·scholar ·JSTOR(April 2023) (Learn how and when to remove this message) |
![]() | |
Developer(s) | The Spring Community |
---|---|
Initial release | 1.0 / June 7, 2007; 17 years ago (2007-06-07) |
Stable release | |
Repository | github |
Written in | C++,Lua |
Operating system | Linux,Microsoft Windows |
Platform | Cross-platform |
Type | Real-time strategygame engine |
License | GPL-2.0-or-later |
Website | springrts |
TheSpring Engine (also termedSpringRTS and formerlyTA Spring) is agame engine forreal-time strategy (RTS) video games. The game engine isfree and open-source software, subject to the terms of theGNU General Public License v2.0 or later.
The development was initiated by Stefan Johansson, Tomaz Kunaver, and Jelmer Cnossen, members of the Swedish Yankspankers game clan under the name TA Spring.[2] Since 2005 it is being developed by the community. The project aimed originally to bring the gameplay experience ofTotal Annihilation intothree dimensions and to have the game run the mods andthird-party units from Total Annihilation. The first release was on July 7, 2007, achieving its initial goals.
Since then, the project evolved from a mere TAclone to a general RTSgame engine including more flexible features like built-inhigh-levelextensibility through aLua scripting interface. Most of the games running on the engine (as of December 2010) are focused onmultiplayer gameplay. There are also currently a number of single player missions, built on frameworks utilizing the engine's Lua scripting abilities. There are also a large number of skirmishartificial intelligences (AIs), allowing for offline play or extra players in an online game.
MostSpring Engine-based games are designed to be played online, in multiplayer matches. TheSpring Engine uses a deterministic game simulation which is executed simultaneously on all game clients. Only user commands are sent to other players, preventing any active cheating. Multiplayer is supported on bothLinux andWindows. A pre-game lobby uses a specially designed protocol similar to that ofInternet Relay Chat to facilitate chat, player match-making, and the adjustment of battle options. A number of spring lobby clients exist.
The lobbies for the game allow setting up single player games also. 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 games also support special game modes that allow single player gameplay. Most popular in this area are the "chicken" modes ofZero-K andBalanced Annihilation, where a player has to defend against waves of monsters. Since version 0.79, Spring also features missions. A mission editor with advanced functions while being intuitive is bundled with the game.
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 but are of course less cunning. The engine supports Skirmish AIplug-ins to be written in a variety ofprogramming languages. Currently these areLua,C,C++,Python and theJVM languages likeJava andGroovy. It is also possible to develop plug-ins to support more languages.
Spring's rendering features includedeformable terrain, 3D projectiles and multiple water renderers. The unit files ofTotal Annihilation are compatible, allowing third-party units to be imported. The scripting language allows for a customizable gameplay anduser interface modifications. Team 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.[3] Alternatively, the SpringRTS Lobby can be downloaded at mirrors.[4]
Spring'ssource code,[5] licensed under theGNU GPL-2.0-or-later, is primarily written in the programming languageC++, as is springlobby.[6] An alternative lobby,TASClient, is written inDelphi, and there are lobby servers - used to organize multi-player games - written inJava andPython. The C++ code structure is written in an object-oriented manner and is documented to some extent usingDoxygen.[7] The official source code package includes project files for variousintegrated development environments (IDEs) and building tools, includingCMake,KDevelop,Visual C++ 7.0/8.0, andXcode.
Various games[8] leveraging the Spring engine range fromfree content games with minimal restrictions on use and distribution to games with commercially licensed art, such as P.U.R.E.[9] Additionally, content fromTotal Annihilation has been modified to run on the Spring Engine, although playing games that incorporate such content requires that one own a copy of the originalTotal Annihilation game.
Spring has many games in various stages of development. Some are based upon and use content from the originalTotal Annihilation game, this includes the games:Balanced Annihilation,Tech Annihilation,NOTA, andXTA. However, there are many games which are derivatives of other works of fiction, such as aGundam game, aWarhammer 40,000 game, and aStar Wars game based on theGalactic Civil War. There are also several fully original games, including "Expand & Exterminate", a strategic game inspired byEarth 2150, "The Cursed", a unique mixture of science fiction and fantasy, and "Kernel Panic", aDarwinia-esque game emphasizing simplicity. The website also distributes tools and instructions for making your own game.
As the name suggests, the game mod rebalanced theAbsolute Annihilation mod (which it replaced in late 2006), which was a rebalanced version of theTotal Annihilation game Uberhack. The unit stats have been modified from Uberhack's base stats making it very dissimilar to Uberhack. It features all the previous units from retail version ofTotal Annihilation, plus several extras for each faction. The balance does not reflectTotal Annihilation gameplay as much as an augmented version ofTotal Annihilation.
Beyond All Reason (also known as BAR) is a fork of Balanced Annihilation and also based on theSpring engine. It is an open-source project under active development.[10] Although the gameplay is similar toTotal Annihilation, the project does not aim to be just a copy of the original game.
Zero-K (formerly known asComplete Annihilation) started as a fork ofBalanced Annihilation, and so can trace its heritage all the way back to the originalTotal Annihilation. However, all the originalCavedog content has been replaced with original community-provided content. Among Spring games, Zero-K is notable for its extensive use ofLua scripting for interface and gameplay enhancements, and unique RTS concepts such as a flattechnology tree.[11]Zero-K was released onSteam as a standalone game on 27 April 2018.[12][13]
NOTA[14] (Not Original Total Annihilation) is a game designed for larger maps with to-scale units, fuel for airplanes and accent for strategic decisions. It has a unique navy, more diversified unit types, and a slower tech/econ development then other TA themed games (BA, XTA). NOTA games can be very quick, seeing only T1 units, or very long, ending with the appearance of incredible superweapons.
This unique game is about an undead demonic army that corrupts the universe and is opposed by humankind. The artistic setup is inspired by arts from Doom I and II, Warcraft III and Warhammer table tops. The free game is released.[15]
P.U.R.E. is set in a time when humans are at war against an evil AI called the Overmind. It is developed by one person, known by the Spring community as Argh. The game features up to 57 unique units, new and improved GUI, a 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.[16]
Spring:1944 is one of the most-developed games on the Spring engine, and as the name suggests is based on the later years ofWorld War II. It contains nearly 300 unique units across the four major belligerent factions (United States, United Kingdom,Nazi Germany and theUSSR), 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.[17]
Kernel Panic is a game that has no connection toTotal Annihilation. In this game, there are three races: The System, the Network and the Hacker, all having their own advantages and disadvantages. The game takes place inside of a computer, leading to intense, fast-paced gameplay. There are no resources in Kernel Panic, so the player can build units until the map is full. The game's textures and sounds resemble old games, and maps are like computer boards and chips.
Preceding all other active games, XTA, short foreXtended Total Annihilation was the originalTotal Annihilation based game developed on the Spring Project. It features all units from the retail version ofTotal Annihilation with a few additional ones added to each faction. Since the original development team there have been various developers of the game, meaning the aim of it may now be skewed, however the game attempts to remain true to its heritage whilst bringing in new game play features.
Evolution RTS[18] was the first Spring-based game released (as free to play) onSteam, in April 2014.[19] It was removed from Steam in April 2020.[20]
Spring was reviewed in French printcomputer magazineLinux Pratique in February 2009.[21]