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

Split demo and shaders into seperate repos? #15

Open
MenacingMecha opened this issue Aug 10, 2023 · 5 comments
Open

Split demo and shaders into seperate repos? #15

MenacingMecha opened this issue Aug 10, 2023 · 5 comments
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@MenacingMecha
Copy link
Owner

Looking for thoughts and feedback on if the demo should be split from the shaders, and include the shaders in the demo by way of git submodules.

Main reasoning for this would be to help with ease of adding to projects. As it stands, users have to copy-paste individual files, which is both messier than it could be, and often includes a lot of assets that users won't need for their projects.

Additionally, we could reduce copied work even further by merging the demos for the PSX and N64 shaders, while keeping the shaders separate in submodules.

Main drawback I can think of is it would complicate where to leave issues, but I don't think that'd be much of an issue.

Thoughts?

@MenacingMecha MenacingMecha added enhancement New feature or request help wanted Extra attention is needed question Further information is requested labels Aug 10, 2023
@florianvazelle
Copy link

Hi @MenacingMecha, why not provide shaders as addon (under an addons/psx-n64-shaders directory), you can provide it on godot asset library and exclude models or demo scenes from export ?

@MenacingMecha
Copy link
Owner Author

Hi @MenacingMecha, why not provide shaders as addon (under an addons/psx-n64-shaders directory), you can provide it on godot asset library and exclude models or demo scenes from export ?

I did consider this at one point, but found the workflow a little too messy after looking into it. Plus, if they were to be on the asset library, I'd also want the demo available as it's own separate template entry.

Splitting the shaders into a separate repo and organising them in a way where they can be distributed on the asset library is a good shout, though. Worst case, there could always be a separate repo driven by CI magic solely for packaging for asset library.

@MenacingMecha
Copy link
Owner Author

Example of separate demos causing duplicated labour:
MenacingMecha/godot-n64-shader-demo@f9ee31d
a44c55c

@florianvazelle
Copy link

Sorry, I may have strayed off topic by adding the notion of addon 😅

But that's because for me a template isn't really interesting, and will be unique to each developer. If someone uses a template, he'll modify the files, reorganize them ... and it's harder to update or fix the template retrieved from git. That's why I think making an addon is cleaner, because you'll really have something separate.

In my opinion, the two repositories should be merged, and the merged repository should look like what the goat template is intended to do, migrated for use as an addon (miskatonicstudio/goat#303).

There's always the demo, but we could give developers something modular (shaders + scenes + resources ...), which would allow them to recreate the demo in their own project, with their own assets, whether they wanted to do psx or n64 style.

This avoids duplication of code, for the demo and shaders (pp_band-dither.gdshader for example), and provides a single location for issues.
And using it as an addon makes it easier to add (/update) to projects, avoid copy-paste individual files, and avoid including demo assets.

My opinion is very personal, because I think you don't want to merge the two shader repositories ? If such is the case, then yes, I think that making a third repository for the demo/template is a good idea 👍

@MenacingMecha
Copy link
Owner Author

Sorry, I may have strayed off topic by adding the notion of addon 😅

No, not at all - it's something I didn't think about, and would be a good change for how (I think) most users interact with this.

In my opinion, the two repositories should be merged, and the merged repository should look like what the goat template is intended to do, migrated for use as an addon (miskatonicstudio/goat#303).

Reviewing the shader code more closely, they are very very similar, and definitely would benefit from being merged into one location with further shader includes.

As addons can't be used without duplicating the contents, and the goal here is to reduce duplication, I think I will go ahead with having a separate repo that packages the shaders for the asset store.

In summary

  • Merge the demo repos, and have a menu setting to swap between PSX and N64
  • Merge the PSX and N64 shaders in a separate repo, added to the demo via submodule
  • Add a third repo that packages the shader repo for asset store download, as this has different requirements that are incompatible with submodule usage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants