Spring Engine

From Infogalactic: the planetary knowledge core
(Redirected from Spring project)
Jump to: navigation, search
Spring Engine
Spring-Logo.png
Developer(s) The Spring Community
Stable release 100.0 / July 16, 2015; 8 years ago (2015-07-16)[1]
Written in C++
Lua
Platform Cross-platform
Type RTS game engine
License GNU General Public License Version 2
Website springrts.com

Spring Engine (also known as SpringRTS or formerly TA Spring), is a game engine for real-time strategy (RTS) video games originally created by Stefan Johansson and Robin Westberg, members of the Swedish Yankspankers game clan.[2] Originally intended to bring the gameplay experience of Total Annihilation into three dimensions, the engine has since evolved to support a plethora of more modern and more flexible features, including built-in high-level extensibility through a Lua scripting interface. The core game engine is free and open-source software, subject to the terms of the GNU General Public License (GPL) version 2.

Since 2005 the Spring Engine is being developed by The Spring Community. The project has surpassed its initial goal to have the game run the mods and third-party units from Total Annihilation, and has evolved into a more general RTS engine. Most of the games running on the engine (as of December 2010) are focused on multiplayer gameplay. There are also currently a number of single player missions, built on frameworks utilizing the engine's Lua scripting capabilities. There are also a large number of skirmish AIs, allowing for offline play or extra players in an online game.

Software architecture

Most Spring Engine-based games are designed to be played online, in multiplayer matches. The Spring 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 both Linux and Windows. A pre-game lobby uses a specially designed protocol similar to that of Internet 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 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 games also support special game modes that allow single player gameplay. Most popular in this area are the "chicken" modes of Zero-K and Balanced 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 AI plugins to be written in a variety of programming languages. Currently these are Lua, C, C++, Python and the JVM Languages like Java and Groovy. 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. 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 here: http://opspringrts.weebly.com/download-springrts.html

Source code

Spring's source code,[4] licensed under the GNU General Public License, is primarily written in the C++ programming language, as is springlobby.[5] An alternative lobby, TASClient, is written in Delphi, and there are lobby servers - used to organize multi-player games - written in Java and Python. The C++ code structure is written in an object-oriented manner and is documented to some extent using doxygen.[6] The official source code package includes project files for various IDEs and building tools, including CMake, KDevelop, Microsoft Visual C++ 7.0/8.0, and Xcode.

Reception and adoption

Various games[7] leveraging the Spring engine range from free content games with minimal restrictions on use and distribution to games with commercially licensed art, such as P.U.R.E.[8] Additionally, content from Total 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 original Total Annihilation game.

Spring has numerous games in various stages of development. Some are based upon and use content from the original Total Annihilation game, this includes the games: Balanced Annihilation, Tech Annihilation, NOTA, and XTA. However, there are many games which are derivatives of other works of fiction, such as a Gundam game, a Warhammer 40,000 game, and a Star Wars game based on the Galactic Civil War. There are also several fully original games, including "Expand & Exterminate", a strategic game inspired by Earth 2150, "The Cursed", a unique mixture of science fiction and fantasy, and "Kernel Panic", a Darwinia-esque game emphasizing simplicity. The website also distributes tools and instructions for making your own game.

Balanced Annihilation

As the name suggests, the game rebalanced Absolute Annihilation, which was a rebalanced version of the Total Annihilation game 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. (still maintained)

Zero-K

Zero-K (formerly known as Complete Annihilation) started as a fork of Balanced Annihilation, and so can trace its heritage all the way back to the original Total Annihilation. However, all the original Cavedog content has been replaced with original community-provided content. Among Spring games, Zero-K is particularly notable for its extensive use of Lua scripting for interface and gameplay enhancements, as well as unique RTS concepts such as a flat technology tree.[9] (still maintained)

NOTA

NOTA[10] (Not Original Total Annihilation) is 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. (still maintained)

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.[11]

The Cursed

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.[12] (still maintained)

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.[13]

Spring:1944

Kernel Panic, a non-TA-based game for Spring.

Spring:1944 is one of the most-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.[14] (still maintained)

Kernel Panic

Kernel Panic is a game that has no connection to Total 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 resembles old games, and maps are like computer boards and chips. (still maintained)

XTA

Preceding all other active games, XTA, short for eXtended Total Annihilation was the original Total Annihilation based game developed on the Spring Project. It features all units from the retail version of Total 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. (still maintained)

Evolution RTS

Evolution RTS is a typical RTS game.[15] It was the first Spring-based game released (as free to play) on Steam, in April 2014.[16] (Zero-K has also been "greenlit" but it's not yet distributed through Steam.[17])

See also

References

External links