godot-psx-style-demo
godot-psx-style-demo copied to clipboard
Split demo and shaders into seperate repos?
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?
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 ?
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.
Example of separate demos causing duplicated labour: https://github.com/MenacingMecha/godot-n64-shader-demo/commit/f9ee31d2b98f6519d080e3dcbbaa129cdac8870c https://github.com/MenacingMecha/godot-psx-style-demo/commit/a44c55cdcee1aeaa28b0afa38cb4aea84b730a8e
Sorry, I may have strayed off topic by adding the notion of addon :sweat_smile:
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 (https://github.com/miskatonicstudio/goat/pull/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 :+1:
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