Open-Source Wikis

/

Godot

/

By the numbers

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 .cpp files, 1,859 .h files, 59 .mm files. 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 .gd files (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.cpp at 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.cpp at 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.cpp is a 323 KB Control widget — 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.

By the numbers – Godot wiki | Factory