FAQ:technical: Difference between revisions

From Spring
Jump to navigationJump to search
Af (talk | contribs)
New page: =Technical= ==What port numbers does Spring use?== Game uses port 8452 UDP by default, which can be changed in the lobby. If you are behind a router, and are having problems hosting, try ...
 
Abma (talk | contribs)
 
(24 intermediate revisions by 6 users not shown)
Line 1: Line 1:
=Technical=
[[Category:FAQ]]
 
=Technical FAQ=


==What port numbers does Spring use?==
==What port numbers does Spring use?==
Line 5: Line 7:


==What APIs does Spring use?==
==What APIs does Spring use?==
The Windows version of the program (Which is the Binary that can be downloaded from this site) uses: OpenGL for rendering, DirectSound for sound, and Winsock for networking.
Spring uses OpenGL for graphics and OpenAL for sound. Also SDL is used for input and some other stuff.
 
The Linux port, see [[Linux Page]] with more info below, uses SDL/OpenGL for rendering, OpenAL for sound (which will connect to DirectSound on Windows and OSS or ALSA on Linux), BSD  sockets for networking.
 
==I am having really bad framerates (fps) on my dual core! What am I doing wrong?==
Currently spring does not like dual/quad cores, you will get really bad framerates. To solve this, you have to restrict it to run on one core. Download the file from http://www.robpol86.com/pages/imagecfg.php follow the instructions, and make all of the spring exe files (spring.exe, TASClient.exe, all others) run on one core. It will run much faster.
 
Additionally, install the latest processor drivers and Windows hotfixes for your system.
 
==I am having really bad framerates (fps) on my brand new nVidia graphics card! What am I doing wrong?==
Turn off 'threaded optimizations' for Spring in the nVidia control panel.


==What language is Spring written in?==
==What language is Spring written in?==
The spring game engine is written in C and C++. The Windows lobby client is written in Delphi, the lobby server is java. Of multiplatform lobby clients, SpringLobby is in C++ and AFLobby in java.
The Spring game engine is mostly written in C++. TASClient is written in Delphi, SpringLS in Java, SpringLobby in C++. Widgets and Gadgets are written in Lua. Skirmish AIs can be written in Lua, C, C++, Java VM languages and Python.


