• Stars
    star
    1,089
  • Rank 42,533 (Top 0.9 %)
  • Language
  • License
    MIT License
  • Created over 5 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Godot Improvement Proposals (GIPs)

Godot Improvement Proposals

This repository serves as the central hub for proposing, discussing, and reviewing new features and enhancements in Godot Engine. While there exists some leeway, most changes made to the engine must go through the proposal process first. The goal is to determine whether the suggestion makes sense for the majority of Godot users, and to figure out the best approach to implement it.

As such, everyone is welcome to participate in ongoing discussions, or start a new one.

Tip: Use the Godot proposals viewer to view all open proposals on a single page. This allows for easy searching in proposal titles using Ctrl + F.

Bug reports are not a subject of the proposal process. If you experience an issue while using Godot that cannot be attributed to a missing feature, please open a report in the main Godot repository. Feel free to open a pull-request based on any bug report as well!

Suggesting improvements

You have two options to make a suggestion for the future of the engine. You can either open a proposal Issue, or you can create an open Discussion.

Proposal issues are required to explain in technical detail how the suggested change should be implemented. It is also preferred that the submitter of a proposal is ready to implement it if it was approved. If you have a more general idea for a feature but are not well versed in Godot's architecture or do not possess the necessary knowledge to implement it in the engine, feel free to open a discussion instead of an issue.

A valid feature proposal will be held open to allow fellow Godot users and contributors to weigh in on the suggestion and its implementation. While all opinions are considered, a core developer must approve the feature and its implementation for a proposal to be considered ready to implement.

Proposals should be made by opening an issue or a discussion, not a pull request. Don't fork this repository to open a proposal.

Rules for submitting a proposal

Note: The following points describe requirements for a proposal issue. A discussion, on the other hand, can be started in any form.

  1. Only proposals that properly fill out the template will be considered. If the template is not filled out or is filled out improperly, it will be closed.

  2. Please open one proposal per feature requested. Do not cram multiple feature requests in a single proposal, as this makes it harder to discuss features individually.

  3. All proposals must be linked to a substantive use-case. In justifying your proposal, it is not enough to say it would be "nice" or "helpful". Use the template to show how Godot is not currently meeting your needs and then explain how your proposal will meet a particular need.

    • If you feel that you cannot provide highly detailed instructions with the proposal, consider creating a more simple, open-ended issue in the unofficial, community-maintained Godot Ideas repository.
  4. Other users must express interest in your proposal for it to be considered. Godot is community-driven: if no other users are interested in your proposal, it may be closed. It is up to you to draw interest in your proposed feature. Start by reaching out on the community channels (Reddit, Discord, Godot Contributors Chat), etc. see the Community Channels doc), then create your proposal once you have gained some interest.

  5. You can make a PR implementing the feature in the main repository before making a proposal. However, if it is a large change, a core developer may require that you make a proposal before your PR can be merged. It is always better to make and discuss a proposal before spending your time implementing a new feature.

  6. If you or another user is capable of making a PR, include that fact in the issue or in a subsequent comment so that a core contributor can fast-track the approval process.

What to do if your proposal is closed

If your proposal was closed because the template was not filled out, then fill out the template and ask the person who closed the issue to re-open it.

If your proposal was closed as a duplicate and had a different approach to solving the problem described in the linked proposal, please comment in the linked proposal with your own idea. You don't need to copy-paste your whole proposal's text. Instead, rephrase the main ideas and add mockups if needed.

If your proposal was closed because of lack of interest, then try to build up some interest on the community channels and then ask the person who closed the issue to re-open it.

If your proposal was closed because a core contributor determined that it was not worth pursuing and you feel that it was wrongly closed, then feel free to join the Godot Contributors Chat and have a more in-depth discussion with other core developers about the feature.

How core developers evaluate proposals

The following is a list of considerations that core developers use when deciding to accept, close, or leave a proposal open. It is intended to be useful for core developers when considering proposals and for proposal-makers in drafting their proposals.

1. Does the proposal comply with the rules?

Read the proposal and check to see that it complies with the above-stated rules. If it does not, close the proposal.

2. How much support is the proposal receiving?

Evaluate the amount of support the proposal is receiving. This is an ongoing analysis. If a proposal receives little support at first, it may receive additional support later on.

3. Can this proposal be implemented with an addon?

Evaluate whether it is possible for the proposal to be implemented in an addon. If it is possible for the proposal to be in an addon, it is less likely to be accepted.

4. Does this proposal benefit most users?

Determine whether this proposal benefits all users, or just certain users. For example, a feature that can only be used for 3D FPS games is less likely to be accepted than a feature that benefits all 3D games.

5. Can this proposal be implemented in a robust, general-purpose way?

Determine whether the feature can be implemented in a robust way that benefits all use-cases. For example, many games use an inventory system, but every game implements inventory differently. Accordingly, a proposal for an inventory system will likely not be accepted because it would be impossible for us to implement an inventory system that works for most users that need an inventory in their game.

6. Does this proposal help users overcome a limitation?

Proposals that overcome a specific limitation are more likely to be accepted than proposals that are just helpful. In short, need-to-have features will be prioritized over nice-to-have features. Further, the core developers prioritize changes that enable users to implement features themselves over implementing those same features in core.

7. How complex would the proposed feature be?

A highly complex new feature involving substantial changes to core is less likely to be accepted than a feature that can be contained within a single node, or a group of nodes.

8. Can the feature be worked around in script with a few lines?

If the feature is only intended to save users a few lines of code it is unlikely to be accepted.

The above considerations are all balanced, no one is more important than another. Core developers have discretion to weigh the factors as they see fit.

In addition to the above guideline, consider this article which outlines what core developers consider when evaluating PRs.

