Difference between revisions of "SCP Additions"
From FreeSpace Wiki
Line 7: | Line 7: | ||
This page is intended as an enormous log where coders can make public all their huge and great work: | This page is intended as an enormous log where coders can make public all their huge and great work: | ||
− | #'''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 | + | #'''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 will be able to check what you've missed in the last two weeks you've been on holidays without needing to dig through all HLP forum threads. |
− | #Secondary objective: With time and effort, we | + | #Secondary objective: With time and effort, we will be able to start compiling here all the oustanding features already present. Although a bit more difficult, digging through this page, (using the search function of your web 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 | + | This list of features is indeed two lists because, more or less from version 3.6.9., the game source code 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, have bugs, corrupt pilot files or have any other undesired effect. | *'''[[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. | *'''[[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. |
Revision as of 16:33, 23 July 2007
Contents
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:
- Coders can easily become demotivated because they see that a lot of effort they spend upgrading the engine is scarcely used.
- 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:
- 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 will be able to check what you've missed in the last two weeks you've been on holidays without needing to dig through all HLP forum threads.
- Secondary objective: With time and effort, we will be able to start compiling here all the oustanding features already present. Although a bit more difficult, digging through this page, (using the search function of your web 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 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.
- 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.
- 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.
- The other general posting rules.
- As they should be quite intuitive, please follow any other example you find already posted.
- 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.
- 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).
- 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).
- Each new date should be a list 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 ***:
- 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.
- 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:
- Description: Whatever...
- Common update. (Normal updates).
- Description: Whatever...
... - Usage Tips:
- Description: Whatever...
- Just a tweak. (This would be just a tweak over retail Freespace2).
- Description: Whatever...
... - Usage Tips:
- Description: Whatever...
- Critical update. (This would be an extremely important update over retail behaviour).
- 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
- YYYY-MM-DD. Unknown date:
- Environmental mapping
- Description: Ship hulls reflect background bitmaps. Additionally, alpha channel of specular maps can be used to set the reflection intensity.
- Category: Graphics.
- See: Command-Line_Reference#-env, Command-Line_Reference#-alpha_env, Texturing, Command-Line_Reference#-spec
- Usage Tips:
- Environmental mapping
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
- OpenGL support