Files
godot-website/pages/releases/4.4.html

394 lines
23 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
regenerate: true
permalink: /releases/4.4/index.html
title: Godot 4.4, a unified experience
description: Look forward to plenty of quality of life improvements hidden within this release. Faster load speeds, reduced stutter, streamlined processes - spotting all the optimizations that have been applied in the background will take some time.
image: /storage/blog/covers/godot-4-4-a-unified-experience.webp?cache=v2
layout: release
todo_for_authors_list: >
1. Go to https://godotengine.github.io/godot-interactive-changelog/#4.4
2. Click on _N contributors_
3. Execute this script in the console:
```javascript
await (async function () {
const nextFrame = () => {
return new Promise((resolve, _) => {
requestAnimationFrame(() => resolve());
});
};
const authors = [];
const changesList = document.querySelector("entry-component").shadowRoot.querySelector("gr-changes-list").shadowRoot;
for (const author of changesList.querySelectorAll("gr-author-item")) {
const shadowRoot = author.shadowRoot;
const showMore = shadowRoot.querySelector(".item-changes-more");
if (showMore != null) {
showMore.click();
await nextFrame();
}
const commits = Array.from(shadowRoot.querySelectorAll(".item-changes-list"))[0].querySelectorAll("li");
const prs = Array.from(shadowRoot.querySelectorAll(".item-changes-list"))[1].querySelectorAll("li");
authors.push({
handle: shadowRoot.querySelector(".item-title-name").textContent,
commits: commits.length,
prs: prs.length
});
}
return authors.toSorted((a, b) => a.handle.localeCompare(b.handle, "en", { ignorePunctuation: true })).map((author) => `${author.handle},${author.commits},${author.prs}`).join("|");
})().catch((err) => console.error(err));
```
authors_list: "0x0ACB,1,1|0x53A,1,1|0xafbf,1,1|0xcafeb33f,1,1|10Drenth,1,1|2nafish117,1,1|31,1,1|3DartBlade,1,1|4d49,1,1|a0kami,1,1|aaronfranke,37,29|aaronp64,14,14|adamscott,39,36|AdriaandeJongh,2,2|AeioMuch,2,2|AinaVT,1,1|a-johnston,4,4|ajreckof,5,5|akien-mga,90,79|akx,1,1|alesliehughes,2,2|alessand10,3,3|Alex2782,4,4|alexkar598,1,1|allenwp,9,9|alliephante,1,1|Althar93,1,1|alula,1,1|alvinhochun,15,10|amarsero,3,3|and-rad,1,1|andrei-g99,1,1|AndrewShobbrook,1,1|andyprice,2,1|anknetau,1,1|anniryynanen,1,1|anvilfolk,3,3|apples,1,1|ArchercatNEO,2,2|ArjhanToteck,1,1|arkology,12,12|Arnklit,6,6|ArshPanesar,1,1|ArthyChaux,1,1|aryan-11825114,5,5|AshWolf,1,1|AThousandShips,77,75|AtlaStar,2,2|ator-dev,1,1|aXu-AP,9,9|axunes,1,1|badsectoracula,4,4|basicer,1,1|BastiaanOlij,15,15|BattyBovine,2,3|beev1s,0,1|beicause,6,6|berarma,6,3|beru,1,1|betalars,1,1|biswas08433,1,1|bits-by-brandon,1,1|bjornmp,0,1|Black-Cat,1,1|BlackShift,1,1|BlueCube3310,56,56|bobby-the-epic,1,1|Bonkahe,3,3|Bossdell113,1,1|brandon515,1,1|Breush,1,1|brevven,1,1|BrianBHuynh,2,2|brno32,1,1|Bromeon,4,4|bruno-brant,1,1|bruvzg,211,209|btgs-0,1,1|buresu,3,3|CabalCrow,1,1|cadence-s,2,2|caimantilla,1,1|caleb98,1,1|Calinou,106,107|Carbonyte,1,1|carsonetb,1,1|C-BJ,1,1|Chaosed0,1,1|Chaosus,48,47|ChildLearningClub,1,1|chocola-mint,3,3|ChrisBase,1,1|Chubercik,7,7|citizenll,1,1|cixil,1,1|ckaiser,2,2|clayjohn,74,74|cloudofoz,1,1|cmumme,1,1|colinator27,1,1|ComycSans,1,1|cooperra,1,1|CrabNickolson,1,1|Craig-Stoneham,1,1|CrayolaEater,3,3|CrazyRoka,1,1|CreatedBySeb,2,2|CreepGin,1,1|crei0,1,1|Cwazywierdo,1,1|CW-Jesse,2,1|D0V4HKIIN,1,1|dalexeev,37,37|DanielGSilva,0,1|DanielKinsman,1,1|DarioSamo,32,33|DarkMessiah,1,1|darksylinc,17,18|davidrautert,1,1|davthedev,2,2|Daylily-Zeleen,6,6|dbnicholson,3,3|DCTewi,1,1|DearthDev,1,1|DeeJayLSP,13,13|Delsin-Yu,4,4|demolke,8,7|detomon,3,3|DevilboxGames,1,1|devloglogan,6,6|DevPoodle,2,2|DictyosteliumDiscoideum,1,1|DinkeyKing,1,1|ditiem,1,1|ditiem-games,0,1|dnllowe,1,1|dog-on-moon,1,1|Dowsley,3,3|Drako,1,1|Dr-helicopter,1,1|dsnopek,40,40|DubiousDuck,1,1|ducklin5,1,1|dustdfg,25,25|EAinsley,4,4|ecmjohnson,1,1|ecosky,1,1|Eddy-Rogers,1,1|edwin0cheng,1,1|EelisOtsamo,1,1|EIREXE,1,2|ellenhp,1,1|elliotfontaine,1,1|elmajime,0,1|elpozewaunig,2,2|emanvidmaker,1,1|EMBYRDEV,1,1|EmrysMyrddin,1,1|EnlightenedOne,0,2|eobet,1,1|ershn,1,1|esainane,2,2|EspeuteClement,1,1|ev13bird,3,3|eviltrout,2,2|exyxz,1,1|Fahien,1,1|Faless,33,31|fedyfausto,1,1|fire,11,12|Flarkk,11,11|FlooferLand,1,1|Flynsarmy,1,1|foxydevloper,1,1|Fruitsalad,1,1|fstxz,1,1|fuzzybinary,1,1|Gaktan,3,3|Garetonchick,1,1|Geekotron,1,1|Geometror,15,15|Germenzi,1,1|ghost,13,13|Giganzo,38,38|gio3k,1,1|girdenis-p,2,2|goatchurchprime,1,1|gofastlily,1,1|gongpha,2,2|Goutte,1,1|GrahameGW,1,1|graydoubt,1,1|GreenCrowDev,1,1|grenappels,1,1|Gromph,1,1|groud,1,1|gturri,1,1|GuacamoleAficionado,1,1|guerro323,1,1|GuilhermeGSousa,3,3|GustJc,2,2|hakro,4,4|Hakunamawatta,2,2|Harsche,1,1|havi05,14,14|hayahane,2,2|Hilderin,63,64|HKunogi,1,1|HolonProduction,24,24|hpvb,18,18|hunterkepley,1,1|hunterloftis,1,1|HuntJSparra,2,2|huwpascoe,3,3|Hysterelius,1,1|ialex32x,1,1|ianmccleary,1,1|Illauriel,1,1|ImpishOaths,1,1|IntangibleMatter,1,1|iscke,1,1|ItzCog,2,2|Ivorforce,36,36|j20001970,3,3|Jabberdrake,1,1|JackErb,1,1|jadeharley2,1,1|jadoc,2,2|jamesmintram,1,1|jamie-pate,2,2|jasonmorgado,1,1|jaydensipe,5,5|jburt137,1,1|JekSun97,1,1|jeronimo-schreyer,1,1|Jesusemora,1,1|jirisvd,2,2|jitspoe,1,1|jj11hh,1,1|jkirsteins,3,3|jman168,1,1|jolexxa,1,1|jonatanrojderd,1,1|jordi-star,2,2|Jordyfel,3,3|Joy-less,1,1|jrouwe,2,2|jsjtxietian,16,16|jss2a98aj,1,1|jtcat,1,1|juanjp600,7,7|JulianHeuser,1,1|jweisberg,1,1|jwinarske,1,1|jwodicka,1,1|kerstop,1,1|kevinkuo52,2,2|KeyboardDanni,2,2|Khusheete,1,1|Kiisu-Master,1,1|Kimau,1,1|KingTheFifth,1,1|kiroxas,13,13|kisg,5,5|kitbdev,27,27|kleonc,20,18|KoBeWi,160,159|konczg,1,1|Koyper,1,1|krm01,1,1|kroketio,3,3|kthang55,1,1|kus04e4ek,2,2|L2750558108,1,1|LainAmongYou,1,1|lalitshankarchowdhury,5,5|lander-vr,7,7|LaneSBarnes,1,1|LanzaSchneider,1,1|larspet,13,13|laspencer91,1,1|lawnjelly,10,10|Lazy-Rabbit-2001,4,4|LeonardoDemartino,1,1|LeonStansfield,4,3|libklein,1,1|Lielay9,4,4|limbonaut,1,1|lodicolo,1,1|Logharaa,1,1|lpenguin,1,1|Lssikkes,1,1|Luis-Wong,1,1|LuizZak,1,1|Lunarisnia,1,1|LunaTheFoxgirl,1,1|lyuma,5,5|m4gr3d,36,31|Macksaur,2,2|maidopi-usagi,2,2|majikayogames,1,1|MajorMcDoom,7,7|Malcolmnixon,3,3|Manik2607,2,2|Maran23,7,7|marcelovbcfilho,1,1|MarcusAahl,1,1|markdibarry,5,5|markeel,1,1|MartinMajewski,1,1|mateuseap,3,3|MathdudeMan,1,1|matheusmdx,5,5|matmas,1,1|matthewestopinal,1,1|MaxIsJoe,1,1|maxpiepenbrink,1,1|mayoff,0,1|MBCX,2,2|mdelorme,3,3|Meccanizer,1,1|mechalynx,2,1|megalon,1,1|Meorge,13,13|MewPurPur,7,7|mh114,1,1|mhilbrunner,2,2|MichaelMacha,1,1|Mickeon,39,38|mihe,24,24|MileyHollenberg,2,2|miv391,4,4|MJacred,6,2|MonterraByte,1,1|monxa,1,1|mosquitochang,0,1|m-pranav-r,2,2|MrJoermungandr,1,1|mrsaturnsan,5,5|MTareqAzim,1,1|Muller-Castro,1,1|Musicgun47,1,1|MylesScholz,1,1|Namey5,7,7|Naros,6,6|nathanhoad,1,1|Nazarwadim,10,9|nikitalita,4,4|Nikitf777,1,1|Nodragem,4,4|noidexe,4,3|nongvantinh,1,1|NotWearingPants,1,1|Nova840,1,1|ntlblpm,1,1|object71,2,2|ogapo,1,1|ohboh,1,1|olanti-p,1,1|olawlor,1,1|OlesyaGerasimenko,1,1|opsocket,1,1|OS-of-S,1,1|paddy-exe,4,5|pafuent,15,15|passivestar,19,19|patowen,1,1|pattlebass,1,1|patwork,1,1|paulloz,3,3|permelin,1,1|peterdang1502,2,2|pgrit,1,1|PhairZ,3,3|picoxr,1,1|pkdawson,1,1|pkowal1982,2,2|PoqXert,1,1|Praytic,1,1|ProgrammerOnCoffee,1,1|QbieShay,5,5|qwertychomp,1,1|radiantgurl,5,5|rakkarage,1,1|RandomShaper,54,41|Ratio2,1,1|raulsntos,34,33|rburing,7,7|rcadena,1,1|reach-satori,2,2|RedMser,6,6|RedOrbweaver,1,1|reduz,8,8|RedworkDE,1,1|Repiteo,66,61|Rindbee,4,4|Riteo,20,18|RobProductions,4,4|Rocka06,2,2|rohanrhu,1,1|RossRothenstine,1,1|RoyBerardo,1,1|RPicster,1,1|rptfrg,1,1|rsubtil,4,2|Rudolph-B,8,8|rune-scape,20,20|Ryan-000,2,2|ryanbraganza,1,1|ryevdokimov,16,16|Rynzier,1,1|samsface,1,1|SaNeOr,1,1|SaracenOne,23,23|Sauermann,16,16|scgm0,6,6|Scony,1,1|sepTN,1,1|shahriarlabib000,4,4|shana,2,2|shatyuka,1,1|SheepYhangCN,2,2|skyace65,2,2|SkylerGoh-dev,1,1|SlashScreen,3,3|SlienCode,1,1|SlugFiller,1,1|smix8,35,35|smnast,1,1|snyk-bot,1,1|sofia285,1,1|SomeRanDev,2,2|sorascode,1,1|SourceOfHTML,1,1|spanzeri,1,1|Spartan322,1,1|spoxii,2,2|squidgyberries,1,1|StaydMcMuffin,3,3|stdmnpkg,2,1|stechyo,2,1|StefanCristian,1,1|SteffenBlake,1,1|Sticksman,2,2|stijn-h,3,3|stmSi,1,1|Stronkkey,1,1|stuartcarnie,40,40|SubmergedTree,1,1|Summersay415,10,10|SupSuper,1,1|syntaxerror247,45,43|Syntaxxor,1,1|Synzorasize,2,2|Tallivm,1,1|TCROC,8,8|tdaven,4,4|TestSubject06,1,1|tetrapod00,32,32|thedinosoar,1,1|theDrake,1,1|theraot,1,1|TheSofox,4,4|TheYellowArchitect,1,1|thiagola92,2,2|thimenesup,2,2|Tiktalik,1,1|timoschwarzer,4,4|timothyqiu,82,80|tinybitofheaven,1,1|TitanNano,1,1|TML233,1,1|Togira123,1,1|TokageItLab,44,44|TokisanGames,1,1|tom-schultz,1,1|TopherBriggs,1,1|tracefree,5,5|ttencate,1,1|TV4Fun,1,1|tvenclovas96,1,1|twrightsman,2,2|tygyh,1,2|UnfavorableEnhancer,1,1|Uumutunal,1,1|vaner-org,2,2|vgezer,1,1|viksl,1,1|vinni-richburgh,1,1|voidedWarranties,1,1|voylin,1,1|vPumpking,2,2|wagnerfs,1,1|wakeofluna,1,1|wareya,2,2|wenqiangwang,1,1|WhalesState,13,13|what-is-a-git,1,1|wheatear-dev,1,1|Wierdox,3,3|wlsnmrk,2,2|wyvrtn,1,1|xiongyaohua,1,1|yahiaetman,1,1|yahkr,8,8|yannlemos,1,1|ydeltastar,7,7|YeldhamDev,22,22|Yelloween10,5,5|yeojunh,1,1|yosoyfreeman,1,1|ywmaa,2,2|YYF233333,14,12|Z0rb14n,2,2|zachseiss,0,1|zaevi,6,6|ze2j,2,2|ZerxZ,1,1|zeux,8,8|ZhiyiHu93,1,1|Zshandi,1,1|Zylann,2,2|zynga-jpetersen,1,1"
---
{% assign release_version_number = "4.4" %}
{% assign latest_patch = release_version_number | get_latest_patch %}
{% assign release_version = latest_patch | make_release_version: "stable" %}
{% assign data = site.release_4_4 %}
{% assign _intro = data | where: "type", "entry" | where: "category", "intro" | sort: "rank" %}
{% assign _sections = data | where: "type", "section" | sort: "rank" %}
{% assign _foundation = data | where: "type", "entry" | where: "category", "foundation" | sort: "rank" %}
{% assign _special_thanks = data | where: "type", "entry" | where: "category", "special_thanks" | sort: "rank" %}
{% assign download_platforms = site.download %}
{% assign stable_version = site.data.versions | find: "name", latest_patch %}
<link rel="stylesheet" href="/assets/css/material-symbols-outlined.css" />
<link rel="stylesheet" href="/assets/css/releases/4.4.css?cache=v2" />
<script type="module" src="/assets/js/releases/4.4.mjs"></script>
<noscript>
<link rel="stylesheet" href="/assets/css/releases/4.4.noscript.css" />
</noscript>
<div id="top" class="release-header">
<div class="release-header-background"></div>
<div class="release-header-content">
<!-- Important to separate `.release-header-content` from `.container`. -->
<div class="container">
<h1 class="header-main-title">
<span class="header-main-title-text">Godot 4.4 RELEASE</span>
</h1>
<div class="header-content">
<div class="header-text">
<h2 class="header-title">A unified experience</h2>
<p>
Look forward to plenty of quality of life improvements hidden within this release. Faster load speeds, reduced stutter, streamlined processes — spotting all the optimizations that have been applied in the background will take some time.
</p>
<p>
On top of that, long-awaited comfort features like embedded game windows and interactive in-game editing will feel more in line with other software on the market, making transitioning between them an even smoother experience. The editor overhaul alone takes up a big chunk of this release, after all.
</p>
</div>
</div>
<div class="header-content header-content-note">
<div class="header-text">
<p class="header-note-title">
Before you update
</p>
<p>
Before transitioning your existing projects to Godot 4.4, carefully read through our <a href="https://docs.godotengine.org/en/4.4/tutorials/migrating/upgrading_to_godot_4.4.html">migration guide</a> to learn about breaking changes.
</p>
</div>
</div>
<div class="header-content header-background-author-container">
<div class="header-background-author">
Header background screenshot from the <a href="https://jedenjenda23.itch.io/outskirts-godot-environment-demo">Outskirts environment demo</a> by <a href="https://jedenjenda23.itch.io/">jedenjenda23</a>
</div>
</div>
</div>
</div>
</div>
<div id="scroll-to-top">
<a class="link" href="#links"><span></span></a>
</div>
<div class="release-content">
<div id="download" class="section section-download">
<div class="container">
<div class="release-cards">
<div id="download-download" class="release-card media-bottom span-3">
<div class="release-card-container">
<div class="release-card-content">
<div class="release-card-content-container">
<div class="c-blockquote">
Download and experience <span class="highlight">Godot {{latest_patch}}</span> for yourself
</div>
</div>
</div>
<div class="release-card-media">
{% assign download_primary = release_version | get_download_platforms: false %}
<div class="release-platform-container">
{% for download_platform in download_platforms %}
{% assign platform_name = download_platform.platform | downcase %}
<div class="release-platform release-platform-{{platform_name}}">
{% assign featured_downloads = download_platform.downloads | where: "featured", "true" %}
{% for featured_download in featured_downloads %}
{% capture download_url %}
{% if featured_download.custom %}
{{ featured_download.custom }}
{% else %}
{{ stable_version | make_download: featured_download.platform, featured_download.mono, "github_builds" }}
{% endif %}
{% endcapture %}
{% assign platform_info = site.data.download_platforms | find: "name", featured_download.platform %}
<div class="release-button release-button-standard">
{% assign download_btn_class = "download-button" %}
{% if featured_download.mono %}
{% assign download_btn_class = download_btn_class | append: " download-net-button" %}
{% endif %}
{% assign data_external = 'data-external="no"' %}
{% if featured_download.custom %}
{% assign data_external = 'data-external="yes"' %}
{% endif %}
<a href="{{ download_url }}" class="btn {{ download_btn_class }}" {{data_external}}>
<div class="download-title">
<img src="/assets/images/platforms/{{ platform_name | slugify }}.svg" alt="({{ platform_name }})" draggable="false" />
<span>Godot Engine{% if featured_download.featured_flavor %} {{ featured_download.featured_flavor }}{% endif %}</span>
</div>
<div class="download-hint"><span>{{ stable_version.name }}</span></div>
</a>
<p class="main-download-details">
<strong>{% for tag in platform_info.tags %}{{ tag }} · {% endfor %}{% if featured_download.mono %}C# support · {% endif %}</strong>{{ stable_version.release_date }}
</p>
</div>
{% endfor %}
</div>
{% endfor %}
</div>
</div>
</div>
</div>
</div>
</div>
</div> <!-- #download -->
<div id="foundation" class="section section-foundation">
<div class="container">
<div class="release-cards">
<div id="foundation-donate" class="release-card media-right span-3">
<div class="release-card-container">
<div class="release-card-content">
<div class="release-card-content-container">
<div class="c-blockquote">
Made possible by <span class="highlight">your donations</span>
</div>
</div>
</div>
<div class="release-card-media">
<a class="release-card-button release-card-button-fund"
href="https://fund.godotengine.org/">
<span class="release-card-button-text">
Join the Development Fund 
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div> <!-- #foundation -->
<div id="links" class="section section-links">
<div class="container">
<div class="release-cards">
<div id="links-links" class="release-card transparent-card span-3">
<div class="release-card-container">
<div class="release-card-content">
<div class="release-card-content-container">
<div class="c-content">
<ul class="links-container main-list">
<li><a class="link link-highlights" href="#highlights"><span>Highlights</span></a></li>
<li><a class="link link-general" href="#general"><span>General</span></a></li>
<li><a class="link link-platforms" href="#platforms"><span>Platforms</span></a></li>
<li><a class="link link-scripting" href="#scripting"><span>Scripting</span></a></li>
<li><a class="link link-systems" href="#systems"><span>Systems</span></a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div> <!-- #links -->
{% for section in _sections %}
{%
include_relative _includes/section.html
section=section
data=data
%}
{% endfor %}
<div id="special-thanks" class="section section-special-thanks">
<div class="section-title">
<div class="container">
<h3>
<a href="#special-thanks">Special thanks</a>
<div class="section-robot godot-icon-godot" aria-disabled="true"></div>
</h3>
</div>
</div>
<div class="container">
<div class="release-cards">
<div id="special-thanks-release-authors" class="release-card span-3 media-bottom">
<div class="release-card-container">
<div class="release-card-content">
<div class="release-card-content-container">
<h4 class="c-title">
<a href="#special-thanks-release-authors">
Release authors
</a>
</h4>
<div class="c-blockquote">
<span class="highlight">Team work</span> makes the dream work
</div>
<div class="c-content">
<p>
Here you can see all the contributors with PRs merged into this release.
The names are ordered alphabetically, and sized accordingly to their number
of contributions.
</p>
<p>
Special thanks goes out to all the engine teams that collaborated on this release,
especially since commits to other related repositories (<a href="https://github.com/godotengine/godot-docs">documentation</a>, <a href="https://github.com/godotengine/godot-cpp">godot-cpp</a>,
etc.) do not show up in this graphic.
</p>
</div>
</div>
</div>
<div class="release-card-media">
<div class="release-card-authors">
{% assign authors = page.authors_list | split: "|" %}
{% for author in authors %}
{% assign author_data = author | split: "," %}
{% assign author_handle = author_data[0] %}
{% assign author_commits = author_data[1] %}
{% assign author_prs = author_data[2] %}
<div class="release-card-author" data-handle="{{author_handle}}"
data-commits="{{author_commits}}" data-prs="{{author_prs}}">
<a href="https://github.com/godotengine/godot/pulls?q=author%3A{{author_handle}}+is%3Apr+milestone%3A{{release_version_number}}+is%3Aclosed+is%3Amerged+"
target="_blank">{{author_handle}}</a>
</div>
{% endfor %}
</div>
</div>
</div>
</div> <!-- #special-thanks-release-authors -->
<div id="special-thanks-remi" class="release-card transparent-card span-3">
<div class="release-card-container">
<div class="release-card-content">
<div class="release-card-content-container force-one-column">
<div class="c-blockquote">
<p>
Another massive release with close to 3,000 commits (excluding merge commits),
with a big focus on improvements to the overall workflow and usability of the
editor.
</p>
<p>
Engine features didn't want to be left out amidst this usability focus though,
and this release is absolutely feature-packed in all areas.
</p>
<p>
More than 500 contributors were involved in this new feature release,
and we want to thank them all for their amazing contributions, as well
as all users who sponsor the Development Fund, reported bugs, opened
proposals, or supported each other on our community platforms.
</p>
</div>
<div class="c-content align-right">
— <a href="https://github.com/akien-mga">Rémi Verschelde</a>, project manager,
<a href="https://github.com/godotengine/godot/commit/4c311cbee68c0b66ff8ebb8b0defdd9979dd2a41">{{release_version_number}} release commit</a>
</div>
</div>
</div>
</div>
</div>
<div id="special-thanks-credits" class="release-card span-3">
<div class="release-card-container">
<div class="release-card-content">
<div class="release-card-content-container">
<h4 class="c-title">
<a href="#special-thanks-credits">
Release page credits
</a>
</h4>
<div class="c-content">
<ul class="list-style-none">
<li>
Web development by <a href="https://adamscott.studio">Adam Scott</a>.
</li>
<li>
Texts by <a href="https://bio.link/murderveggie">Nathalie Galla</a>.
</li>
<li>
Media content by <a href="https://adamscott.studio">Adam Scott</a>
<small>
using assets from
</small>
<ul class="c-content-assets">
<li>
<small>
<a href="https://github.com/gdquest-demos/godot-4-3d-third-person-controller">RoboBlast: Third-Person Shooter demo</a> by <a href="https://www.gdquest.com/">GDQuest</a>,
</small>
</li>
<li>
<small>
<a href="https://kenney.itch.io/kenney-game-assets">Kenney Game Assets All-in-1</a> by <a href="https://www.kenney.nl/">Kenney</a>,
</small>
</li>
<li>
<small>
<a href="https://luizmelo.itch.io">Martial Hero</a> by <a href="https://luizmelo.itch.io">LuizMelo</a>,
</small>
</li>
<li>
<small>
<a href="https://ggbot.itch.io/psx-style-cars">PSX Style Cars</a> by <a href="https://www.ggbot.net/">GGBot</a>,
</small>
</li>
<li>
<small>
<a href="https://github.com/Calinou/godot-sponza-4">Sponza for Godot 4.0</a> by <a href="https://github.com/Calinou">Calinou</a>, and
</small>
</li>
<li>
<small>
<a href="https://stephrobertgames.itch.io/anime-character-low-poly-psx">anime character low poly / psx</a> by <a href="https://stephrobertgames.itch.io">stephanrobertgames</a>.
</small>
</li>
</ul>
</li>
<li>
Additional media content by tagged content creators.
</li>
<li>
Release thumbnail by <a href="https://bsky.app/profile/heytibo.bsky.social">Tibo</a>.
</li>
<li>
Header background screenshot from the <a href="https://jedenjenda23.itch.io/outskirts-godot-environment-demo">Outskirts environment demo</a> by <a href="https://jedenjenda23.itch.io/">jedenjenda23</a>.
</li>
<li>
Design template by <a href="https://luiscarli.com/">Luis Carli</a>.
</li>
</ul>
</div>
</div>
</div>
</div>
</div> <!-- #special-thanks-credits -->
</div>
</div>
</div> <!-- #special-thanks -->
</div>