EliteMasterEric / EnigmaEngine

A fork of FNF's Kade Engine that combines its QoL features with true mod support and new gameplay enhancements
https://enigmaengine.github.io/
Other
12 stars 1 forks source link

Enhancement: Clean up `assets/data/songs/` #49

Closed prokube closed 2 years ago

prokube commented 2 years ago

Please check for duplicates or similar issues before creating this issue.

What is your suggestion, and why should it be implemented?

This mainly references the fact that we categorize the charts into folders for each song, but then put the song name in the chart again. (tutorial/tutorial-hard.json)

  1. Remove the "SONGNAME-" prefix from the charts. Result: tutorial/Hard.json

  2. If we add custom difficulties, we can check the amount of charts in a song's chart directory, and load the difficulties by name:

- tutorial/
- - Easy.json
- - Hard.json
- - Normal.json

This system will push all of the charts to the Freeplay State, and make them selectable. So if you were to add a Mania difficulty to Tutorial:

- tutorial/
- - Easy.json
- - Hard.json
- - Mania.json
- - Normal.json

It would push a difficulty called "Mania" to the selectable difficulties in Freeplay.

If this is already implemented and I'm not thinking of Psych i will be sand because I spend like 10 minutes writing this

EliteMasterEric commented 2 years ago

The main reason I left the name of the song in the filename is because other engines do it and I don't want to increase work required for porting mods.

As for custom difficulties, those are already implemented, I did it while I was reworking the story menu.

To register a new difficulty, do the following: (kinda sketch since I'm writing this on my phone)

  1. Add an entry to data/difficulties.txt. you can do this by making a file in your mod folder _append/data/difficulties.txt.

The default list of difficulties looks like:

easy:-easy
normal:
hard:-hard

First element is the id and the second is the song suffix.

So in your _append file you'd put:

mania:-mania

Difficulties are read in order so Mania would come after hard.

  1. Add the graphic for the story menu. It goes in images/storymenu/difficulty/.png

You're done.

In free play, the game will query for a song file with the suffix provided above, and show those difficulties. So you can make a song whose only difficulty is mania and it won't break.

In Story mode, the game will query to use only those difficulties where every song in the playlist is available.

prokube commented 2 years ago

As for custom difficulties, those are already implemented, I did it while I was reworking the story menu.

To register a new difficulty, do the following: (kinda sketch since I'm writing this on my phone)

  1. Add an entry to data/difficulties.txt. you can do this by making a file in your mod folder _append/data/difficulties.txt.

The default list of difficulties looks like:

easy:-easy
normal:
hard:-hard

First element is the id and the second is the song suffix.

So in your _append file you'd put:

mania:-mania

Difficulties are read in order so Mania would come after hard.

  1. Add the graphic for the story menu. It goes in images/storymenu/difficulty/.png

You're done.

In free play, the game will query for a song file with the suffix provided above, and show those difficulties. So you can make a song whose only difficulty is mania and it won't break.

In Story mode, the game will query to use only those difficulties where every song in the playlist is available.

that's actually cool, the whole portability thing makes sense too. okay