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

[Proposal] Allow the same level to have a different root level hash per game #477

Open
Beyley opened this issue May 11, 2024 · 4 comments
Open
Assignees
Labels
proposal A proposal for a feature that is not a missing feature from the game

Comments

@Beyley
Copy link
Member

Beyley commented May 11, 2024

Motivation

Some modded assets (LBP1 GMATs/scripts) do not load (or do not work correctly) in newer versions of the game, and some level mechanics may not function in newer versions (say, a level is cheesable on LBP3 by just moving back a bunch of layers, or a visual LBP1 effect is broken in LBP2, making the level unplayable).

While a level creator could work around these issues by uploading LBP1/2/3 specific versions and tagging them as such, you could only enforce that for LBP1 (see #401) as lbp2Only does not exist. This also has the issue of stats/scores not being shared, which is not ideal for creators when reviews/comments are split between multiple copies of the level.

Description

I propose that GameVersion and RootResource be removed from GameLevel and instead we store a set of hashes

string? Lbp1RootResource
string? Lbp2RootResource
string? Lbp3RootResource
string? LbpVitaRootResource
string? LbpPspRootResource
string? LbpBetaRootResource

Along with the flags

string? Lbp1Only
string? Lbp2Only

For an example of how this would work, when searching for LBP2 compatible levels, instead of searching for GameVersion == LBP2 or LBP1, we search for "has lbp1 root resource and not lbp1 only, OR has lbp2 root resource", for LBP3 its "has lbp1 root resource and not lbp1 only, or has lbp2 root resource and not lbp2 only, or has lbp3 root resource"
for vita its just "has vita root resource", same with PSP, LBP1, and Beta

This would allow people to make the same level for all 6 game versions with different tweaks/fixes depending on the game, and have it work as intended in all of them. This would be especially neat for cross-platform levels, which isnt possible normally, say Vita and LBP2 (its possible to port levels between the games if you are dedicated enough with toolkit), or PSP and LBP1 (its possible to port PSP levels to work on the mainline games, aidan has a tool for it). All while matching ratings/scores between the versions

This doesnt really touch many parts of Refresh's codebase, and still follows KISS. Theres very little logic that would need to be added, since almost all of the work to do this is complete thanks to the universal assets support, and our improved FromOld work.

I'm not sure how this would look in the site API side for merging multiple levels, itd just be some endpoint "you can merge two GameLevel you uploaded together through an API endpoint, and you pick which gamelevel to use the metadata/stats from, and the other one is just deleted".

On the site this can just be displayed like Published for LBP1, LBP2, LBPV.

When it comes to unpublishing a level, i think when you unpublish, it should only unpublish the resource which matches the current game, say removes the vita resource on vita, or the psp resource on psp, or if you have LBP1 and LBP2, unpublishing on LBP2/LBP3 would remove the LBP2 one, while unpublishing on LBP1 would only remove the LBP1 hash. The site unpublish button should remove the level completely though, with extra buttons on the site to remove specific game hashes aswell. This is mainly because when updating a level on PSP, it fully unpublishes the old one first, you dont want an update to your PSP resource to remove every other game aswell

@Beyley Beyley added the proposal A proposal for a feature that is not a missing feature from the game label May 11, 2024
@Beyley Beyley self-assigned this May 11, 2024
@Arcadius2006
Copy link

the only thing i'm not sure on is the Vita/PSP cross platform stuff, but otherwise this would be a great addition

even LBP1 levels tend to break a bit in LBP2 (because tags suddenly become visible) so it'd be useful to be able to upload a LBP2 specific version

the only question is how would uploading levels like this work - do you just "update" the level in the game you wanna add an additional resource hash to?

@Beyley
Copy link
Member Author

Beyley commented May 12, 2024

the only thing i'm not sure on is the Vita/PSP cross platform stuff, but otherwise this would be a great addition

If we were to do it for LBP1/2/3, might as well for all of them? it honestly would complicate the code more to disallow it. its not out of the question that someone would port their PSP level to PS3 (aidan has a tool which does it semi-automatically). and same with LBP2/Vita, if someone was dedicated enough, they totally could port an LBP2 level to vita using toolkit and some custom assets.

the only question is how would uploading levels like this work - do you just "update" the level in the game you wanna add an additional resource hash to?

read the third to last paragraph on the issue

@Arcadius2006
Copy link

with the 1st point i was mostly talking about PSP - while it is true that you can port levels between the two games, they run on entirely different engines and thusly play completely differently, so i wouldn't be sure if letting a user merge a PSP level with a vita/PS3 only would be good

as for the latter, you will be only able to merge levels using the website? i think you should be able to do it from within the game itself as i'm not sure if people would be willing to export their levels using toolkit for this

@Beyley
Copy link
Member Author

Beyley commented May 12, 2024

as for the latter, you will be only able to merge levels using the website? i think you should be able to do it from within the game itself as i'm not sure if people would be willing to export their levels using toolkit for this

i think you misunderstand what i wrote
you upload both copies ingame and then merge them on the site

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal A proposal for a feature that is not a missing feature from the game
Projects
None yet
Development

No branches or pull requests

2 participants