TA Spring development guidelinesThis document describes important things to think about when developing code for Spring. Spring runs synchronized on all computersSpring's networking is built upon the assumption that all player's simulations are in sync and only send their (or their AI's) input over the network. This mean that you will have to be very careful to keep the simulation deterministic. Here is a few pointers to think about.
Adding your own stuffWe welcome anyone to make changes to Spring but in order to get them accepted into our distribution the following can be worth thinking about.
Some example projectsHere is some stuff that we know needs improving in Spring. Of course there is about a million other things that also need improving. If you are interested in something and want to help out with the development, you can talk to the responsible person to get more information. Game GUI (SJ)The current GUI in Spring isnt that good however there exist a new gui that is almost finished. Unfortunally Pius that was working on it disapeared some months ago so we need someone else to finish it and generally improve the GUI. Add console (Fnordia)Add a game console to the game, preferably tied to some scripting language (below). Create a map editor (SJ)The current mapconv program is very limited and only allow compiling maps from already created data. Create a real mapeditor to allow editing of spring maps. Improve explosion grapics (SJ)The explosion interface has some support for adding different types of explosion graphics although there currently only exist one. Add some new types and bind certain explosions to them. This is for all you mushroom nukers out there. Create an anticheat program (SJ)Since Spring is opensource it will be very easy to create information cheats for it (the networking protocoll should prevent outright manipulation of data). Therefore create some sort of PunkBuster like program that only allow playing with known good exes. Either dont use any Spring code in it to go around the GPL or we will make an exception for it in order to allow it to be closed source. Sadly security through obscurity is the only thing that will work (and it only works to a degree) in this kind of situation (except calculating everything on the server and sending ready made screenshots to the clients), at least until Paladium arrives.
|