This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
building:devsite [2019/03/27 15:14] Mavrixio |
building:devsite [2019/03/27 16:20] (current) Mavrixio |
||
---|---|---|---|
Line 26: | Line 26: | ||
* The Module Information File (*_mod.ifo) | * The Module Information File (*_mod.ifo) | ||
Their main purpose is to split resources into meaningful entities, for example: an island, a scripting system, a set of generic items... \\ | Their main purpose is to split resources into meaningful entities, for example: an island, a scripting system, a set of generic items... \\ | ||
- | Splitting resources into multiple ERFs is a good way to document what you are building but it also lets you use many of the [[.:devsite#erfs_features]] on more specific resources. | + | Splitting resources into multiple ERFs is a good way to document what you are building but it also lets you use many of the [[.:devsite#erfs_features|ERFs features]] on more specific resources. |
===== ERFs Features ===== | ===== ERFs Features ===== | ||
Line 35: | Line 35: | ||
- Server Access Control: You can control which server can have access (load) the resources from a speficic ERF. | - Server Access Control: You can control which server can have access (load) the resources from a speficic ERF. | ||
- Areas Visibility in the DM Client: The DM client only lists areas that are from ERFs with the "Show Areas in the DM Client" setting activated. | - Areas Visibility in the DM Client: The DM client only lists areas that are from ERFs with the "Show Areas in the DM Client" setting activated. | ||
- | - ERFs are used to sort: log entries, loot tables, custom factions and weathers | + | - ERFs are used to sort: log entries, [[.:devsite#resources_revision_system|resources backup]], loot tables, custom factions and weathers |
- | | + | |
+ | ===== ERFs / Resources Prefix ===== | ||
+ | The prefix is the part of the ResRef / Blueprint that is **before** the **first** undercore. For exampl: | ||
+ | ^Full ResRef^Extracted Prefix^ | ||
+ | |agn_area_001|agn| | ||
+ | |test___001|test| | ||
+ | |0_1_2_3|0_| | ||
+ | |_abcd|| | ||
+ | It it used to determine from which ERF a resource come from and from there (the ERF) the server can know the remaining (which server / who has access, what weather to use...) | ||
+ | \\ \\ | ||
+ | ERFs have one main prefix and can have secondary prefixs (but secondary prefixes are not recommended). | ||
+ | |||
+ | ===== Resources Revision System ===== | ||
+ | Sinfar development system uses Git under the hood. Everytime that you: | ||
+ | * Edit a resources from the website (compile a script, save a dialog or 2da or GFF resource) | ||
+ | * Upload resources into an ERF | ||
+ | * Rebuild an ERF | ||
+ | A commit is created with all changes and pushed into the Git repository. So **all changes can be tracked and reverted**. \\ | ||
+ | {{:building:devsite_20190327-122043.png}} | ||
+ | |||
+ | ==== Git Repository Structure (For Advance Users) ==== | ||
+ | Each ERF has their own folder and the folder containing all those ERF folders is a Git repository: \\ | ||
+ | {{:building:devsite_20190327-113115.png}} \\ | ||
+ | \\ | ||
+ | GFF resources (*.ut?, *.ifo, *.are and *.git) are stored in a JSON format, for example: | ||
+ | <code> | ||
+ | [ | ||
+ | 4294967295, | ||
+ | { | ||
+ | "AddCost": [ | ||
+ | 4, | ||
+ | 0 | ||
+ | ], | ||
+ | "BaseItem": [ | ||
+ | 5, | ||
+ | 22 | ||
+ | ], | ||
+ | "DescIdentified": [ | ||
+ | 12, | ||
+ | { | ||
+ | "s0": "A multifunctional combat cutter appears in your hand. It seems particulary effective against living tissue as the hot edge not only cuts but burns through flesh like butter." | ||
+ | } | ||
+ | ], | ||
+ | ... | ||
+ | </code> | ||
+ | Sot it possible (but far from perfect...) for the system to merge, revert and display changes. GFF resources have the extra extension .json added to them: \\ | ||
+ | {{:building:devsite_20190327-114109.png}} \\ | ||
+ | Remmber that this is only for the Git repository, the game server doesn't understand this JSON format. The game server load the resources from a clone of the repository that has the binary (GFF) format of the resources. | ||