-
Notifications
You must be signed in to change notification settings - Fork 90
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
[Request For Comment] The Great Sorting #89
base: main
Are you sure you want to change the base?
Conversation
It all looks fine to me on first glance. I didn't like that the chart and audio files were in different places since What are the changes to Assets/Paths classes, it seems some functions have shifted from Paths to Assets, new ones added(?) and additional functions are called directly after Paths functions (such as |
How exactly will this improve performance? If it's only marginal, I don't see how this improves much of anything. I do think the assets need restructuring, particularly ditching the week based library system and separating former week libraries into stage libraries, but this feels like it only makes the structuring more confusing. |
|
The code side of things is still a work in progress, but the basic idea is that As for caching, when switching states the game will request a list of all the assets that a given state needs to work, and cache those (using multi-threading!) before unloading the assets that are no longer needed and finally switching to that state. This is what the |
Interesting. Of note, I do feel like song audio should be separated into folders with their variation names, since it could get somewhat messy if a lot of variations for a specific song exist. Maybe something like this?:
Alternatively, if song audio and chart data need to be next to each other:
|
THIS! I've felt this was cluttery since the pico update dropped! |
I've opened #90 to address some of my thoughts about this rework, this is definitely a step in the right direction, but I've also added my own flavor to this wonderful basket of goodies Please do feel free to talk about potential changes and thoughts, anything is welcome |
How will this affect custom states? |
Honestly I think this change would be great! My only real complaint besides AbnormalPoof's requested changes is that I am not too keen on having some chart editor dialogs be accessible easily through the also rest in peace |
The macro component builder is way more stable, the only reason any of the chart editor components are in the UI folder is because they haven't been migrated yet. Also, those XML files were in the
My main complaint with this is that it breaks older |
Tangentially related, but I'm not sure if having |
What about having flat files for Another solution I can think of is that the game can recursively check for charts/audio, so the charts and songs can be organized the way the modder deems fit. |
These concerns are the main reason I haven't put much work into trying to load FNFC files from the game folder. I do really like the idea in concept though. At one point, I imagined the game might eventually get a "Mod Editor" where you could build a manifest and organize the assets for your mods via a HaxeUI user interface, and could add assets by dragging them in. This would obviously support FNFCs. |
Perhaps the aforementioned editor could be bundled with the Mod Menu, similar to the one lemz1 made and pr'd. This would definitely be helpful to those that are new in the modding scene. |
Aside from letting you easily edit the manifest for your mod without breaking it, the key idea of the Mod Editor is that it would be a central hub for content creation, and would integrate closely with the Character, Stage, and Song editors. It'd be impossible to make something to create complex mods, but for simple mods that don't need scripts (just a custom character singing a custom song in a custom stage), I don't think people should need to do a bunch of fiddling with folders and scripts. Pushing the hurdle for content creation as low as possible is important to encourage aspiring creators to experiment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lol nobody even noticed this one
@EliteMasterEric @ninjamuffin99 One thing I'd like to request from the Crew, from the bottom of my heart, from the very core of my soul, is to not force this onto mod developers. I want to make myself clear, any mods that I make, I'll maintain, however, I do NOT want to be forced to use this system on mods that have existed before this gets merged. This system might also configure the way Paths work as well, but please, this is a MAJOR BREAKING CHANGE and a lot of mod developers will feel discouraged to keep maintaining their projects when something this large hits the game and all of a sudden all mods break and people are scrambling to make it work. I'm not discouraging The Great Sort, I'm a fan of it (really!), however, please have the older Paths system still in place for people using the embedded I want mods to last and have some sort of backwards compatibility. Breaking changes, this often, this early, shouldn't be forced onto people. |
This completely restructures the game's filesystem. I can't really see a way of implementing backwards compatibility. |
My bad, I didn't mean to lash out that much, but, this'll be a maintainers nightmare, so I think we should have it marinate a bit before it gets pushed, maybe not for 0.6 but for future versions like a year down the line, perhaps, or have builds that modders can use and test out. |
The new file structure is something that I've wanted to implement for a while. The existing asset system causes many bugs (such as the bug where certain stages don't work in the Chart Editor) and was a major obstacle in implementing the performance improvements I've wanted to make. Aside from the new file structure being more intuitive than the current one (Where do the stage assets go? That's right, they go in the Ultimately, it's important to understand that the game is in an early access state and subject to change; we'd be more paranoid about making things backwards-compatible if the game in a fully release state. By the way, these changes are slated for v0.7 (the update after the next pit stop), not v0.6. |
Thanks for the clarification, and thank you for your efforts to document such changes. Are you considering making internal tools (for e.g., a script or some built-in converter) or just the migration documentation? |
Some more questions I have about this PR:
|
The file structure of a Polymod mod will look like the file structure as the base game, as it did before. For loading times, I think they're a little longer right now but it displays a loading screen with progress bar rather than freezing the game, and it's a good place for optimization once it's 100% working.
Yes, however my reasoning behind this is:
|
This PR represents part of the changes I'm making in an internal fork. As part of the changes I am making to the game's performance, I am reworking the game's asset system to no longer use the old library system (this fixes several issues including FunkinCrew/Funkin#2615). Since this would move a bunch of stuff around, I decided this would be a good time to move everything else around as well, but since this is such a major change that will affect every modder, I wanted to have time to get feedback while nothing is set in stone yet.
assets/gameplay/stages/<stageId>
folder. Same for stuff like characters and charts (the instrumental finally goes in the same folder as the chart file!)lower-kebab-case
for file names where appropriate, with some exceptions (for example, renamingInst.ogg
would break older chart files so I decided not to do that).If you have any improvements to maximize the benefits of this change, or if you don't like something about this rework, speak up! The more constructive, the better.