Skip to content

Commit

Permalink
Merge pull request #7 from Squad-Wiki-Editorial/dev
Browse files Browse the repository at this point in the history
Added readme for output JSON.
  • Loading branch information
Shanomac99 committed Jul 19, 2021
2 parents 32e3a5a + a040d51 commit f145e5f
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 39 deletions.
57 changes: 18 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,17 @@ The **Squad Wiki Pipeline** (in short: "pipeline") allows the extraction of game

This pipeline currently only extracts **map layer** and **map vehicle assets** data. See example [map wiki page](https://squad.gamepedia.com/Belaya) for the actual use of this data.


## Components
![Squad Wiki Pipeline breakdown](/doc/images/Squad-Wiki-Pipeline.png)



![Squad Wiki Pipeline breakdown](/doc/images/Squad-Wiki-Pipeline.png)

The pipeline consists of four components:

1. Export the game data from the [Squad SDK](https://squad.gamepedia.com/Squad_SDK)
2. Convert this raw export into [JSON format](https://en.wikipedia.org/wiki/JSON) for easier processing
3. Convert SDK labels into names used on the wiki
4. Upload the data to Data pages on the wiki




Most of these steps create interim output files which are used as input files for the following step.

**Step 1** exports the raw data from the Squad SDK.
Expand All @@ -30,74 +25,58 @@ Before the SDK export can be uploaded to the wiki, naming convertions must be pe

With **step 4** the data is uploaded to the wiki with the goal of making the data accessible in a [Cargo database](https://www.mediawiki.org/wiki/Extension:Cargo). However, there is no [MediaWiki API](https://www.mediawiki.org/wiki/API:Main_page) to access the Cargo tables directly, therefore we have to upload the data into interim Data pages - from there, using Cargo commands, the data goes finally into the Cargo tables.

Cargo tables allow the automatic re-use of its data on many wiki pages. Therefore, we only have to update the Cargo data and all wiki pages are automatically updated with the latest data. The data is pulled from the Cargo tables using [Scribunto](https://www.mediawiki.org/wiki/Extension:Scribunto). Scribunto allows powerful programming (using the [programming language Lua](https://en.wikipedia.org/wiki/Lua_(programming_language))) to manipulate and visualize the data onto wiki pages - everything done automatically.
Cargo tables allow the automatic re-use of its data on many wiki pages. Therefore, we only have to update the Cargo data and all wiki pages are automatically updated with the latest data. The data is pulled from the Cargo tables using [Scribunto](https://www.mediawiki.org/wiki/Extension:Scribunto). Scribunto allows powerful programming (using the [programming language Lua](<https://en.wikipedia.org/wiki/Lua_(programming_language)>)) to manipulate and visualize the data onto wiki pages - everything done automatically.

If you want to learn more about the wiki-side programming and maintenance, see our [Squad Wiki Cargo Maintenence documentation](https://squad.gamepedia.com/Squad_Wiki_Editorial/Cargo_Maintenance). Below documentation focuses exclusively on the first four steps that make up the pipeline.




## Latest output files
You will find output files for all new Squad releases on GitHub in folder `completed_output/`. Feel free to use them for your own use with credit given to the Squad Wiki.


You will find output files for all new Squad releases on GitHub in folder `completed_output/`. Feel free to use them for your own use with credit given to the Squad Wiki.

## Installation
Documentation on how to install this pipeline can be read [here](doc/installation.md)



Documentation on how to install this pipeline can be read [here](doc/installation.md)

## Configuration
Documentation on how to configure this pipeline can be read [here](doc/configuration.md)




Documentation on how to configure this pipeline can be read [here](doc/configuration.md)

## Usage
Documentation on how to use this pipeline can be read [here](doc/usage.md)


Documentation on how to use this pipeline can be read [here](doc/usage.md)

Documentation about the output JSON file can be read [here](doc/json.md)

## More documentation
You can find more documentation for the usage of the pipeline [here](https://squad.gamepedia.com/Squad_Wiki_Editorial/Cargo_Maintenance) - this documentation covers the practical operation of the pipline on the wiki-side.



You can find more documentation for the usage of the pipeline [here](https://squad.gamepedia.com/Squad_Wiki_Editorial/Cargo_Maintenance) - this documentation covers the practical operation of the pipline on the wiki-side.

## Project status and roadmap

We have developed this pipeline in 2020 for the maintenance of the [Squad Wiki](https://squad.gamepedia.com/Squad_Wiki). We are utlizing the pipeline every time a new version of Squad is released. We are constantly improving the pipeline and make more and more use of the Cargo data on the wiki.

In the future we are considering extending the pipeline to extract more and more game data for the wiki.



## Contributing

Feel free to use this pipeline or parts of it for other games or game wikis.

If you want to contribute to the pipeline for the [Squad Wiki](https://squad.gamepedia.com/Squad_Wiki), consider joining the team in the [Squad Wiki Editorial](https://squad.gamepedia.com/Squad_Wiki_Editorial).


## Contact
The pipeline was created and is being operated by the team in the [Squad Wiki Editorial](https://squad.gamepedia.com/Squad_Wiki_Editorial) for the [Squad Wiki](https://squad.gamepedia.com/Squad_Wiki). You can best reach us on our own [Discord](https://discord.gg/Y8vgeJ2).



The pipeline was created and is being operated by the team in the [Squad Wiki Editorial](https://squad.gamepedia.com/Squad_Wiki_Editorial) for the [Squad Wiki](https://squad.gamepedia.com/Squad_Wiki). You can best reach us on our own [Discord](https://discord.gg/Y8vgeJ2).

## Authors and acknowledgment
Listed by Discord user names:
* **Shanomac99**#9407 - programming and operation
* **Usgu**#2705 - concept, coordination and documentation
* **[RIP] Rosarch**#1541 - contributor

This project would not have been possible without the invaluable help and support from [Offworld Industries](https://www.offworldindustries.com/), especially the developers **Virus.exe** and **FuzzHead**.



Listed by Discord user names:

- **Shanomac99**#9407 - programming and operation
- **Usgu**#2705 - concept, coordination and documentation
- **[RIP] Rosarch**#1541 - contributor

This project would not have been possible without the invaluable help and support from [Offworld Industries](https://www.offworldindustries.com/), especially the developers **Virus.exe** and **FuzzHead**.

## License

This repository is under the [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). See [License.md](/license.md).
45 changes: 45 additions & 0 deletions doc/json.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# JSON Documentation

This is documentation for the non-converted output JSON file.

- `Name` - Display Name

- `rawName` - Layer ID (used in LayerRotation.cfg)

- `levelName` - Ureal Engine 4 file name for the layer

- `minimapTexture` - Texture name used for minimap. Usefull to see which maps may be smaller (Many skirmish maps for example)

- `lightingLevel` - Unreal Engine 4 file name for the lighting

- `lighting` - Lighting type translated from lightingLevel

- `border` - Array of points of borders. Newer maps have a border spline (think line) that follows the outside of the map. Each point in the array is a point on the spline. Older maps do not have this spline and instead have two opposite points on the map that make a rectangle.

- `team1` `team2` - Factions that are on this layer.

- **For maps with set factions:**
- `faction` - Faction name
- `teamSetupName` - More specific version of faction name, this will be displayed in who won in logs.
- `tickets` - Tickets the faction has at the start of the game
- `playerPercent` - Percentage of players in a game the team gets. 50% means the team would get 50/100 players. 25% would mean the team would get 25/100 players.
- `disabledVeh` -
- `intelOnEnemy` -
- `action` - Number of commander actions
- `commander` - Boolean to tell if there is a commander.

- `type` - Caputre point type.

- `Flag` - Array of flags.

- `caputrePoints` - Number of capture points.

- `mapName` - Name of Level (Al Basrah, Belaya, etc.).

- `gamemode` - Gamemode derived from `Name` (NOT accurate).

- `layerVersion` - Layer version derived from `Name` (NOT accurate).

- `mapSize` - Map size calcualted from border (Rough estimate).

- `mapSizeType` - Type of map size calucation.

0 comments on commit f145e5f

Please sign in to comment.