Skip to content

Commit e1ce943

Browse files
manuqwjt
authored andcommitted
Add LICENSE and README to the addon
Following the submission docs[1]. This ensures that users of the plugin have these files, and in the case of the LICENSE helps them to comply with the license. Replace the top-level README.md with a symbolic link to the copy in the addon, so that we do not need to keep the two in sync. GitHub displays this correctly at the top level of the repo. Sadly GitHub's LICENSE file handling mishandles symbolic links, so we duplicate the LICENSE file. [1] https://docs.godotengine.org/en/latest/community/asset_library/submitting_to_assetlib.html
1 parent 8f99e75 commit e1ce943

File tree

3 files changed

+62
-40
lines changed

3 files changed

+62
-40
lines changed

README.md

-40
This file was deleted.

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
addons/block_code/README.md

addons/block_code/LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2024 Endless OS Foundation
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

addons/block_code/README.md

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Godot Block Programming Plugin
2+
3+
This is an experimental plugin by Endless Foundation aimed at introducing Block Coding capabilities to Godot.
4+
5+
Our aim is to reduce the learning curve faced by learners who are on the early part of their journey towards becoming game developers. Learners within our target audience understand game concepts, but have never used Godot (or any other game engine) before, and do not have programming experience. Ordinarily, such learners are faced with the challenge of learning their way around Godot's powerful, complex editor UI, while also getting familiar with all kinds of concepts, combined with the additional challenge of learning to code for the first time as they navigate the ins and outs of GDScript.
6+
7+
With this project, we aim to reduce the height of the mountain that such learners have to climb. Specifically, we aim to eliminate the requirement of learners having to simultaneously learn to code while building their first games. Instead of writing GDScript to implement games, this plugin lets learners use block coding. Tools like Scratch and Makecode have demonstrated that block coding can be much more accessible and intuitive to beginners than textual programming.
8+
9+
In order to be learner-friendly, we have to implement blocks at a suitable level of abstraction. For example in GDScript you would typically move a sprite around the screen by examining input events and adjusting a sprite's movement vector accordingly, but we do not wish to express this level of detail in blocks. Instead, we lean much more towards the kinds of blocks you can find in Makecode Arcade, such as having a single block for "move mySprite with buttons".
10+
11+
Expressing an appropriate layer of abstraction is perhaps the most challenging aspect of this project, and will likely place limits upon what can be achieved with this tool. We do not aim to express the full power of Godot & GDScript with this block coding plugin, but rather, our objective is to provide a gentler introduction to Godot for learners, such that they can get familiar with other aspects of the Godot Editor and learn programming concepts while creating basic games. We envision that learners would use block coding as a stepping stone and then later progress onto learning GDScript.
12+
13+
That said, we are in no way opposed to having this project grow to be able to create more complex games, as long as it does not negatively affect the experience for learners.
14+
15+
# Current status
16+
17+
We are nearing our initial milestone where simple games can be created with blocks. This is a kind of MVP demo which will then let us figure out our next steps.
18+
19+
Despite having an initial implementation we have many questions open for reconsideration including:
20+
- Have we created a learner-friendy abstraction that is suitably aligned with Godot concepts?
21+
- What is the most appropriate way to attach block scripts to a project?
22+
- Should this be a plugin or an extension?
23+
- Should blocks generate GDScript or be dynamically executed?
24+
- etc.
25+
26+
# Development
27+
28+
## pre-commit
29+
30+
Please use [pre-commit](https://pre-commit.com/) to check for correct formatting and other issues before creating commits. To do this automatically, you can add it as a git hook:
31+
32+
```
33+
# If you don't have pre-commit already:
34+
pip install pre-commit
35+
36+
# Setup git hook:
37+
pre-commit install
38+
```
39+
40+
Now `pre-commit` will run automatically on `git commit`!

0 commit comments

Comments
 (0)