Difference between revisions of "SCP Additions"

From FreeSpace Wiki
Jump to: navigation, search
Line 10: Line 10:
 
#Secondary objective: With time and effort, we can start compiling here all the oustanding features already present. Although a bit more difficult, digging through this page (and using the search function of your browser), you can learn a lot of ''hidden'' things you didn't know about fs_open.
 
#Secondary objective: With time and effort, we can start compiling here all the oustanding features already present. Although a bit more difficult, digging through this page (and using the search function of your browser), you can learn a lot of ''hidden'' things you didn't know about fs_open.
  
This list of features is indeed two lists because from version 3.6.9. more or less the public game code of the game was split in two branches:
+
This list of features is indeed two lists because, more or less from version 3.6.9., the game source code of the game was split in two branches:
*'''[[SCP_Additions#HEAD_Branch_.28CVS.29_-_Experimental.2C_non-canon_features|Head branch]]'''. It contains all unstable or experimental new features. Builds based on this branch should be used only for testing and only by experimented users. They can easily crash, corrupt pilot files or whatever.
+
*'''[[SCP_Additions#HEAD_Branch_.28CVS.29_-_Experimental.2C_non-canon_features|HEAD branch]]'''. It contains all unstable or experimental new features. Builds based on this branch should be used only for testing and only by experimented users. They can easily crash, have bugs, corrupt pilot files or have any other undesired effect.
*
+
*'''[[SCP_Additions#Stable_Branch|Stable branch]]'''. This branch has more tested features and, although bugs can always appear, they are supposed to be much stable. This branch of the code is the one used for ''official releases'' like 3.6.9. As a general rule, ''HEAD branch'' has all the ''Stable branch'' features, but ''Stable branch'' don't have all the ''HEAD branch'' capabilities.
  
 +
:''You can get more info about getting the source code, (both branches), [[Getting_the_Source|here]]''
  
  
Line 30: Line 31:
 
#* As you can imagine, this Wiki section can become a mess quite easily.
 
#* As you can imagine, this Wiki section can become a mess quite easily.
 
#* Always check that all the links work.
 
#* Always check that all the links work.
# '''General posting rules.'''
+
# '''The other general posting rules.'''
 
## As they should be quite intuitive, please follow any other example you find already posted.
 
## As they should be quite intuitive, please follow any other example you find already posted.
## This list is actually two lists:
+
## '''Be sure you know''' if the feature must go to '''HEAD Branch''' or '''Stable Branch'''. And please, if your feature is ''upgraded'' from the HEAD to the stable branch, '''please update the lists and dates'''.
##* Features that belong only to HEAD experimental builds.
+
## '''Be extremely tidy in the place and date you post'''. The lists, (both HEAD and stable), should be always kept sorted in descending date order (the most recent additions should go in the upper part of each section).
##* Features that belong also to stable builds. This kind of features are also present in HEAD builds. These builds are the seed for ''official'' SCP releases (like 3.6.9).
 
## Therefore, be sure you know if the feature must go to '''HEAD Branch''' or '''Stable Branch'''.
 
## '''Be extremely tidy in the place and date you post'''. The list should be always kept sorted in descending date order (the most recent additions should go in the upper part of each section).
 
 
## If the CVS date for your feature doesn't exist, create a new one.
 
## If the CVS date for your feature doesn't exist, create a new one.
 
## Always '''use Japanese YYYY-MM-DD format'''. So January 27th in 2007 should be 2007-01-27. (In this way the ''number'' of the date always grows when a day advances).
 
## Always '''use Japanese YYYY-MM-DD format'''. So January 27th in 2007 should be 2007-01-27. (In this way the ''number'' of the date always grows when a day advances).
Line 42: Line 40:
 
### Each new feature in a given date should be a sublist item, ie. start it with **
 
### Each new feature in a given date should be a sublist item, ie. start it with **
 
### Each new feature has four sections. These subsections are sub-sublist items, ie. start them with ***:
 
### Each new feature has four sections. These subsections are sub-sublist items, ie. start them with ***:
###*'''Description:''' A brief description of the feature.
+
###*''Description:'' A brief description of the feature.
###*'''Category:''' The game category this feature falls in. It can be useful for people that want to look for just new "Sound" features for example. '''Please check the spelling and do not invent new categories'''. If you type "suond" or if we have one thousand different categories, this field is useless. <br>You can assign several categories if you feel the feature you are posting about can fall in several areas. <br>The ''official'' categories are:<br><font color=yellow>WARNING: We have to decide exact category names too ...</font>
+
###*''Category:'' The game category this feature falls in. It can be useful for people that want to look for just new "Sound" features for example. '''Please check the spelling and do not invent new categories'''. If you type "suond" or if we have one thousand different categories, this field is useless. <br>You can assign several categories if you feel the feature you are posting about can fall in several areas. <br>The ''official'' categories are:<br><font color=yellow>WARNING: We have to decide exact category names too ...</font>
 
