Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Godot 版本釋出政策

Godot 的發行政策是在不斷改進的。以下內容提供了大致的預期結果,但實際會發生什麼取決於核心貢獻者的選擇,以及社區在特定時期的需求。

Godot 版本

Godot 鬆散地遵循了 語義化版本 ,採用了 major.minor.patch 的版本系統,不過對每個術語的解釋都根據遊戲引擎的複雜性進行了調整:

  • major (主要)版本在發生重大不相容時會增加,這意味著專案需要大量的移植工作才能從一個主要版本遷移另一個主要版本。

    例如,將 Godot 專案從 Godot 3.x 移植到 Godot 4.x 時,需要通過轉換工具運作專案,然後對工具無法自動完成的工作進行進一步的手動調整。

  • minor (次要)版本在不嚴重破壞相容性的功能發行時增加。在非常特定的領域中,小版本 可能 會出現輕微的相容性問題,但絕大部分專案並不會受到影響或需要做大量的移植工作。

    這是因為 Godot 作為一個遊戲引擎, 涵蓋了渲染、物理、腳本等許多領域。修復某個領域的 Bug 或實作新功能,有時可能需要改變某個功能的行為,或者修改某個類的介面,即便是引擎 API 的其他部分仍然向後相容。

小訣竅

建議所有使用者升級到新的次要版本,但有必要進行一些測試,以確保你的專案仍能按照預期的方式運作。

  • patch (更新)版本是為維護版本而增加的,其重點是修復錯誤和安全問題,實作平臺支援的新要求,以及可用性安全性增強。更新版本是向後相容的。

    更新版本可能包含一些不影響現有 API 的小的新功能,因此沒有影響現有專案的風險。

小訣竅

因此,更新到新的更新版本被認為是安全的,並強烈推薦給特定穩定分支的所有使用者。

我們將 major.minor 組合稱為 穩定分支 。每個穩定分支都從 major.minor 版本開始(不寫為 0patch ),後續維護版本的開發都位於同名的 Git 分支上(例如 4.0 穩定分支更新更新的開發位於 4.0 Git 分支)。

釋出支援時程

對穩定分支的支援會 至少 持續到下一個穩定分支發行並獲得第一個更新更新。在實踐中,只要還有活躍使用者需要維護更新,我們就會 以最大努力 去支援穩定分支。

每當一個新的主版本發行時,我們都會對上一個穩定分支提供長期的支援,並盡最大努力為那些無法將複雜專案移植到新的主要版本中的舊版使用者提供修復幫助。2.1 分支如此,3.6 分支也如此。

次版本號相同的一系列版本中,只有最新的更新版本會得到支援。如果你在使用較舊的更新版本時遇到問題,請在前往 GitHub 提交問題之前先升級到該系列的最新更新版本並測試。

版本

釋出日期

支援等級

