diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md new file mode 100644 index 00000000..35cf3f72 --- /dev/null +++ b/DOCUMENTATION.md @@ -0,0 +1,39 @@ +### Legend + +* __TODO__ Things that need documentation +* *Unconfirmed statements* +* Confirmed statements +* (FF) Fortress Forever specific + +# New Entity Implementation Checklist + +* __TODO__ Document general entity requirements + +## Demos + +* __TODO__ Document the requirements for something being replicated in a demo +* __TODO__ Document how ConVars get set when watching someone else's demo and how to include/exclude ConVars from doing that + +### SourceTV + +* __TODO__ Document the requirements for something being replicated to a SourceTV client or in a SourceTV demo (and what would exclude them) +* *Variables in a _NOBASE DataTable do not get recorded in SourceTV demos* + +## Prediction + +* __TODO__ Document how to make something properly predicted + +## DataTables / Networked Variables + +* __TODO__ Document DataTables in how they interact with other people on the server (how to send netwrorked variables to specific clients depending on certain conditions) +* SendProxys are used server-side to determine how the variables in the DataTable are sent (see game/server/sendproxy.cpp) + * __TODO__ List the available SendProxys (or link to a SendProxy section) + +# Example Feature + +General description/overview of the feature (optional) + +## Usage + +* List of guidelines for dealing with the feature +* Information about things like how to implement a new derived class or how to handle a new feature-related entity \ No newline at end of file diff --git a/README b/README deleted file mode 100644 index 1a45b108..00000000 --- a/README +++ /dev/null @@ -1,43 +0,0 @@ - SOURCE 1 SDK LICENSE - -Source SDK Copyright(c) Valve Corp. - -THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE -CORPORATION ("Valve"). PLEASE READ IT BEFORE DOWNLOADING OR USING -THE SOURCE ENGINE SDK ("SDK"). BY DOWNLOADING AND/OR USING THE -SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO -THE TERMS OF THIS LICENSE PLEASE DON’T DOWNLOAD OR USE THE SDK. - - You may, free of charge, download and use the SDK to develop a modified Valve game -running on the Source engine. You may distribute your modified Valve game in source and -object code form, but only for free. Terms of use for Valve games are found in the Steam -Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/ - - You may copy, modify, and distribute the SDK and any modifications you make to the -SDK in source and object code form, but only for free. Any distribution of this SDK must -include this LICENSE file and thirdpartylegalnotices.txt. - - Any distribution of the SDK or a substantial portion of the SDK must include the above -copyright notice and the following: - - DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY - OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED - "AS IS". VALVE AND ITS SUPPLIERS DISCLAIM ALL - WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS - OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED - WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, - TITLE AND FITNESS FOR A PARTICULAR PURPOSE. - - LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR - ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, - INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER - (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF - BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF - BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) - ARISING OUT OF THE USE OF OR INABILITY TO USE THE - ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - -If you would like to use the SDK for a commercial purpose, please contact Valve at -sourceengine@valvesoftware.com. diff --git a/README.md b/README.md new file mode 100644 index 00000000..270b33a5 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# Fortress Forever (Source SDK 2013) + +## Git + +We will be using the branching model laid out here: http://nvie.com/posts/a-successful-git-branching-model/ + +* __TODO__ Specific instructions on how to work within that model (information about when to use rebase, when to merge, etc) + +### Committing + +* Always make sure the code you are committing compiles +* Try to commit features and changes separately, rather than 20 files at once. This means we can easily revert certain pieces if we don't like them, rather than going through manually to remove stuff +* Be descriptive in your revision comments. +* If you aren't sure you're doing something the best way, comment it in code and possibly comment ("First pass, needs cleaning up!" for e.g.) + +## Code + +### Syntax + +#### Variable, Function, File Names and Directory Structure + +* __TODO__ Decide on a naming convention +* Always make variable and function names as descriptive as possible (if 'i' stands for 'currentPlayerIndex' then use 'currentPlayerIndex') + +### Adding/Removing Files + +Solution and makefiles are no longer stored on the repo, they are generated using [VPC](https://developer.valvesoftware.com/wiki/Valve_Project_Creator). To add/remove files from the project, you must edit game/client/client_ff.vpc and/or game/server/server_ff.vpc files and then execute createallprojects(.bat) in the src/ directory. To remove a non-FF-specific file from the project (like HL2DM files), add exactly what you would to add the file (or copy the line from the .vpc that includes it), but put a - before "$File". + +## Documentation + +### DOCUMENTATION.md + +For documentation of general Source engine things or of implemented features, commit to the develop branch. For each feature branch, document the in-development feature as it is worked on; the documentation will get merged along with the feature once it is complete. + +### Doxygen Inline Commenting + +Note: only use Doxygen commenting *as necessary* (see section *Variable, Function, File Names and Directory Structure*) + +To describe classes/functions/files ([List of available @ commands](http://www.stack.nl/~dimitri/doxygen/manual/commands.html#cmdreturns)): + + /// Brief description. (optional) + /** Detailed description. + + @param parameterName Description of the param + @returns Description of the return value + */ + +To describe member variables: + + int var; ///< Detailed description of the member variable + ///< and more if needed