FAQ:technical: Difference between revisions

From Spring
Jump to navigationJump to search
Af (talk | contribs)
No edit summary
Abma (talk | contribs)
 
(23 intermediate revisions by 5 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.
==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.


==I am having really bad framerates (fps) on my dual core! What am I doing wrong?==
==Is Spring open source?==
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.
Yes, it is. Go to the [[Download|downloads]] section of the site to download the source code.


Additionally, install the latest processor drivers and Windows hotfixes for your system.
==Is there any documentation for the source code?==
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.


==I am having really bad framerates (fps) on my brand new nVidia graphics card! What am I doing wrong?==
==Is Spring a Portable Application?==
Turn off 'threaded optimizations' for Spring in the nVidia control panel.


==What language is Spring written in?==
Yes, spring can be run from any big-enough portable storage device.
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.
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 [[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.
 
==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)


==Is Spring open source?==
Examples of sexy terms which sound like solutions but are probably more trouble than gain (in most cases):
Yes, it is. Go to the [http://spring.clan-sy.com/download.php downloads] section of the site to download the source code.
  1) Multi-threading


==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'').


==Is Spring a Portable Application?==
From now on we'd recommend refraining from saying:


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.
    Spring should be more multithreaded


If both of those can run off a bleedin' IPOD, they can run off of anything, in my opinion.


If I'm wrong, edit.
As this is not only wrong but useless and annoying.


See [http://en.wikipedia.org/wiki/Portable_application] for more information about portable applications.
Instead you can say things like:


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


- 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.
Which may or may not make a difference, but it will definitely make you look less foolish.


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

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 )