• Stars
    star
    186
  • Rank 199,896 (Top 5 %)
  • Language
    Shell
  • Created over 5 years ago
  • Updated 3 months ago

Reviews

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

Repository Details

Godot engine build containers

Godot engine build containers

This repository contains the Dockerfiles for the official Godot engine builds. These containers should help you build Godot for all platforms supported on any machine that can run Docker containers.

The in-container build scripts are in a separate repository: https://github.com/godotengine/godot-build-scripts

Introduction

These scripts build a number of containers which are then used to build final Godot tools, templates and server packages for several platforms.

Once these containers are built, they can be used to compile different Godot versions without the need of recreating them.

The upload.sh file is meant to be used by Godot Release Team and is not documented here.

Requirements

These containers have been tested under Fedora 36 (other distros/releases may work too).

The tool used to build and manage the containers is podman (install it with dnf -y podman).

We currently use podman as root to build and use these containers. Documenting a workflow to configure the host OS to be able to do all this without root would be welcome (but back when we tried we ran into performance issues).

Usage

The build.sh script included is used to build the containers themselves.

The two arguments can take any value and are meant to convey what Godot branch you are building for (e.g. 4.x) and what Linux distribution the Dockerfile.base is based on (e.g. f36 for Fedora 36).

Run the command using:

./build.sh 4.x f36

The above will generate images using the tag '4.x-f36'. You can then specify it in the build.sh of godot-build-scripts.

Selecting which images to build

If you don't need to build all versions or you want to try with a single target OS first, you can comment out the corresponding lines from the script:

$podman_build -t godot-linux:${img_version} -f Dockerfile.linux . 2>&1 | tee logs/linux.log
$podman_build -t godot-windows:${img_version} -f Dockerfile.windows . 2>&1 | tee logs/windows.log
$podman_build -t godot-web:${img_version} -f Dockerfile.web . 2>&1 | tee logs/web.log
$podman_build -t godot-android:${img_version} -f Dockerfile.android . 2>&1 | tee logs/android.log
...

Note: The MSVC image (used for UWP builds) does not work currently.

Image sizes

These are the expected container image sizes, so you can plan your disk usage in advance:

REPOSITORY                                       TAG                        SIZE
localhost/godot-fedora                           4.x-f36                    1.06 GB
localhost/godot-export                           4.x-f36                    1.54 GB
localhost/godot-linux                            4.x-f36                    2.07 GB
localhost/godot-windows                          4.x-f36                    1.81 GB
localhost/godot-web                              4.x-f36                    2.2 GB
localhost/godot-android                          4.x-f36                    4.24 GB
localhost/godot-osx                              4.x-f36                    4.56 GB
localhost/godot-ios                              4.x-f36                    5.01 GB

In addition to this, generating containers will also require some host disk space (around 20 GB) for the dependencies (Xcode, MSVC).

Toolchains

These are the toolchains currently in use for Godot 4.0 and later:

  • Base image: Fedora 36
  • SCons: 4.4.0
  • Linux: GCC 10.2.0 built against glibc 2.19, binutils 2.35.1, from our own Linux SDK
  • Windows: MinGW 9.0.0, GCC 11.2.0, binutils 2.37
  • Web: Emscripten 3.1.18
  • Android: Android NDK 23.2.8568313, build-tools 32.0.0, platform android-32, CMake 3.18.1
  • macOS: Xcode 13.3.1 with LLVM Clang 13.0.1, MacOSX SDK 12.3
  • iOS: Xcode 13.3.1 with LLVM Clang 13.0.1, iPhoneOS SDK 15.4
  • UWP: Visual Studio 2017, current configuration sadly not easily reproducible (Dockerfile.msvc image is not compiled by default as it doesn't work)

More Repositories

1

godot

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

awesome-godot

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

godot-demo-projects

Demonstration and Template Projects
GDScript
4,791
star
4

godot-docs

Godot Engine official documentation
reStructuredText
3,278
star
5

godot-cpp

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

godot-vscode-plugin

Godot development tools for VSCode
TypeScript
1,356
star
7

godot-blender-exporter

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

godot-proposals

Godot Improvement Proposals (GIPs)
998
star
9

tps-demo

Godot Third Person Shooter with high quality assets and lighting
GDScript
869
star
10

godot-git-plugin

Git implementation of the VCS interface in Godot
C++
603
star
11

collada-exporter

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

godot-headers

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

godot-syntax-themes

Syntax themes for the Godot Engine script editor
331
star
14

emacs-gdscript-mode

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

godot-asset-library

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

godot-website

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

FBX2glTF

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

godot-csharp-visualstudio

Godot C# extension for Visual Studio
C#
219
star
19

gdnative-demos

Demo projects for GDNative
Python
189
star
20

webrtc-native

The official GDNative WebRTC implementation for non-html exports.
C++
188
star
21

godot-design

Visual design specific stuff for the godot engine
184
star
22

godot-old-gsoc-ideas

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

godot-google-play-billing

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

godot-csharp-vscode

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

godot-ios-plugins

Objective-C++
112
star
26

godot-visual-script

VisualScript as a Godot Engine c++ module
C++
112
star
27

godot-benchmarks

Collection of benchmarks to test performance of different areas of Godot
GDScript
99
star
28

godot-3d-dodge-the-creeps

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

godot-build-scripts

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

godot-cpp-template

Quickstart template for GDExtension development with Godot
Python
63
star
31

godot-mono-builds

Mono build scripts for Godot
Python
56
star
32

godot-3d-platformer-demo

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

godot-docs-l10n

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

godot-builds

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

godot-tests

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

godot-monodevelop-addin

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

mousse

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

godot-interactive-changelog

An interactive tool to view a changelog for each version of Godot Engine
JavaScript
24
star
39

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
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++
20
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
16
star
45

gdscript-tests

Tests for the GDScript module implementation
HTML
13
star
46

godot-editor-l10n

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

godot-prs-by-file

JavaScript
12
star
48

godot-showreel-voting

A Django app to review and vote videos
Python
11
star
49

community-map

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

.github

Godot community health files
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-question2answer

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

godot-docs-user-notes

User notes for the Godot Engine official documentation
4
star
55

issue-stats

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

godot-nir-static

C++
3
star
57

discourse-theme

A custom Godot styled theme for discourse
SCSS
2
star