Difference between revisions of "Programming"

From FreeOrionWiki
Jump to: navigation, search
(Replace intenal link to OpenGL with Wikipedia article.)
 
(17 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[http://people.msoe.edu/~millerni/forums.php?show=topic&id=114&forum=13 meridia online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=157&forum=13 free wwe ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=128&forum=13 phentermine online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=158&forum=13 cheap xanax] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=106&forum=13 hydrocodone online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=160&forum=13 zanaflex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=102&forum=13 free free ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=97&forum=13 buy didrex] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=135&forum=13 real ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=100&forum=13 buy fioricet] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=96&forum=13 buy diazepam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=136&forum=13 cheap rivotril] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=87&forum=13 cheap ativan] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=144&forum=13 free sonyericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=137&forum=13 free sagem ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=152&forum=13 free verizon ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=139&forum=13 sharp ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=125&forum=13 ortho online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=156&forum=13 wellbutrin online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=151&forum=13 valium] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=121&forum=13 cheap nexium] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=147&forum=13 free tracfone ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=142&forum=13 free sony ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=94&forum=13 free cool ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=161&forum=13 but zoloft] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=117&forum=13 free motorola ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=133&forum=13 qwest ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=138&forum=13 samsung ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=122&forum=13 free nextel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=89&forum=13 cheap celexa] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=99&forum=13 ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=115&forum=13 midi ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=146&forum=13 tenuate online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=109&forum=13 cheap levitra] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=82&forum=13 cheap adipex] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=132&forum=13 punk ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=130&forum=13 cheap propecia] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=83&forum=13 albuterol online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=85&forum=13 order alprazolam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=153&forum=13 buy viagra] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=148&forum=13 order tramadol] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=143&forum=13 free sony ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=86&forum=13 order ambien] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=103&forum=13 funny ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=104&forum=13 hgh online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=129&forum=13 free polyphonic ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=90&forum=13 cialis online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=123&forum=13 nokia ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=101&forum=13 but flexeril] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=124&forum=13 online norco] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=149&forum=13 ultracet online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=88&forum=13 cheap carisoprodol] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=108&forum=13 free kyocera ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=93&forum=13 cheap clonazepam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=127&forum=13 pharmacy online online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=95&forum=13 cyclobenzaprine online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=150&forum=13 cheap ultram] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=111&forum=13 lisinopril online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=159&forum=13 cheap xenical] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=162&forum=13 cheap zyban] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=116&forum=13 mono ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=112&forum=13 lorazepam online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=145&forum=13 free sprint ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=110&forum=13 lipitor online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=131&forum=13 prozac online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=120&forum=13 free music ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=105&forum=13 cheap hoodia] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=155&forum=13 vigrx online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=98&forum=13 cheap diethylpropion] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=113&forum=13 but lortab] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=154&forum=13 cheap vicodin] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=119&forum=13 mtv ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=84&forum=13 alltel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=141&forum=13 cheap soma] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=107&forum=13 free jazz ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=140&forum=13 sildenafil online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=126&forum=13 paxil online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=118&forum=13 mp3 ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=92&forum=13 clomid online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=91&forum=13 cingular ringtones] [[FreeOrion]] is being made with , [[OpenGL]] and [[GiGi]]. The programming lead is [http://www.freeorion.org/forum/profile.php?mode=viewprofile
+
[[FreeOrion]] is being coded with C++, Boost, Python, [https://en.wikipedia.org/wiki/OpenGL OpenGL] and [[GiGi]].
 +
 
 +
If you want to contribute, please post on the forums (preferred) or send a forum private message to [http://freeorion.org/forum/memberlist.php?mode=viewprofile&u=142 Geoff the Medio].
 +
 
 +
A list of programming tasks to be completed can be found on the [https://github.com/freeorion/freeorion/issues GitHub issues tracker].
 +
 
 +
For information on procedures, code standards, etc:
 +
* [[Code Standards]]
 +
* [[Adding and removing source-files]]
 +
 
 +
To submit code changes, create a pull request for the master branch on the [https://github.com/freeorion/freeorion FreeOrion github repository]. Be sure to note that you release your changes under the GPL 2.0 (or later) license.
 +
 
 +
You should expect your submissions to be reviewed and to receive feedback requesting changes before they are accepted and merged into master. Following the [[Code Standards]] for FreeOrion will likely reduce the number of changes needed.
 +
 
 +
==High-Level Structure of FreeOrion Code==
 +
 
 +
There are three FreeOrion modules: the human client, the server and the AI client. The server creates the game, and sends it out to the clients. Clients issue orders, which the server executes before updating the gamestate each turn and sending the new gamestate to the clients.
 +
 
 +
The gamestate comprises a Universe and a set of Empires. The Universe contains various UniverseObject subclasses: Buildings, Planets, Systems, Ships. Empire keeps track of individual empires: research and production status, homeworld, explored systems.
 +
 
 +
Various bits of game content are stored in manager classes, like TechManager. Techs, Buildings, Specials, etc. are defined in text files, which are parsed when the game starts up. The manager classes provide access to this info from anywhere that needs it.
 +
 
 +
Each screen in the UI has its own class, in which all the windows and widgets are objects. Most UI screens are objects contained within the MapWnd object. Generally UI classes communicate with classes they contain by calling public methods, and classes that contain them by emitting signals which the containing object has connected to various functions.

Latest revision as of 17:42, 25 March 2018

FreeOrion is being coded with C++, Boost, Python, OpenGL and GiGi.

If you want to contribute, please post on the forums (preferred) or send a forum private message to Geoff the Medio.

A list of programming tasks to be completed can be found on the GitHub issues tracker.

For information on procedures, code standards, etc:

To submit code changes, create a pull request for the master branch on the FreeOrion github repository. Be sure to note that you release your changes under the GPL 2.0 (or later) license.

You should expect your submissions to be reviewed and to receive feedback requesting changes before they are accepted and merged into master. Following the Code Standards for FreeOrion will likely reduce the number of changes needed.

High-Level Structure of FreeOrion Code

There are three FreeOrion modules: the human client, the server and the AI client. The server creates the game, and sends it out to the clients. Clients issue orders, which the server executes before updating the gamestate each turn and sending the new gamestate to the clients.

The gamestate comprises a Universe and a set of Empires. The Universe contains various UniverseObject subclasses: Buildings, Planets, Systems, Ships. Empire keeps track of individual empires: research and production status, homeworld, explored systems.

Various bits of game content are stored in manager classes, like TechManager. Techs, Buildings, Specials, etc. are defined in text files, which are parsed when the game starts up. The manager classes provide access to this info from anywhere that needs it.

Each screen in the UI has its own class, in which all the windows and widgets are objects. Most UI screens are objects contained within the MapWnd object. Generally UI classes communicate with classes they contain by calling public methods, and classes that contain them by emitting signals which the containing object has connected to various functions.