View The Tutorial Here
This project is going to look atypical if you look in some places and very typical if you look in others. This is the dodge the creeps example built using gdext, referencing and building upon gdext's example, and with direct reference to godot's dodge the creeps tutorial. This aims to be the second tutorial that you see in your process of learning gdext. You should know how to set up a project and the absolute basics of gdext. Additionally it will not redescribe the details of how godot works. You can find many other examples that would do that better than this document ever could.
This aims to highlight differences between gdscript and gdext and call out the specific editor level differences you will encounter on this path. After completing this tutorial you should be at the same skill level with gdext as you would be finishing the gdscript dodge-the-creeps.
If you are unfamiliar with literate programming this repository should look very strange to you. Fundamentally it is the exact same as writing a blog post on programming dodge the creeps with the notable difference that the code snippets are then extracted out to directly form source code and an executable. You will therefore need to learn a small DSL to maintain this document. This project uses the literate programming conventions defined by knot (Thanks mqsoh).
It is mostly complete. The Godot side has not been implemented and placed in version control. It will be eventually.
./tangle.sh
Requires docker.
Then cargo build
to build the rust code
We use CI processes to do the following:
- We tangle the .md files into rust files
- We format those files with rustfmt
- We build the rust code
- We deploy the code from the main branch to github pages.
You are welcome to open PRs. The CI tools will do a lot of the stuff behind the scenes. You won't need to build locally. If you update the .md
files it will just work. The build check will let you know if you've failed a build. Check rustfmt and make it as happy as you can, don't worry about whitespace errors. Then tag @0awful and I'll review it for you.
This project would not be possible without the help of the friendly people in the gdext discord. Particularly the participants in the 'help-gdext' channel.
It also cannot be stated enough how much this depends on the existing work done in the gdext repository. This is my annotations of existing source code in the gdext example. Which I worked to understand and explain as best I can.