More Repositories

1

godot

Godot Engine – Multi-platform 2D and 3D game engine
C++
88,512
star
2

awesome-godot

A curated list of free/libre plugins, scripts and add-ons for Godot
6,841
star
3

godot-demo-projects

Demonstration and Template Projects
GDScript
5,567
star
4

godot-docs

Godot Engine official documentation
reStructuredText
3,655
star
5

godot-cpp

C++ bindings for the Godot script API
C++
1,607
star
6

godot-vscode-plugin

Godot development tools for VSCode
TypeScript
1,517
star
7

godot-blender-exporter

Addon for Blender to directly export to a Godot Scene
Python
1,154
star
8

tps-demo

Godot Third Person Shooter with high quality assets and lighting
GDScript
972
star
9

godot-git-plugin

Git implementation of the VCS interface in Godot
C++
669
star
10

collada-exporter

"Better" Collada exporter for Blender, orignally developed by the Godot Engine community
Python
416
star
11

godot-syntax-themes

Syntax themes for the Godot Engine script editor
397
star
12

godot-headers

Headers for the Godot API supplied by the GDNative module.
C
376
star
13

FBX2glTF

A command-line tool for the conversion of 3D model assets on the FBX file format to the glTF file format.
C++
326
star
14

emacs-gdscript-mode

An Emacs package to get GDScript support and syntax highlighting.
Emacs Lisp
303
star
15

godot-asset-library

PHP frontend for Godot Engine's asset library
PHP
289
star
16

godot-website

The code for the official Godot Engine website. A static site built using Jekyll.
HTML
283
star
17

godot-csharp-visualstudio

Godot C# extension for Visual Studio
C#
234
star
18

build-containers

Godot engine build containers
Shell
207
star
19

webrtc-native

The official GDNative WebRTC implementation for non-html exports.
C++
205
star
20

godot-design

Visual design specific stuff for the godot engine
202
star
21

gdnative-demos

Demo projects for GDNative
Python
191
star
22

godot-old-gsoc-ideas

Old ideas for Google Summer of Code (no longer relevant)
165
star
23

godot-google-play-billing

Godot Android plugin for the Google Play Billing library
Java
146
star
24

godot-csharp-vscode

Debugger and utilities for working with Godot C# projects in VSCode
TypeScript
141
star
25

godot-ios-plugins

Objective-C++
128
star
26

godot-benchmarks

Collection of benchmarks to test performance of different areas of Godot
GDScript
121
star
27

godot-visual-script

VisualScript as a Godot Engine c++ module
C++
118
star
28

godot-cpp-template

Quickstart template for GDExtension development with Godot
Python
109
star
29

godot-3d-dodge-the-creeps

This project was moved to https://github.com/godotengine/godot-demo-projects/tree/master/3d/squash_the_creeps
GDScript
91
star
30

godot-build-scripts

Build scripts used for official Godot Engine builds with https://github.com/godotengine/build-containers
Shell
79
star
31

godot-mono-builds

Mono build scripts for Godot
Python
56
star
32

godot-builds

Official pre-releases, dev snapshots, and custom builds of the Godot engine.
Python
54
star
33

godot-docs-l10n

Localization of the Godot documentation – Translations should be done on Weblate (see link)
Shell
51
star
34

godot-3d-platformer-demo

3D platformer, developed as part of the Mozilla Grant 2019
44
star
35

godot-tests

Repository for Godot benchmarks, regression tests, etc.
GDScript
35
star
36

godot-interactive-changelog

An interactive tool to view a changelog for each version of Godot Engine
JavaScript
30
star
37

godot-monodevelop-addin

Godot Add-in for MonoDevelop and Visual Studio for Mac
C#
30
star
38

godot-docs-project-starters

A collection of project templates and assets used by tutorials in the official Godot documentation. https://github.com/godotengine/godot-docs
GDScript
27
star
39

mousse

High quality 3D platform demo, designed to make the best use of Godot 4.0
24
star
40

doc-status

Online Godot class reference status
JavaScript
21
star
41

godot-platform-haiku

Godot Engine platform port for the Haiku operating system // UNMAINTAINED, for reference / forks.
C++
19
star
42

webrtc-actions

A set of github actions to build WebRTC as a single static library.
18
star
43

regression-test-project

Godot engine regression test project
GDScript
17
star
44

godot-team-reports

Browse Godot PR backlog for each maintenance team
JavaScript
17
star
45

godot-editor-l10n

Localization of the Godot editor and class reference – Translations should be done on Weblate (see link)
Python
14
star
46

gdscript-tests

Tests for the GDScript module implementation
HTML
13
star
47

godot-showreel-voting

A Django app to review and vote videos
Python
12
star
48

godot-prs-by-file

JavaScript
12
star
49

.github

Godot community health files
10
star
50

community-map

Map of regional community locations, submit your community here
9
star
51

issue-bot

Issuebot for chat.godotengine.org
Python
8
star
52

godot-commit-artifacts

A tool providing quick links to latest CI builds of development branches
JavaScript
8
star
53

godot-nir-static

C++
8
star
54

godot-benchmarks-results

Website to display godot-benchmarks results
6
star
55

godot-website-cover-generator

JavaScript
5
star
56

moltenvk-osxcross

Custom MoltenVK builds with `-fno-objc-msgsend-selector-stubs` to be compatible with osxcross
4
star
57

godot-question2answer

A repository hosting the current platform used at https://ask.godotengine.org
PHP
4
star
58

godot-docs-user-notes

User notes for the Godot Engine official documentation
4
star
59

issue-stats

Gather hardware and software information based on Godot GitHub issue reports
Python
3
star
60

discourse-theme

A custom Godot styled theme for discourse
SCSS
2
star