Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
3 of 5 tasks
Quantumrunner opened this issue Dec 31, 2023 · 1 comment
Open
3 of 5 tasks

Comments

@Quantumrunner
Copy link
Collaborator

Quantumrunner commented Dec 31, 2023

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

  • format= Same logic as format specifier for scenarios. If the format is higher than the current Valkyrie format version than the custom content pack should not be shown in custom content pack download page.
  • type= Specify in which game this custom content pack will be shown. Possible values are D2ECustom or MOMCustom (for MOM I'm not sure if this is really the value. Please check in code...)
  • defaultlanguage= I can't remember if this property currently serves any purpose...
  • image=Image Uses shown in custom content pack download menu. Uses same logic as scenarios.
  • version=Version string generated to check if a new version a custom content pack is available. Uses same logic as scenarios.
  • name.English=English name shown in custom content pack download menu. Uses same logic as scenarios.
  • description.English= English description shown in custom content pack download menu. Uses same logic as scenarios.
  • url= url where the content pack file is located in GitHub.

Example manifest file content:

# Generated the 2023-01-15T11:06:22'UTC' with 1 scenarios
[Doom]
type=D2ECustom
defaultlanguage=English
image="contentpackicon.png"
version=1
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:

ValkyrieDownloadContentPacks.mp4

Branch

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

ToDos

  • Change logic in Valkyrie main menu so that the two files from Google Drive are not downloaded again every time the user goes to main menu. Instead the file should only be checked when the app is started.
    • If this does not get changed google drive will very quickly block the app users IP from downloading the manifest files for multiple minutes ( which then results in HTTP 403 access denied).
  • Add an icon for custom content packs on custom content pack download page.
  • Move new manifest file for definition of custom content packs to same location as normal scenario manifest file. Share this file with manifest file editors and make file available in public.
  • Ask the creator of the doom extension to upload the custom content pack to GitHub (the extension link from my own repo is just for testing and should be removed once this change is ready).
  • Optional: Add possibility to start using Valkyrie D2E and MoM modes without importing any content. This could then be used for users who are only interested in using the custom content packs for other games.

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. :)

@Quantumrunner Quantumrunner changed the title [Feature] Support of custom content packs [Feature] Support hosting and downloading custom content packs Dec 31, 2023
@vidimus
Copy link
Contributor

vidimus commented Jan 3, 2024

Amazing! It would be a great feature for Valkyrie.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants