godotengine/godot
By the numbers
A snapshot of the codebase. Data collected on April 30, 2026, against master at commit a0375dde96.
Size
The repo's source layer (everything outside thirdparty/) is:
- 1,735
.cppfiles, 1,859.hfiles, 59.mmfiles. About 1.24 M lines of C++ source plus 0.33 M lines of C++ headers. - 301 C# files (largely Mono glue and bindings).
- 155 Java files (Android editor + library).
- 686
.gdfiles (sample / test / editor scripts). - 131 Python files (build system + tooling).
- 144 GLSL files (engine shaders, before code generation expands them into C++).
- 1,192 XML files (810 of them are class reference docs under
doc/classes/; the rest are per-module class refs). - 28 Markdown files (READMEs, license, contributing).
xychart-beta horizontal
title "Source files by language (outside thirdparty/)"
x-axis ["C++ (.cpp+.h+.mm)", "XML (docs)", "GDScript", "C#", "Java", "GLSL", "Python"]
y-axis "Files" 0 --> 4000
bar [3653, 1192, 686, 301, 155, 144, 131]Largest files
The top 10 source files outside thirdparty/ by byte size:
| File | Size |
|---|---|
modules/visual_shader/editor/visual_shader_editor_plugin.cpp |
458 KB |
editor/scene/3d/node_3d_editor_plugin.cpp |
456 KB |
servers/rendering/rendering_device.cpp |
453 KB |
servers/rendering/shader_language.cpp |
406 KB |
editor/editor_node.cpp |
377 KB |
editor/animation/animation_track_editor.cpp |
370 KB |
tests/scene/test_text_edit.cpp |
360 KB |
drivers/vulkan/rendering_device_driver_vulkan.cpp |
357 KB |
scene/gui/text_edit.cpp |
323 KB |
modules/text_server_adv/text_server_adv.cpp |
311 KB |
The largest non-source artifact is CHANGELOG.md at 238 KB — this file accumulates per-version release notes and is updated each release.
Activity
- 83,452 total commits across all branches.
- 3,708 unique authors all-time (per
git shortlog --all). - 262 distinct authors in the last 90 days.
- 2,337 commits in the last 90 days (~26/day).
xychart-beta
title "Commits per year (excluding merges)"
x-axis ["2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026 (YTD)"]
y-axis "Commits" 0 --> 6000
bar [448, 1283, 2267, 3574, 3601, 3815, 3698, 4111, 5214, 4941, 5367, 4948, 1526](2014 starts at the open-source release in February. 2026 numbers are January–April only.)
Bot-attributed commits
Searching the git log for Co-authored-by: ...[bot] returns 0 matches. The repository today has no measurable bot-co-authored commits — neither dependabot nor common code-assistant bots appear in the trailers. (This is a lower bound on AI-assisted work; inline tools that don't touch git trailers leave no trace.)
Hotspots (last 90 days, by commit count touching the file)
| File | Commits | What it is |
|---|---|---|
editor/editor_node.cpp |
50 | The editor singleton |
editor/scene/3d/node_3d_editor_plugin.cpp |
49 | The 3D editor viewport |
editor/settings/editor_settings.cpp |
30 | Editor settings |
editor/inspector/editor_inspector.cpp |
30 | Inspector panel |
platform/windows/display_server_windows.cpp |
26 | Win32 display server |
scene/gui/text_edit.cpp |
25 | Multi-line text widget |
scene/gui/rich_text_label.cpp |
25 | Rich text label |
scene/gui/control.cpp |
25 | Control base class |
editor/script/script_editor_plugin.cpp |
23 | Script editor |
modules/gridmap/editor/grid_map_editor_plugin.cpp |
22 | GridMap editor |
servers/rendering/rendering_device.cpp |
21 | RenderingDevice API |
scene/gui/tree.cpp |
21 | Tree widget |
editor/docks/scene_tree_dock.cpp |
21 | Scene tree dock |
The pattern is consistent: editor + GUI files churn the most because that's where the user experience lives and where iteration is constant. Servers and rendering see big-impact but less frequent commits.
Top-level directory churn (last 90 days)
| Directory | Commit-files |
|---|---|
doc/classes/ |
1,217 |
servers/rendering/ |
661 |
modules/gdscript/ |
653 |
scene/gui/ |
464 |
editor/scene/ |
459 |
thirdparty/freetype/ |
421 |
modules/openxr/ |
354 |
scene/resources/ |
340 |
scene/3d/ |
325 |
thirdparty/harfbuzz/ |
264 |
platform/android/ |
251 |
scene/2d/ |
211 |
platform/linuxbsd/ |
203 |
drivers/gles3/ |
196 |
platform/macos/ |
165 |
The doc/classes/ numbers are inflated because every API change touches the corresponding XML; the engine tracks doc updates closely.
Releases
Recent stable releases (selected from the tag list):
| Version | Released | Note |
|---|---|---|
| 1.0-stable | 2014-12-15 | First stable post open-source |
| 2.0-stable | 2016-02-22 | OpenGL ES 3-class graphics, new editor, new exporter |
| 3.0-stable | 2018-01-29 | Vulkan groundwork, GDScript 2 design, new physics |
| 3.1-stable | 2019-03-13 | C# Mono module, OpenXR proto |
| 3.2-stable | 2020-01-29 | Numerous editor + 2D engine improvements |
| 3.3-stable | 2021-04-21 | |
| 3.4-stable | 2021-11-05 | |
| 3.5-stable | 2022-08-05 | |
| 4.0-stable | 2023-03-01 | The big rewrite — new RenderingDevice, Vulkan/D3D12/Metal, new physics, new GDScript |
| 4.1-stable | 2023-07-05 | |
| 4.2-stable | 2023-11-29 | |
| 4.3-stable | 2024-08-15 | |
| 4.4-stable | 2025-03-03 | |
| 4.5-stable | 2025-09-15 | |
| 4.6-stable | 2026-01-25 | Latest stable at time of this snapshot |
| 4.7-beta | (in dev) | Current master |
Complexity
A handful of files exceed 200 KB or 4,000 lines:
- The largest editor plugin file is
modules/visual_shader/editor/visual_shader_editor_plugin.cppat 458 KB. Visual Shader has many node types, each with its own editor. - The 3D editor's main plugin (
editor/scene/3d/node_3d_editor_plugin.cpp, 456 KB) handles gizmos, snapping, viewport modes, multi-camera setups, and plenty more. servers/rendering/rendering_device.cppat 453 KB is the engine's vendor-neutral GPU API.servers/rendering/shader_language.cpp(406 KB) is the Godot Shader Language parser, the AST, and type checker.scene/gui/text_edit.cppis a 323 KBControlwidget — the basis of the script editor.
These large files are flags for "high impact" code; they are big because the surface area is genuinely big, not because they are unrefactored. Most have associated test suites of comparable size — e.g., tests/scene/test_text_edit.cpp is 360 KB.
Documentation coverage
The class reference under doc/classes/ plus per-module doc_classes/ directories:
- 810 XML files in
doc/classes/. - An additional ~382 XML files in module/platform
doc_classes/directories, for 1,192 total.
Pre-commit + CI verifies that every bound method / property / signal has a description (an empty string is acceptable but a missing entry is not), so coverage is structural.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.