AI Generation
The most important thing to know about about these docs and truly everything contained in this repo, other than these few sentences you’re resding right now, was automatically generated using the claude 4.2 opus LLM paired with this prompt. A good rule of thumb for something like this (espeially before it’s gotten proper human review) is to never assume anything written in these documentation pages is fully correct without validating it yourself first.
GDExtension (godot-cpp) Developer Documentation
This comprehensive technical documentation provides deep insights into godot-cpp, the C++ bindings for Godot Engine’s GDExtension API. The documentation covers everything from getting started to advanced internal implementation details.
Introductory Topics
For developers looking to start at the beginngin to learn the basics of GDExtension
- Quick Start - Installation and setup
- First Extension - Godot’s official GDExtension introductory project guide
- Basic Concepts - Core concepts explained
Getting Started
Setup guide and overview of GDExtension’s architecture
- Quick Start Guide - Get up and running quickly
- First Extension Tutorial - Step-by-step tutorial
- Basic Concepts - Core concepts and terminology
- Core Architecture - System design overview
- Game Loop - Execution flow
Architecture
Understanding the system design
- Core Architecture - Binary interface, function pointers, versioning
- Memory Model - Memory management, reference counting, lifecycle
- Initialization Process - Startup sequence and interface loading
Type System
Variant, ClassDB, and type handling
- Variant Internals - Storage layout, type discrimination, conversions
- ClassDB Internals - Class registration and method binding
- Template Specializations - Type traits, SFINAE, marshalling
Engine Integration
Interacting with Godot Engine
- Game Loop & Lifecycle - Frame processing and callbacks
- Object, Resource, and Node - Core class hierarchies
- Binding System - Method, property, and signal bindings
- Notification System - Event propagation patterns
- Singleton Interactions - Engine singleton usage
- GDScript Interaction - Cross-language communication
- Class Registration & Inheritance - Registration types and behavior
Code Generation
How bindings are generated
- Binding Generator - extension_api.json processing
- Generated Patterns - Generated code structure
Build System
Building for different platforms
- Build Architecture - SCons configuration and toolchain
- Platform Implementation - Platform-specific builds
Advanced Topics
Complex patterns and optimization
- Complex Patterns - Advanced usage patterns
- Error Handling & Debugging - Debugging techniques
- Performance Optimization - Optimization strategies
- Thread Safety - Concurrent programming patterns
API Reference
Technical reference documentation
- Error Macros - Error handling macro reference
- Internal APIs - Internal API documentation
- Utility Functions - Helper function reference
Examples
Complete working examples
- Simple Extension - Basic extension demonstrating core concepts
- Advanced Extension - Complex patterns and features
- Integration Extension - Third-party library integration
Guides
Task-specific tutorials
- Creating Custom Nodes - Step-by-step node creation
- Resource Management - Managing resources effectively
- Signal Patterns - Signal usage best practices
- Threading Safety - Thread-safe extension development
Resources
Supporting materials
- Glossary - Term definitions
- FAQ - Frequently asked questions
- Godot Documentation - Godot Official GDExtension Documentation
- Godot-CPP Library Source - Godot CPP Github URL
- Godot Engine Source - Godot Engine Github URL
- Community Discord - Godot Official Community Discord
- Unofficial Community Discord - Godot Cafe Unofficial Community Discord
License
This documentation is provided under the same license as Godot: MIT License