NPBruce / valkyrie

Valkyrie GM for Fantasy Flight Board Games
Apache License 2.0
497 stars 103 forks source link

[Feature] Support hosting and downloading custom content packs #1649

Open Quantumrunner opened 6 months ago

Quantumrunner commented 6 months ago

Is your feature request related to a problem?

Content creators want to create scenarios that contain content such as tiles and characters that are not included as normal content in Valkyrie.

Valkyrie already allows to create custom content packs but there is now way to host them on a central location and then download them on demand.

With this features it would be easy to create content packs for Mansions of Madness that contain additional tiles and host them on GitHub (same as for scenarios). Furthermore Valkyrie can be expanded with other games as well. It would be possible to create scenarios other games such as the Doom Boardgame, Mice and Mystics or Gloomhaven.

Doom Mod

A mod for Doom already exist for Valkyrie already but needs quite some setup. Users need to manually copy the doom content pack files to their Valkyrie folder. The custom content packs change would automate all of this.

Describe the solution you'd like

In Select content section add an option to download custom content packs. These custom content packs are defined in an additional manifest file that is hosted on google drive (same as the manifest file for scenarios).

grafik

Custom Content Pack download location

After downloading a content pack it is saved in a new subfolder ContentPacks.

grafik

This folder then contains data of the custom content packs as zip file with file extension .valkyrieContentPack

grafik

The new manifest file can currently be found here: https://drive.google.com/file/d/1qGpXhwvQNsSOcT6CAd45RLB-zFI_cEou/view?usp=sharing

When a scenario gets started or the scenario editor get opened the downloaded content packs get unpacked in a temporary file location to load all data they contain (e.g. tiles, tokens...).

Custom content pack manifest file

The manifest file for custom content packs contains the definition of the content pack and where it is located on GitHub (property Url).

Property descriptions

Example manifest file content:

# Generated the 2023-01-15T11:06:22'UTC' with 1 scenarios
[Doom]
format=18
type=D2ECustom
defaultlanguage=English
image="img/BX_Art"
version=18-82-F1-5E-37-F9-1B-EE-AF-FB-0F-F7-64-7F-44-37-17-73-E8-4E-67-7B-BC-C1-D0-5E-3E-F7-CD-4B-1E-33
name.English=Doom
description.English=DooM Conversion Kit for Descent
url=https://raw.githubusercontent.com/ValkDes/ValkyrieDTest/main/

The following video shows a working proof of concept:

https://github.com/NPBruce/valkyrie/assets/58113888/4a7ba602-6fae-470d-8274-ec5ccaaad3de

Branch

All changes are available in the following branch: https://github.com/NPBruce/valkyrie/tree/dev/CustomContentPacks

ToDos

I currently don't have the time anymore to work on this branch therefore I would be grateful for anyone to pick up this topic. :)

vidimus commented 6 months ago

Amazing! It would be a great feature for Valkyrie.