Giter Club home page Giter Club logo

Comments (11)

 avatar commented on May 31, 2024 2

@vnen I say split them, I think that if someone needs to quickly check out how to implement HDR he probably doesn't need all the other demos as well (and it'd be a waste of bandwidth, too, for both).

I can understand that it's convenient to have all the demos in the same GitHub repository, though. What about:

  1. Making a separate repo for each demo
  2. Including the repositories as submodules for this git repo (godotengine/godot-demo-projects)
  3. Sourcing the separate repos from the AssetLib

I think this would solve both problems, and keep this issue tracker as a bonus.

Edit: It might seem that cloning a git repo with submodules would make it a bit harder for beginners to download all demos directly from GitHub (since they'll have to run an additional command after cloning), however it should be noted that most beginners would likely rather use the Asset Library or download all demos directly from

https://downloads.tuxfamily.org/godotengine/demos/2.1/Godot-Demos-2.1-latest.zip

so I think the zip file should be kept. This repo should be the last resort.

from godot-demo-projects.

akien-mga avatar akien-mga commented on May 31, 2024 2

I'm not particularly looking forward to have to maintain 59 separate git repositories + one to bind them all with ugly submodules. Also by doing so, we'd prevent people from proposing new demos via pull requests - they'd have to ask us directly to upstream their repository.

And when there are file format changes in 3.0, I'd prefer to do all in one or a few commits than to have to handle 59 repos separately again + submit manually 59 updates to the assetlib. Same for code style changes, etc. I'm not sure that it's the norm that one commit modifies only one demo in the end.

No, IMO the solution is to develop a custom facility to the assetlib that will let us bypass our self-imposed limitation. @bojidar-bg Ideas?

Also, I do agree that having the possibility to install demos separately is good, but at the same time, I think we should continue distributing as a bundle for those who prefer that. Personally I wouldn't want to have to install manually 59 demos through the assetlib to be able to see what the official demos offer for learning material.

from godot-demo-projects.

vnen avatar vnen commented on May 31, 2024 1

The only problem with submodules is that updating them is quite a hassle. But the demos are not updated often anyway. And I believe a comment in the Readme file informing to add the --recursive flag when cloning is enough.

I think this would be a good step forward for 3. If the plans go right we will have:

  • Every demo project available in the Asset Library.
  • An Export Template Manager to download and install different versions directly in-editor.

This would also remove the need to bundle everything in the Steam version.

WDYT @akien-mga?

from godot-demo-projects.

vnen avatar vnen commented on May 31, 2024

Well, that is the idea since the Asset Library started. The hard thing is that AssetLib expects one project per repository and here the projects are all together. So it would need to split this or make an exception for the official demos.

from godot-demo-projects.

vnen avatar vnen commented on May 31, 2024

BTW, how hard it is to rely on GitHub Webhooks? Maybe we could make something with it to update the demos in the AssetLib every time there's a new commit (making zips for every demo), so it wouldn't need to be manually done.

from godot-demo-projects.

 avatar commented on May 31, 2024

Personally I wouldn't want to have to install manually 59 demos through the assetlib to be able to see what the official demos offer for learning material.

You are right about that, so a "demo pack" option should be provided indeed 👍

@akien-mga I understand that maintaining so many repos might be stressful. I think that generating AssetLib packages from the repo automatically and syncing them like @vnen said might be a better idea. WebHooks seems easy enough (it fires a POST event with some JSON at the specified URL), although I believe the same functionality could be achieved with Bash/Python, cron and simple git pull without relying on third-party APIs.

from godot-demo-projects.

bojidar-bg avatar bojidar-bg commented on May 31, 2024

Well, we might somehow "hack" the assetlib to fit our needs anyway -- as long as we can get the zips seperatelly...

from godot-demo-projects.

akien-mga avatar akien-mga commented on May 31, 2024

We can probably use the GitHub API (not premade URL, but the REST API) to generate archives for subfolders of a repo. At least with GitLab it's possible AFAIK (so worst case we could use a GitLab mirror for that).

from godot-demo-projects.

 avatar commented on May 31, 2024

@akien-mga What's wrong about using a Shell script like this instead (and maybe setting up cron to run it once in a while)? (thanks to these posts for making up for my sh noobery 🙄)

#!/usr/bin/env sh
# MIT License

TEMP_DIR="/tmp/godot-demo-projects"
export DESTINATION="./godot-demo-projects"

mkdir -p "$DESTINATION"
git clone https://github.com/godotengine/godot-demo-projects/ "$TEMP_DIR"
find "$TEMP_DIR" -mindepth 2 -maxdepth 2 ! -path '*.git*' -type d -exec sh -c 'zip -r -j ./$DESTINATION/$(basename {}).zip {}' \;
# rm -rf "$TEMP_DIR"

from godot-demo-projects.

aaronfranke avatar aaronfranke commented on May 31, 2024

Isn't this solved already? There is a "Templates" tab in the project manager.

from godot-demo-projects.

Calinou avatar Calinou commented on May 31, 2024

@aaronfranke Indeed, demos can be viewed by filtering with the Official support level on the asset library.

from godot-demo-projects.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.