Skip to content

Srynetix/godot-nature-of-code

Repository files navigation

The Nature of Code in Godot

Official book website: https://natureofcode.com/book/

Godot Engine website: https://godotengine.org

Made with Godot Engine 3.3, Mono edition

📄 Summary

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.

screen

🕹️ Try it online

You can access the HTML5 version on my github.io here: Godot Nature of Code

✨ Features

  • 🕹️ 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 in scripts/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

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

📅 Roadmap

  • 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

🧙 Contributing

  • 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 😉.