Official book website: https://natureofcode.com/book/
Godot Engine website: https://godotengine.org
Made with Godot Engine 3.3, Mono edition
Each interactive example and interactive exercise will be implemented with Godot Engine 3.2.3 stable, using C# for the scripting.
The project contain a launcher, with a scene explorer to navigate examples and exercises, and the ecosystem simulation scene.
Almost everything is created from scripts.
You can access the HTML5 version on my github.io
here: Godot Nature of Code
- 🕹️ Dynamic scene loader to explore examples and exercises
- 🎨 Simple reusable primitives are available in the
scripts
folder - ⚗️ A simple custom Verlet physics implementation based on
toxiclibs
can be found inscripts/verletphysics
- ⚡ Drawing is often batched (using GLES2 batching) to ensure correct performance on mobile and web targets
- 📖 Most C# code is documented with Doxygen, you can use the included Doxyfile to generate documentation
Documentation is generated with Doxygen from C# XML comments.
Use the included Doxyfile to generate HTML documentation in the exports/docs
folder.
You can also access the generated C# documentation here: C# Documentation
- Implement missing examples and exercises.
- 00. Introduction
- 01. Vectors
- 02. Forces
- 03. Oscillation
- 04. Particle systems
- 05. Physics libraries
- 06. Autonomous agents
- 07. Cellular automata
- 08. Fractals
- 09. The evolution of code
- 10. Neural networks
- Implement the full Ecosystem project
- File rules: An .editorconfig file is provided.
- Formatting: This project use
roslynator
to automatically format the C# code, without specific configuration. - Lint: I am using the Roslynator VSCode extension. I am still looking for a command-line version with the same hints.
You can use the Python 3 Makefile.py
to format or export the project and its documentation.
It needs doxygen
and godot
in PATH
, or you can use DOXYGEN_EXE
and GODOT_EXE
environment variables.
If you want to contribute, do not hesitate to create Pull Requests or file Issues on GitHub 😉.