User Tools

Site Tools


building:devsite

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
building:devsite [2019/03/27 13:39]
Mavrixio
building:devsite [2019/03/27 16:20] (current)
Mavrixio
Line 16: Line 16:
  
 ===== What Is an ERF ===== ===== What Is an ERF =====
 +It stands for "​Encapsulated Resources File" but we just call them ERFs. They are containers of blueprints that are using the same prefix(es). \\
 +They are represented that way on the website: \\ {{:​building:​devsite_20190327-105711.png?​400}} \\
 +They can contain any number of resources of the following resource types:
 +  * Scripts (*.nss)
 +  * 2DAs (Two Dimension Tables) (*.2da)
 +  * Conversations (*.dlg)
 +  * Areas (*.are and *.git)
 +  * All *.ut? Blueprints (Creatures, Placeables, Items, Triggers, Waypoints, Encounters, Sounds, Doors, Merchants)
 +  * 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... \\
 +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 =====
 +Each ERFs has the following possibilities:​
 +  - Downloading of All resources in different format (module, erf, compressed individual files....)
 +  - Uploading many resources from different format (module, erf, compressed individual files....)
 +  - Builder Access Control: You can control which builder can have access (Read or Write) to a specific 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.
 +  - 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.
  
building/devsite.1553693963.txt.gz ยท Last modified: 2019/03/27 13:39 by Mavrixio

phpBB Appliance - Powered by TurnKey Linux