==Is Spring open source?==
==Is Spring open source?==
Yes, it is. Go to the [http://spring.clan-sy.com/download.php downloads] section of the site to download the source code.
Yes, it is. Go to the [[Download|downloads]] section of the site to download the source code.


==Is there any documentation for the source code?==
==Is there any documentation for the source code?==
Yes, doxygen is used to automatically generate the [http://taspring.clan-sy.com/doxygen/ documentation] (''link is dead'').
Doxygen is used to generate the documentation of springs' source code. An [https://springrts.com/dl/buildbot/doc/ up to date documentation] is generated from the ''develop'' branch. To generate the documentation yourself, install DoxyGen and run "doxygen" from within the spring source directory.


==Is Spring a Portable Application?==
==Is Spring a Portable Application?==


At present, I play Spring at my college by using my IPOD as a portable bit of storage for the game, so yes, it does appear to be portable. Also, I managed to run AFLobby from the IPOD as well.
Yes, spring can be run from any big-enough portable storage device.
 
Sometimes config files and content files are saved god knows where ie in "my documents"
If both of those can run off a bleedin' IPOD, they can run off of anything, in my opinion.
 
If I'm wrong, edit.
 
See [http://en.wikipedia.org/wiki/Portable_application] for more information about portable applications.
 
 
- Sangue
 
I have always played Spring off a two GB flash card and I have never had any probs with the registry. There is a little bit of a memory problem though x). I would say that Spring right now is definately portable as long as you leave it alone without adding a bunch of third party servers and such.
 
- Wred XIII
 
 
==Getting into a game==


===People talk about 'Single Player'. How do I start a single player game?===
==Is there an alternative way to connect to the lobby server?==
Simply start a game in the lobby, and enter a password, so that nobody can join. Then click ready, and start and away you go !


Alternatively, you can get [http://spring-portal.com/index.php/docman/doc_download/232-springsp-v09 Spring Single Player] (new link) , a handy tool that lets you create single player games without cluttering up the lobby, as well as watch replays easily.
Yes, using the [[IrcBridge | IRC-Bridge]] through an [http://en.wikipedia.org/wiki/Internet_Relay_Chat#Clients IRC client]. Keep in mind though, that this is not officially supported, and no guarantee is given for the reliability of this service.


It's also very easy to set up singleplayer games using SpringLobby. Just click on the singleplayer tab, add some bots, and play. You can grab it from the  [http://springlobby.info SpringLobby website].
==What do the spring version parts mean?==


===When I try to make a single player game, it gives me an error.===
See [[EngineVersion#Parts]].
Your graphics card probably can't support Spring. If you read the requirements it did say GeForce 3 or better. Go to the settings file in your Spring directory and lower some of the options. Sometimes that works.


===Does Spring support AI Players?===
== Why doesn't the spring engine use all my cpu cores?==
Yes, see [[AI]] You can also use the [[random_enemies]] script, which spawns units out of thin air and sends them to attack you.


===How do I join an Internet multiplayer game?===
Multi-threading is not an issue, it's software behaviour.
Run the "TA Spring multiplayer battleroom" from the Start menu or the TASClient.exe from your installation folder.  In the "Server" tab change the server to "Official Host".  Hit "Apply and close".  Re-open the TA Spring client.  Create an account on the "Account" tab.


===When I try to connect to the lobby it gives me an error.===
Examples of issues:
There could be 3 problems. Either you don't have an account, the server is down, or you have not configured your router/firewall correctly. If you don't have an account, make one. If the server is down, you'll just have to wait (this doesn't happen often, though). If you have a router/firewall read below. Have a look at this website's News page and/or the Messageboard, it is likely that you will get some information there in the eventuality that the server is down.
  1) Graphic glitches
  2) Bad performance


Also make sure that you don't have any spaces in your username.
Examples of possible solutions (respectively):
  1) A dev with an AMD card who knows what they're doing
  2) Reducing cache misses (responsible for a significant portion of the speedup in 100.0)


===I have a router and I don't seem to be able to get a game===
Examples of sexy terms which sound like solutions but are probably more trouble than gain (in most cases):
  1) Multi-threading


