[Feature Request] Arbitrary Subsplit depth
See original GitHub issueIntroduction
Subsplits are already a very useful addition to LiveSplit that help organize large groups of Splits.
However, there are occasions, where it may be useful to subdivide these Subsplits even further. A specific example of this would be in Megadimension Neptunia VII: You have 3 overarching “Acts”, where the 2nd one is subdivided into 4 Character Stories. Thus, it makes sense to have the overarching Arcs as a “Top Level” of Splits and having another level of grouping for the 4 Character Stories.
Right now, one has to make the decision to either have more Top Level Splits or smush the Stories together into one large Act Split.
Neither is favourable.
Thus, i want to make the suggestion of adding “SubSubsplits”, but to forego this repeating in the future with another level, it is probably the best idea to make LiveSplit support an arbitrary “depth” of subsplits.
Example
I suggest extending the Subsplit Syntax as follows:
TopLevelSplit
-Subsplit 1st Level
--Subsplit 2nd Level
---Subsplit 3rd Level
[...]
---Subsplit 3rd Level
--{3rd Level Title}Subsplit 3rd Level
--Subsplit 2nd Level
-{2nd Level Title}Subsplit 2nd Level
-Subsplit 1st Level
{1st Level Title}Subsplit 1st Level
TopLevelSplit
As a more concrete Example with the aforementioned Game that also beautifully shows a couple edge cases; Adopted from my current splits, plus some additional sub-splits that we would probably have if we had deeper subsplit levels to prove points:
-Ruins 2 event
-Coral Station
-Dark Purple 1
-Bahamut
-Derp Dragon
--Arfoire 1
--Reach SBS
-{Arfoire Fights}Arfoire 3
--Mini-Boss #1
-{Mini-Bosses}Mini-Boss #2
{Zero Dimension Arc}Zero Done
-Introduction
--Arfoire 4
--Warechu
--Steamax 1
-{Neptune's Story}Nep-Nep Done
--Dark Unicorn
--Jellies Done
--Demonic Law
--Golvellia
---K-Shadere 1v1
-{Noire's Story}{Lastation Summit}Nowa Done
--P2 Park
--Revile Wyrm
---Birds
---Fenrir
---Bits
--{Fight Gauntlet}Magic Dogoos
-{Blanc's Story}Blanc Done
--Pandea Leos
--Berserker Z
---Enemy Grind
--Sarveria
---Big Neptune
---Dogoo Pair
-{Vert's Story}{Leanbox Summit}Vert Done
--Enter Base
--Steamax 2
{Neptunia G Arc}{Affimojas Base}Hyper Done
--B-Sha refight
--S-Sha refight
--K-Sha refight
-{Sha refights}Final Sha
-Final Ar4
{Neptunia H Arc}Anti-climax
Caveats
This would obviously break websites like splits.io in the same way they were incompatible with Subsplits initially, but the split names are technically still legible, so it shouldn’t be too much of an issue. Speedrun.com has not yet implemented normal subsplits, either.
With too many levels of subsplits, one needs to think about how wide their layout needs to be for them to be legible, but that is more of a layouting issue each user needs to “fix” for themselves.
Compatibility with existing Subsplits is a given, so this should serve as an Extension of the existing Component.
Conclusion
I think it’d be a really nice thing to have and I will try my best in the coming days to maybe try and implement it, but C# is not my Forte, so if anyone is faster or more efficient than me, go nuts!
Cheers
Issue Analytics
- State:
- Created 3 years ago
- Reactions:1
- Comments:5 (3 by maintainers)
I hope I left enough comments at the crucial places where I changed things, but please do ask If you don’t understand where I was going with something.
Hi @djmcdo - I did some work on this before i reinstalled my Windows Installation and have not yet had another burst of motivation to tackle this again since, sadly.
Feel free to pick up where I left off! I did get some basic parsing and displaying set up, but it certainly does not display everything correctly yet as I had to figure things out as I went and realized that more info is needed in certain places than is currently available.
Do reference my working branch here: https://github.com/Marenthyu/LiveSplit.Subsplits/tree/arbitrary-subsplit-depth
And don’t worry about “stepping on my toes” - I am not a C# person and am actually happy that someone is interested in the feature! That’s what OSS is all about 😄