###**''Mission features''. All the new stuff you can add to missions through FRED, ie. new sexps, backgrounds, new mission options, ...
 
###**''Mission features''. All the new stuff you can add to missions through FRED, ie. new sexps, backgrounds, new mission options, ...
 
###**''FRED interface''. Any other FRED improvements, like Voice Acting Manager, which don't fall in the previous one.
 
###**''FRED interface''. Any other FRED improvements, like Voice Acting Manager, which don't fall in the previous one.
Line 54: Line 52:
 
###**''Multiplayer''. (I know nothing about it, again)
 
###**''Multiplayer''. (I know nothing about it, again)
 
###**''Coding''. Technical coder info which maybe is not directly seen in game but needs to be told. Like "I have changed all the arrays with pointers in this subroutine". (Sorry if I'm telling nonsenses but I'm no coder at all, I think you can imagine what I want to say).
 
###**''Coding''. Technical coder info which maybe is not directly seen in game but needs to be told. Like "I have changed all the arrays with pointers in this subroutine". (Sorry if I'm telling nonsenses but I'm no coder at all, I think you can imagine what I want to say).
###*'''See:''' Put the links here to related pages with deeper info about that feature. If you want to post a lot of info about your feature, create your own page and put the link here.
+
###*''See:'' Put the links here to related pages with deeper info about that feature. If you want to post a lot of info about your feature, create your own page and put the link here.
###* '''Usage Tips:''' In the future, creating a tips page somewhere in the Wiki is intended. In this section you could explain useful tricks. Put here the links to the tips this feature is useful for here.<br>''If you feel like it, you can even start that tricks page ;) . Some discussion can be found [http://www.hard-light.net/forums/index.php/topic,44892.0.html here].''
+
###* ''Usage Tips:'' In the future, creating a tips page somewhere in the Wiki is intended. In this section you could explain useful tricks. Put here the links to the tips this feature is useful for here.<br>''If you feel like it, you can even start that tricks page ;) . Some discussion can be found [http://www.hard-light.net/forums/index.php/topic,44892.0.html here].''
## If your feature is ''upgraded'' from the HEAD to the stable branch, '''please move it to that section and update the dates
 
 
## If you want you can use the next colour code to tell the addition importance:
 
## If you want you can use the next colour code to tell the addition importance:
 
##* <font color=red>'''Critical update'''</font>. (This would be an extremely important update over retail behaviour).
 
##* <font color=red>'''Critical update'''</font>. (This would be an extremely important update over retail behaviour).
Line 84: Line 81:
 
*'''YYYY-MM-DD'''. Unknown date:
 
*'''YYYY-MM-DD'''. Unknown date:
 
**'''Environmental mapping'''
 
