Comments (11)
@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:
- Making a separate repo for each demo
- Including the repositories as submodules for this git repo (godotengine/godot-demo-projects)
- 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.
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.
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.
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.
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.
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.
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.
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.
@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.
Isn't this solved already? There is a "Templates" tab in the project manager.
from godot-demo-projects.
@aaronfranke Indeed, demos can be viewed by filtering with the Official support level on the asset library.
from godot-demo-projects.
Related Issues (20)
- In 3d/global_illumination, the "toggle_mouse_capture" does not work HOT 2
- Suggestion: having FPS and other performance indicators in 3d/global_illumination demo HOT 1
- Dodge the Creeps .Net 6 C# version HOT 1
- 2.5D Demo get_editor_viewport invalid call HOT 1
- How to download Squash the creeps 3d? HOT 1
- Main Screen Plugin: Print Hello button isnt centered vertically across the whole main screen HOT 3
- WARNING: 2D MSAA is not yet supported for GLES3. in Dynamic TileMap Layers Demo due to setting to Compatibility HOT 1
- compute/texture demo is broken at current master version of Godot HOT 1
- Update dodge-the-creeps asset library link to 4.2 version
- 2.5d Demo is not fully ported from Godot 3.5 to 4.0 HOT 2
- `ERROR: Condition "!p_data.has("baked_exposure")" is true.` when running project.
- Does not work as-is in Godot 4.x HOT 3
- Some demos are missing tags
- Multiplayer Bomber error in _connected_fail
- Godot Crashed when opening dodge_the_creeps
- Update "3D Inverse Kinematics" demo for Godot 4.1
- Mobile Sensors Demo GyroAndGrav rotation inaccurate HOT 4
- Update 2D Physics Platformer Demo (RigidBody) for Godot 4 HOT 1
- 3D Platformer HOT 3
- Godot 4.1: joypad remap doesn't work
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from godot-demo-projects.