Files
godot-website/_layouts/download.html

383 lines
13 KiB
HTML

---
layout: default
---
{% assign platform = page.platform %}
{% include header.html %}
<link rel="stylesheet" href="/assets/css/transparent-nav.css?2">
<link rel="stylesheet" href="/assets/css/download.css?3">
<style>
.hero {
background-image: url('/assets/download/download-background-4.x.webp');
}
</style>
{% assign stable_version = site.data.versions | find: "featured", "4" %}
<div class="hero">
<div class="hero-wrapper">
<h1>Download Godot&nbsp;4 for {{ page.platform }}</h1>
<div class="main-downloads">
{% assign featured_downloads = page.downloads | where: "featured", "true" %}
{% for download in featured_downloads %}
{% capture download_url %}
{% if download.custom %}
{{ download.custom }}
{% else %}
{{ stable_version | make_download: download.platform, download.mono }}
{% endif %}
{% endcapture %}
{% assign platform_info = site.data.download_platforms | find: "name", download.platform %}
<div class="main-download">
<a href="{{ download_url }}" class="btn btn-download btn-download-main{% if forloop.index > 1 %}2{% endif %}">
<div class="download-title">
<img src="/assets/images/platforms/{{ page.platform | slugify }}.svg" alt="({{ page.platform }})">
Godot Engine{% if download.featured_flavor %} - {{ download.featured_flavor }}{% endif %}
</div>
<div class="download-hint">{{ stable_version.name }}</div>
</a>
<p class="main-download-details">
<strong>{% for tag in platform_info.tags %}{{ tag }} · {% endfor %}{% if download.mono %}C# support · {% endif %}</strong>{{ stable_version.release_date }}
</p>
</div>
{% endfor %}
<p class="previous-releases">
Looking for <strong class="previous-releases-featured"><a href="/download/3.x/" class="set-os-download-url" data-version="3">Godot 3</a></strong> or a <strong><a href="/download/archive">previous version</a>?</strong>
</p>
</div>
</div>
<div class="other-platforms">
<div class="other-platforms-wrapper">
Looking for other platforms? <a href="#platforms">See below!</a>
</div>
</div>
</div>
<div class="container">
<div id="links" class="platform-details">
<div class="card base-padding">
<h3>Requirements</h3>
<ul>
<li><strong>Recommended:</strong> Vulkan 1.0 compatible hardware</li>
<li><strong>Minimal:</strong> OpenGL 3.3 / OpenGL ES 3.0 compatible hardware</li>
</ul>
{% unless page.ignore_mono %}
<p>Additional requirements for the .NET version:</p>
<ul>
<li>
<a href="https://dotnet.microsoft.com/download">.NET SDK</a>
</li>
</ul>
{% endunless %}
</div>
<div class="platform-split">
<div class="card base-padding">
<h3>All downloads</h3>
{% for download in page.downloads %}
{% capture download_url %}
{% if download.custom %}
{{ download.custom }}
{% else %}
{{ stable_version | make_download: download.platform, download.mono }}
{% endif %}
{% endcapture %}
{% assign platform_info = site.data.download_platforms | find: "name", download.platform %}
<div class="download">
<a href="{{ download_url }}" class="download-link">
{{ platform_info.title }}{% if download.mono %} - .NET{% endif %}
{% unless platform_info.caption == empty %} - {{ platform_info.caption }}{% endunless %}
</a>
<span class="download-details">
{% for tag in platform_info.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}
{% if download.mono %} · C# support{% endif %}
</span>
</div>
{% endfor %}
{% unless page.ignore_export %}
{% assign templates_info = site.data.download_platforms | find: "name", "templates" %}
<div class="download">
<a href="{{ stable_version | make_download: "templates", false }}">
{{ templates_info.title }}
{% unless templates_info.caption == empty %} - {{ templates_info.caption }}{% endunless %}
</a>
<span class="download-details">
{% for tag in templates_info.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}
</span>
</div>
{% unless page.ignore_mono %}
<div class="download">
<a href="{{ stable_version | make_download: "templates", true }}">
{{ templates_info.title }} - .NET
{% unless templates_info.caption == empty %} - {{ templates_info.caption }}{% endunless %}
</a>
<span class="download-details">
{% for tag in templates_info.tags %}{{ tag }} · {% endfor %}C# support
</span>
</div>
{% endunless %}
{% endunless %}
{% if page.content_note %}
<div class="download-note">
{{ page.content_note }}
</div>
{% endif %}
</div>
<div class="card base-padding">
<h3>Instructions</h3>
{{ page.content_instructions }}
</div>
</div>
<div id="digital-stores" class="card base-padding digital-stores">
<div>
<p>Godot Engine is also available on digital distribution platforms:</p>
<div class="digital-store-list">
<a class="btn btn-digital-store" href="https://godotengine.itch.io/godot" title="Godot Engine on itch.io">
<div class="digital-store-logo">
<img src="/assets/download/itch_logo.svg" width="28" height="28" alt="itch logo">
</div>
<div class="digital-store-name">itch.io</div>
</a>
<a class="btn btn-digital-store" href="https://store.steampowered.com/app/404790" title="Godot Engine on Steam">
<div class="digital-store-logo">
<img src="/assets/download/steam_logo.svg" width="28" height="28" alt="Steam logo">
</div>
<div class="digital-store-name">Steam</div>
</a>
<a class="btn btn-digital-store" href="https://store.epicgames.com/p/godot-engine" title="Godot Engine on Epic Games Store">
<div class="digital-store-logo">
<img src="/assets/download/epic_logo.svg" width="28" height="28" alt="Epic Games Store logo">
</div>
<div class="digital-store-name">EGS</div>
</a>
</div>
</div>
<div class="digital-stores-notes">
<ul>
<li>Digital store versions <strong>do not</strong> include .NET/C# support.</li>
</ul>
</div>
</div>
</div>
</div>
<div class="platforms-wrapper">
<div id="platforms" class="container" style="overflow: hidden;">
<h2>Supported platforms</h2>
<div class="tabs platform-tabs">
<a href="/download/android" class="tab title-font {% if page.platform == 'Android' %} active {% endif %}">
<img width="24" height="24" src="/assets/images/platforms/android.svg" title="Android" alt="Android" />
<span>Android</span>
</a>
<a href="/download/linux" class="tab title-font {% if page.platform == 'Linux' %} active {% endif %}">
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" />
<span>Linux</span>
</a>
<a href="/download/macos" class="tab title-font {% if page.platform == 'macOS' %} active {% endif %}">
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" />
<span>macOS</span>
</a>
<a href="/download/windows/" class="tab title-font {% if page.platform == 'Windows' %} active {% endif %}">
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" />
<span>Windows</span>
</a>
<a href="https://editor.godotengine.org/releases/{{stable_version.name}}.stable/godot.editor.html" target="_blank" class="tab title-font">
<img width="24" height="24" src="/assets/images/platforms/web.svg" title="Web Editor" alt="Web Editor" />
<span>Web Editor</span>
</a>
</div>
</div>
</div>
<div class="container">
<div id="extras" class="padded" style="padding-top: 0">
<h2>Other Godot downloads</h2>
<div class="other-download">
<div class="other-download-card">
<h3>Godot demo projects</h3>
<p>
Give a try to demo projects showcasing some of the engine features.
</p>
<p>
<a href="https://github.com/godotengine/godot-demo-projects">
Demo projects on GitHub
</a>
</p>
<p>
{% assign stable_version_comp = stable_version.name | split: "." %}
<a href="https://godotengine.org/asset-library/asset?category=10&godot_version={{stable_version_comp[0]}}.{{stable_version_comp[1]}}&support[official]=1">
Demo projects in Asset Library
</a>
</p>
</div>
<div class="other-download-card">
{% assign aar_library_info = site.data.download_platforms | find: "name", "aar_library" %}
<h3>AAR library for Android</h3>
<p>Use it to develop Android plugins in Java or Kotlin using the Godot API.</p>
<p>
<a href="{{ stable_version | make_download: "aar_library", false }}">
{{ aar_library_info.title }}
{% unless aar_library_info.caption == empty %} - {{ aar_library_info.caption }}{% endunless %}
</a>
</p>
</div>
</div>
</div>
<div class="unstable-downloads">
<div id="previews" class="unstable-download-previews">
<h2>Preview builds</h2>
<p>
Godot is continuously being developed with several minor releases
being published every year. To ensure high quality and stability
of each release, we also publish preview builds at various stages of
development.
</p>
<p>
Help test Godot's new features or be the first to benefit from upcoming
improvements by downloading a preview build!
</p>
<a class="btn" href="/download/preview">
See latest preview builds
</a>
</div>
<div id="open-source" class="unstable-download-source">
<img class="flex-center dark-invert" src="/assets/download/dl_icon_github.png" width="200" height="200" alt="A GitHub logo">
<div>
<p>
Don't want to wait for official releases? You can compile Godot from source!
</p>
<ul>
<li>
Get the source code from the <a href="https://github.com/godotengine/godot">GitHub project page</a>.
</li>
<li>
Follow the instructions from the
<a href="https://docs.godotengine.org/en/stable/contributing/development/compiling/index.html">official documentation</a>.
</li>
</ul>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-back-to-downloads');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download');
downloadButtons.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
</script>
<div class="thankyou-wrapper" id="thank-you" style="display:none">
<div class="thankyou">
<h2>Godot is downloading!</h2>
<p class="thankyou-donate">
Godot exists thanks to people like you! Consider supporting continued development of the engine with a donation.
</p>
<a href="/donate/" class="btn btn-donate">
Make a Donation
</a>
<h3>Thank you!</h3>
<hr style="width:65%">
<p class="thankyou-reading">
If this is your first time using the Godot Engine, take a look at our beginner resources:
</p>
<ul class="thankyou-reading-list">
<li>
A comprehensive
<a href="https://docs.godotengine.org/en/stable/getting_started/step_by_step/">Step by Step tutorial</a>
for 2D and 3D.
</li>
<li>
A collection of
<a href="https://godotengine.org/asset-library/asset?category=10&support[official]=1">official demo projects</a>
showcasing some of the engine features.
</li>
<li>
A guide to install Godot on
<a href="https://docs.godotengine.org/en/stable/about/faq.html#linux">Linux</a>,
<a href="https://docs.godotengine.org/en/stable/about/faq.html#windows">Windows</a>,
and
<a href="https://docs.godotengine.org/en/stable/about/faq.html#macos">macOS</a>.
</li>
</ul>
<div class="btn-back-to-downloads">
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup">
</div>
</div>
</div>
{% include footer.html %}