If you are using a router you may have other problems. Explanations of [http://www.portforward.com/routers.htm how to forward ports] has instructions for every router.


===Where can I download more maps?===
From now on we'd recommend refraining from saying:


Please refer to the [[Maps| Maps section]].
    Spring should be more multithreaded


===How do I install downloaded maps?===
Most maps are released as .sdz or .sd7 files. These can be put directly into the "maps" folder inside the Spring folder. Spring now includes a script to move maps and mods to the proper directory on Windows if you double click them. If they are compressed into another type of archive you will have to unpack them first. Just unzip them into your spring maps folder. Some map files use newer (smaller) file formats such as .rar or .7z, to unzip these newer formats, you'll need to download 7-Zip [http://www.7-zip.org/ http://www.7-zip.org/] or Zip-genius [http://downloads.zipgenius.it/ http://downloads.zipgenius.it/]. They both handle almost all formats and are totally free.  There is also now a map browser in the TASClient lobby software, click the more maps button in a battle screen to access it.


===Sometimes when I try to join games it gives me an error.===
As this is not only wrong but useless and annoying.
The host is behind a firewall that has not opened the correct ports for Spring.


===When a multiplayer game starts I never make it past the loading screen.===
Instead you can say things like:
This indicates a problem with your video card. Once again the best way to deal with this situation is to make sure your video card has the latest driver updates and that all Spring video features are on the lowest settings.


===When a multiplayer game starts, I make it past the loading screen, but when I get into the game it says, "Waiting for Host", and does a 10 second countdown. It always reaches zero and boots me out, what gives?===
    Spring is slow for me and I'd like it to be faster
This is a firewall issue. There are three things you can do to fix this. First, make sure your windows firewall is either off, or is not blocking the TA: Spring application. Secondly, if you are behind a router, you can forward the ports that the host is using (especially if you are the host), and it usually fixes the problem. To do this you must go to your router configuration page. You can see what port 'you' are using (as the host), by hosting a multiplayer game in the Spring Lobby. You must make this your trigger port, and make sure that it is open for both TCP and UDP. Thirdly, if none of the aforementioned worked. The easiest thing to do (assuming you are behind a router) is to set the DMZ (Demilitarized Zone). This means your computer will be completely exposed to the internet, which will make you vulnerable to any unknown or unpatched exploits in windows. All you have to do is find the personal IP if the computer you are using and add it to your router's DMZ list. Please only try this last option if you can't get the others to work.
Good Luck


===I got into the game, but some people didn't.===
The host may have reached the number of players it has set.
Or the players may be experiencing firewall or video card difficulty. That is not your fault. Please ask them too leave if they are still there when you get into the 'game lobby'. Some people have problem connecting to "hole punching" hosts.


===I got into a game but my name is red, nobody can hear me speak, and eventually I get disconnected===
Which may or may not make a difference, but it will definitely make you look less foolish.
This is to do with how long it takes the game to start up (the "load time"). If it takes too long you will see this problem. The load time can be reduced by changing the game graphics settings to lower quality. In particular try setting texture quality to lowest.


===What do all those icons mean in the server list?===
(see https://springrts.com/phpbb/viewtopic.php?f=1&t=33908#p573296 )
Server status icons inform you, at a quick glance, what the server is doing at the moment, and what state it's in (password protected, locked, open, full, etc). Read all about the server status icons and what they mean [[Server Status|here]].  Or hit F1 in the Battle room for even more information on the icons and their meaning.

Latest revision as of 00:43, 22 January 2016


Technical FAQ

What port numbers does Spring use?

Game uses port 8452 UDP by default, which can be changed in the lobby. If you are behind a router, and are having problems hosting, try forwarding the correct port and also make sure the firewall is not blocking it.

What APIs does Spring use?

Spring uses OpenGL for graphics and OpenAL for sound. Also SDL is used for input and some other stuff.

What language is Spring written in?

The Spring game engine is mostly written in C++. TASClient is written in Delphi, SpringLS in Java, SpringLobby in C++. Widgets and Gadgets are written in Lua. Skirmish AIs can be written in Lua, C, C++, Java VM languages and Python.

Is Spring open source?

Yes, it is. Go to the downloads section of the site to download the source code.

Is there any documentation for the source code?

Doxygen is used to generate the documentation of springs' source code. An up to date documentation is generated from the develop branch. To generate the documentation yourself, install DoxyGen and run "doxygen" from within the spring source directory.

Is Spring a Portable Application?

Yes, spring can be run from any big-enough portable storage device. Sometimes config files and content files are saved god knows where ie in "my documents"

Is there an alternative way to connect to the lobby server?

Yes, using the IRC-Bridge through an IRC client. Keep in mind though, that this is not officially supported, and no guarantee is given for the reliability of this service.

What do the spring version parts mean?

See EngineVersion#Parts.

Why doesn't the spring engine use all my cpu cores?

Multi-threading is not an issue, it's software behaviour.

Examples of issues:

 1) Graphic glitches
 2) Bad performance

Examples of possible solutions (respectively):

 1) A dev with an AMD card who knows what they're doing
 2) Reducing cache misses (responsible for a significant portion of the speedup in 100.0)

Examples of sexy terms which sound like solutions but are probably more trouble than gain (in most cases):

 1) Multi-threading


From now on we'd recommend refraining from saying:

   Spring should be more multithreaded


As this is not only wrong but useless and annoying.

Instead you can say things like:

   Spring is slow for me and I'd like it to be faster


Which may or may not make a difference, but it will definitely make you look less foolish.

(see https://springrts.com/phpbb/viewtopic.php?f=1&t=33908#p573296 )