Godot 4.2( master

2014 年 12 月

啟用 *開發。*在開發過程中獲得新功能、可用性和效能改進以及錯誤修復。

Godot 4.0

2016 年 7 月

支援的圖片格式 接收錯誤和安全性問題的修復,以及啟用平台支援的修補程式。

Godot 4.0

2019 年 3 月

支援的圖片格式 接收錯誤和安全性問題的修復,以及啟用平台支援的修補程式。

Godot 3.2

2023 年第三季度(預計)

支援的圖片格式 測試版。 在開發過程中獲得新功能、可用性和效能改進以及錯誤修復。

Godot 3.2

2022 年 8 月

支援的圖片格式 接收錯誤和安全性問題的修復,以及啟用平台支援的修補程式。

Godot 3.2

2014 年 12 月

eol 已停止支援。

Godot 3.2

2019 年 3 月

eol 已停止支援。

Godot 3.2

2020 年 1 月

eol 已停止支援。

Godot 3.1

2019 年 3 月

eol 已停止支援。

Godot 3.0

2018 年 1 月

eol 已停止支援。

Godot 2.1

2016 年 7 月

eol 已停止支援。

Godot 2.0

2016 年 2 月

eol 已停止支援。

Godot 1.1

2015 年 5 月

eol 已停止支援。

Godot 1.0

2014 年 12 月

eol 已停止支援。

圖例: 支援的圖片格式 完整支援 - partial 部分支援 - eol 停止支援 (EOL) - 啟用 開發中版本

我們只會盡最大努力提供預覽版本,但這些預覽版本不應用於正式產品。

也參考

有關將專案從 Godot 3.x 遷移到 4.x 的說明,請參閱 從 Godot 3 升級到 Godot 4

GDScript是什麼?為什麼我要用它?

我們建議在新專案中使用 Godot 4.x,因為在未來 3.x 停止接收更新後很長時間內仍將支援 Godot 4.x 系列。 需要注意的是,許多協力廠商文件尚未針對 Godot 4.x 進行更新。 如果您必須學習為 Godot 3.x 設計的教學,我們建議在單獨的分頁中保持 從 Godot 3 升級到 Godot 4 打開,以檢查哪些方法已被重命名(如果您在嘗試使用特定節點或在 Godot 4.x 中被重命名的方法時遇到了腳本錯誤的話)。

如果你的專案需要在 4.x 版本中缺失的功能(如GLE2/WebGL 1.0),那麼你應該為新專案使用 Godot 3.x。

我應該把專案升級到新版本的引擎嗎?

備註

在專案中途升級軟體本身就有風險,所以在嘗試升級之前請慎重考慮,你的專案是否能夠從升級中獲益。另外,請做好專案的備份或者使用版本控制系統,防止在升級出錯時造成資料的丟失。

也就是說,我們盡力確保的是次要版本,尤其是更新版本與現有專案相容。

一般性建議是升級你的專案以跟進新的 更新 版本,例如從 4.0.2 升級到 4.0.3。 這可以確保你獲得錯誤修復、安全更新和平臺支援更新(這對於移動平臺來說尤其重要)。 你還可以獲得持續的支援,因為只有最後一個更新版本才會在官方社區平臺上獲得支援。

對於 次要 版本,你應該根據具體情況具體分析的原則,來確定升級是否是個好主意。 我們已經付出了很大的努力來使升級過程盡可能無縫,但次要版本中可能會出現一些重大更改,並且回歸的風險也更大。次要版本中包含的某些修復,也可能會根據修復某些錯誤的需要而更改類的預期行為。 在文件中標記為 實驗性 的類中尤其如此。

主要 版本帶來了許多新功能,但它們也會移除以前有的功能,並有可能提高硬體要求。與次要版本相比,它們還需要更多的工作來升級。 因此,如果你對專案目前的運作方式感到滿意,我們建議你堅持使用你啟動專案時使用的主要版本。 例如,如果你的專案是從 3.5 開始的,那麼我們建議升級到 3.5.2,將來也許升級到 3.6,但不要升級到 4.0+,除非你的專案確實需要 4.0+ 帶來的新功能。

下個版本什麼時候出?

雖然對於 Godot 的貢獻者來說並不需要趕專案截止期限,但通常 Godot 每年都會出新的主要或次要版本。按照這個趨勢來看,Godot 4.0 很可能會在 2021 年出。

尤其是在 4.0 經歷了漫長的發行週期之後,我們正在轉向更快節奏的開發工作流程,預計 4.1 版本將在 2023 年第二季度末 / 第三季度初發行。

頻繁發行的次要版本可以讓我們能夠更快地發行新功能(有可能是實驗性的),快速獲得使用者回饋,並反覆運算以改進這些功能及其可用性。 同樣地,更快到達最終使用者,一般使用者的體驗就能夠得到更穩定的改善。

維護(更新)版本是按需發行的,開發週期可能很短,作用是為目前穩定分支的使用者提供最新的錯誤修復,以滿足他們的生產需求。

3.6 版本仍在計畫中,它應該是 Godot 3.x 的最後一個穩定分支。 這將是一個長期支援 (LTS) 版本,只要使用者仍然需要它,我們就計畫對其提供支援(由於 Godot 4.x 中缺少功能,或者已發行的遊戲需要持續更新以滿足平臺需求)。

引擎版本之間的相容標準是怎樣的?

備註

本節旨在供貢獻者使用以確定哪些更改對於給定版本是安全的。 該列表並不詳盡; 它只是概述了 Godot 開發過程中遇到的最常見的情況。

在 Godot 儲存庫中目前有設定下列 Label:

  • 修復一個不會對大多數專案產生重大負面影響的 bug,比如視覺或物理 bug。Godot 的物理引擎不是確定性的,所以修復物理 bug 不會被認為會破壞相容性。如果修復一個 bug 會產生可能影響很多專案的負面影響,應該將其設定為可選項(例如使用專案設定或單獨的方法)。

  • 為一個方法新增一個可選參數。

  • 小規模的編輯器可用性調整。

需要注意的是,我們在每個後續的更新發行中通常更加保守地處理允許的修復。 例如,4.0.1 可能會比 4.0.4 收到更具影響的修復。

以下更改在次要版本中是可接受的,但在更新版本中則是不可接受的:

  • 重要新功能。

  • 重命名方法參數。在 C# 中,方法參數可以通過名稱傳遞(但在 GDScript 中不行)。因此這可能會破壞一些使用 C# 的專案。

  • 放棄使用方法、成員變數或類。 這是通過向其類引用新增一個已放棄使用旗標來完成的,該旗標將顯示在編輯器中。 當一個方法被標記為已放棄使用時,它將在下一個*主要(major)*版本中刪除。

  • 影響預設專案主題視覺效果的更改。

  • 某些引起了行為或輸出的明顯改變的錯誤修復,旨在更好地滿足使用者的期望。相比之下,在更新版本中,我們可能傾向於保留一些錯誤行為,這樣我們就不會破壞可能已經依賴該錯誤或使用了解決方法的現有專案。

  • 導致了視覺變化的性能優化。

以下更改被視為**破壞相容性**,並且只能在新的主要(major)版本中執行:

  • 重命名或刪除方法、成員變數或類。

  • 通過讓節點繼承不同的類來修改節點的繼承樹。

  • 改變專案設定的預設值會影響已存在的專案。如果想只影響到新專案,專案管理者應當用編寫一份修改的 project.godot 來代替。

由於 Godot 5.0 分支目前還沒有建立,我們不建議這種破壞相容性的更改。

備註

當以任何方式修改一個方法的簽章(包括新增可選參數)時,必須建立一個 GDExtension 相容方法。這將確保現有的 GDExtensions 能夠在更新版本和次要版本中繼續工作,如此使用者就不必重新編譯它們。更多資訊請參見`拉取清求 #76446 <https://github.com/godotengine/godot/pull/76446>`_ 。