**'''Environmental mapping'''
***'''Description:''' Ship hulls reflect background bitmaps. Additionally, alpha channel of specular maps can be used to set the reflection intensity.
+
***''Description:'' Ship hulls reflect background bitmaps. Additionally, alpha channel of specular maps can be used to set the reflection intensity.
***'''Category:''' Graphics.
+
***''Category:'' Graphics.
***'''See:''' [[Command-Line_Reference#-env]], [[Command-Line_Reference#-alpha_env]], [[Texturing]], [[Command-Line_Reference#-spec]]   
+
***''See:'' [[Command-Line_Reference#-env]], [[Command-Line_Reference#-alpha_env]], [[Texturing]], [[Command-Line_Reference#-spec]]   
***'''Usage Tips:'''
+
***''Usage Tips:''
  
 
====Former builds====
 
====Former builds====
 
* '''YYYY-MM-DD'''. Unknown date:
 
* '''YYYY-MM-DD'''. Unknown date:
 
**<font color=red>'''OpenGL support'''</font>
 
**<font color=red>'''OpenGL support'''</font>
***'''Description:''' The game has been ported from original DirectX to OpenGL API. Moreover, DirectX is depreciated and can become unsupported in future versions.
+
***''Description:'' The game has been ported from original DirectX to OpenGL API. Moreover, DirectX is depreciated and can become unsupported in future versions.
***'''Category:''' Graphics.
+
***''Category:'' Graphics.
***'''See:'''
+
***''See:''
***'''Usage Tips:'''
+
***''Usage Tips:''
 
**<font color=red>'''Modular Tables'''</font>
 
**<font color=red>'''Modular Tables'''</font>
***'''Description:''' [[TBM|*.TBM]] modular tables allow partial modifications over [[TBL|*.TBL]] standard tables.
+
***''Description:'' [[TBM|*.TBM]] modular tables allow partial modifications over [[TBL|*.TBL]] standard tables.
***'''Category:''' Tables and modding.
+
***''Category:'' Tables and modding.
***'''See:''' [[Modular Tables]]
+
***''See:'' [[Modular Tables]]
***'''Usage Tips:'''
+
***''Usage Tips:''
 
**'''Launcher flags'''
 
**'''Launcher flags'''
***'''Description:''' Some of the new fs2_open and FRED2_open features are switched on through command line parameters. They can also be set through Launcher utility.
+
***''Description:'' Some of the new fs2_open and FRED2_open features are switched on through command line parameters. They can also be set through Launcher utility.
***'''Category:''' Coding.
+
***''Category:'' Coding.
***'''See:''' [[Command-Line Reference]]  
+
***''See:'' [[Command-Line Reference]]  
***'''Usage Tips:'''
+
***''Usage Tips:''
 
**<font color=red>'''-MOD flag'''</font>
 
**<font color=red>'''-MOD flag'''</font>
***'''Description:''' It allows the usage of extra game data folders inside FS2 main folder. It is mainly used to avoid undesired mod data cross-effects.
+
***''Description:'' It allows the usage of extra game data folders inside FS2 main folder. It is mainly used to avoid undesired mod data cross-effects.
***'''Category:''' Tables and modding.
+
***''Category:'' Tables and modding.
***'''See:''' [[Command-Line Reference#-mod]], [[FS2 Data Structure]]
+
***''See:'' [[Command-Line Reference#-mod]], [[FS2 Data Structure]]
***'''Usage Tips:'''
+
***''Usage Tips:''
 
**'''Enhanced texture support'''
 
**'''Enhanced texture support'''
***'''Description:''' The game now supports [[Wikipedia:Truevision TGA|*.TGA]], [[Wikipedia:JPG|*.JPG]] and [[Wikipedia:DirectDraw Surface|*.DDS]] textures. There's also a new format for animated textures &mdash; [[EFF|*.EFF]].
+
***''Description:'' The game now supports [[Wikipedia:Truevision TGA|*.TGA]], [[Wikipedia:JPG|*.JPG]] and [[Wikipedia:DirectDraw Surface|*.DDS]] textures. There's also a new format for animated textures &mdash; [[EFF|*.EFF]].
***'''Category:''' Tables and modding, Graphics.
+
***''Category:'' Tables and modding, Graphics.
***'''See:''' [[Texturing]], [[Command-Line Reference#-jpgtga]]
+
***''See:'' [[Texturing]], [[Command-Line Reference#-jpgtga]]
***'''Usage Tips:'''
+
***''Usage Tips:''

Revision as of 16:13, 23 July 2007

Introduction

The main purpose of the Source Code Project is enhancing the game with new features. And this has been done in such succesfully way that maybe nobody knows them all. So this is a major flaw in the project because:

  1. Coders can easily become demotivated because they see that a lot of effort they spend upgrading the engine is scarcely used.
  2. Modders could build better campaigns and mods if they knew all the available extra stuff.

This page is intended as an enormous log where coders can make public all their huge and great work:

  1. Main objective: From now on, (july 2007), coders will have an only place where easily, (more or less), post all their additions sorted by date. In this way you can check what you've missed in the last two weeks you've been on holidays without needing to dig through all HLP forum threads.
  2. Secondary objective: With time and effort, we can start compiling here all the oustanding features already present. Although a bit more difficult, digging through this page (and using the search function of your browser), you can learn a lot of hidden things you didn't know about fs_open.

This list of features is indeed two lists because, more or less from version 3.6.9., the game source code of the game was split in two branches:

  • HEAD branch. It contains all unstable or experimental new features. Builds based on this branch should be used only for testing and only by experimented users. They can easily crash, have bugs, corrupt pilot files or have any other undesired effect.
  • Stable branch. This branch has more tested features and, although bugs can always appear, they are supposed to be much stable. This branch of the code is the one used for official releases like 3.6.9. As a general rule, HEAD branch has all the Stable branch features, but Stable branch don't have all the HEAD branch capabilities.
You can get more info about getting the source code, (both branches), here


Posting rules

Please follow the rules. Even if you don't agree with some of them, follow them. This section can grow huge and it can become a damn hell. So we need one and only set of rules. And we all must follow it.

No discussion here, please.


  1. 1st. GOLDEN RULE: Be extremely brief.
    • Do not make long explanations within the lists.
    • In each entry Description section write a brief explanation.
    • If you need a deeper explanation for that feature put a link, (or links), in See section. Even create new pages if needed.
  2. 2nd. GOLDEN RULE: Be extremely tidy.
    • As you can imagine, this Wiki section can become a mess quite easily.
    • Always check that all the links work.
  3. The other general posting rules.
    1. As they should be quite intuitive, please follow any other example you find already posted.
    2. Be sure you know if the feature must go to HEAD Branch or Stable Branch. And please, if your feature is upgraded from the HEAD to the stable branch, please update the lists and dates.
    3. Be extremely tidy in the place and date you post. The lists, (both HEAD and stable), should be always kept sorted in descending date order (the most recent additions should go in the upper part of each section).
    4. If the CVS date for your feature doesn't exist, create a new one.
    5. Always use Japanese YYYY-MM-DD format. So January 27th in 2007 should be 2007-01-27. (In this way the number of the date always grows when a day advances).
    6. Each new date should be a list item, ie. start it with *
      1. Each new feature in a given date should be a sublist item, ie. start it with **
      2. Each new feature has four sections. These subsections are sub-sublist items, ie. start them with ***:
        • Description: A brief description of the feature.
        • Category: The game category this feature falls in. It can be useful for people that want to look for just new "Sound" features for example. Please check the spelling and do not invent new categories. If you type "suond" or if we have one thousand different categories, this field is useless.
          You can assign several categories if you feel the feature you are posting about can fall in several areas.
          The official categories are:
          WARNING: We have to decide exact category names too ...
          • Mission features. All the new stuff you can add to missions through FRED, ie. new sexps, backgrounds, new mission options, ...
          • FRED interface. Any other FRED improvements, like Voice Acting Manager, which don't fall in the previous one.
          • Graphics. All the extra graphical capabilities added like OGL support, shine, glow, env or normal mapping...
          • Sound. Just the same with sound and music (ogg support as example).
          • Game interface. F3 Lab, showing models in loadout screen, showing ship info in hud, extended hud capabilities...
          • Models. Everything that has to do with ship models like higher poly limits, glow points...
          • Tables and modding. Everything that allows modders to customize FS2 and it's not directly set in FRED as a mission feature. Examples: Data management (-MOD flag), extended texture format support, modular tables, "un-hardcoded" tables like iff_defs, 3D shockwaves, 3D warp effects...
          • Scripting. (I know nothing about it)
          • Multiplayer. (I know nothing about it, again)
          • Coding. Technical coder info which maybe is not directly seen in game but needs to be told. Like "I have changed all the arrays with pointers in this subroutine". (Sorry if I'm telling nonsenses but I'm no coder at all, I think you can imagine what I want to say).
        • See: Put the links here to related pages with deeper info about that feature. If you want to post a lot of info about your feature, create your own page and put the link here.
        • Usage Tips: In the future, creating a tips page somewhere in the Wiki is intended. In this section you could explain useful tricks. Put here the links to the tips this feature is useful for here.
          If you feel like it, you can even start that tricks page ;) . Some discussion can be found here.
    7. If you want you can use the next colour code to tell the addition importance:
      • Critical update. (This would be an extremely important update over retail behaviour).
        • Description: Whatever...
          ...
        • Usage Tips:
      • Common update. (Normal updates).
        • Description: Whatever...
          ...
        • Usage Tips:
      • Just a tweak. (This would be just a tweak over retail Freespace2).
        • Description: Whatever...
          ...
        • Usage Tips:
    8. When a new official release appears, Stable > CVS subsection name is just changed to the new build denomination and a new Stable > CVS section is created.



Feature list sorted by date

HEAD Branch (CVS) - Experimental, non-canon features

Stable Branch

CVS

3.6.9. build

Former builds

  • YYYY-MM-DD. Unknown date:
    • OpenGL support
      • Description: The game has been ported from original DirectX to OpenGL API. Moreover, DirectX is depreciated and can become unsupported in future versions.
      • Category: Graphics.
      • See:
      • Usage Tips:
    • Modular Tables
      • Description: *.TBM modular tables allow partial modifications over *.TBL standard tables.
      • Category: Tables and modding.
      • See: Modular Tables
      • Usage Tips:
    • Launcher flags
      • Description: Some of the new fs2_open and FRED2_open features are switched on through command line parameters. They can also be set through Launcher utility.
      • Category: Coding.
      • See: Command-Line Reference
      • Usage Tips:
    • -MOD flag
      • Description: It allows the usage of extra game data folders inside FS2 main folder. It is mainly used to avoid undesired mod data cross-effects.
      • Category: Tables and modding.
      • See: Command-Line Reference#-mod, FS2 Data Structure
      • Usage Tips:
    • Enhanced texture support