question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Feature Request] Arbitrary Subsplit depth

See original GitHub issue

Introduction

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:open
  • Created 3 years ago
  • Reactions:1
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
Marenthyucommented, Nov 8, 2020

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.

1reaction
Marenthyucommented, Nov 8, 2020

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 😄

Read more comments on GitHub >

github_iconTop Results From Across the Web

OFFICIAL - GameMaker Feature Requests
We're changing how we work with feature requests for GameMaker. Now all feature requests will be public on GitHub and submissions can be ......
Read more >
Garbage collection in a large LISP system
This paper discusses garbage collection techniques used in a high-performance Lisp implementation with a large virtual memory, the Symbolics 3600.
Read more >
That's Not a Bug, It's a Feature Request
Bug vs. Feature Request. It's a painful and arbitrary decision, because most of the time, it's both. There's no difference between a bug...
Read more >
A New Approach to Feature Requests
Our support team sees a dozen or so feature requests every day. Deciding how to handle feature requests like this one is tough....
Read more >
Quadtree implementation python example. During insertion ...
The indirection pool is subdivided into indirection grids. example. The code is in the initial phase. 0 maximum recursion depth exceeded when inserting ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found