Skip to content

Commit 15e375f

Browse files
committed
Add base entries and support for contributors names
1 parent 3c44147 commit 15e375f

10 files changed

+148
-28
lines changed

assets/js/releases/4.4.mjs

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ for (const cLink of cLinks) {
149149
cLinkA.target = "_blank";
150150
}
151151

152-
if (cLink.dataset.contributors) {
152+
if (cLink.dataset.contributors != null) {
153153
let parentId = "";
154154
let parent = cLink.parentElement;
155155
while (parent != document.body) {
@@ -161,6 +161,13 @@ for (const cLink of cLinks) {
161161
}
162162
const contributorsId = `${parentId}-contributors`;
163163

164+
/** @typedef {{ name: string, github: string }} Contributor */
165+
/**
166+
* @param {string} previousValue
167+
* @param {string} currentValue
168+
* @param {number} currentIndex
169+
* @param {Contributor[]} array
170+
*/
164171
const contributorsReducer = (previousValue, currentValue, currentIndex, array) => {
165172
if (currentIndex === 0) {
166173
return `${previousValue} ${currentValue}`;
@@ -172,14 +179,32 @@ for (const cLink of cLinks) {
172179
return `${previousValue}, and ${currentValue}`;
173180
};
174181

175-
/** @type {String[]} */
176-
const contributors = cLink.dataset.contributors.split(",");
177-
const contributorsText = contributors.reduce(contributorsReducer, "Contributed by");
178-
const contributorsHtml = contributors.map((val) => {
182+
/** @type {Contributor[]} */
183+
let contributors = [];
184+
try {
185+
contributors = JSON.parse(cLink.dataset.contributors);
186+
} catch (err) {
187+
const newErr = new Error(`Could not parse c-link contributors JSON. ${cLink.dataset.contributors}`);
188+
newErr.cause = err;
189+
throw newErr;
190+
}
191+
/**
192+
* @param {Contributor} contributor
193+
* @returns {string}
194+
*/
195+
const getContributorDisplayName = (contributor) => {
196+
if (contributor.name === contributor.github) {
197+
return contributor.github;
198+
}
199+
return `${contributor.name} (${contributor.github})`;
200+
};
201+
const contributorsToString = contributors.map(getContributorDisplayName);
202+
const contributorsText = contributorsToString.reduce(contributorsReducer, "Contributed by");
203+
const contributorsHtml = contributors.map((contributor) => {
179204
const link = document.createElement("a");
180-
link.href = `https://github.com/${val}`;
205+
link.href = `https://github.com/${contributor.github}`;
181206
link.target = "_blank";
182-
link.textContent = val;
207+
link.textContent = getContributorDisplayName(contributor);
183208
return link.outerHTML;
184209
}).reduce(contributorsReducer, "Contributed by");
185210

collections/_release_4_4/entry-highlights-00-3d-physics-interpolation.md renamed to collections/_release_4_4/entry-highlights-00-3d-physics-interpolation copy.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ text: |
1010
1111
By decoupling physics ticks and display frame rates, physics interpolation creates additional frames between the last physics position and the current one. This reduces jitter and creates a smoother appearance, especially on displays with a high refresh rate. Mobile games also benefit from this change, since you can now lower the tick rate without compromising on smoothness.
1212
contributors:
13-
- rburing
14-
- lawnjelly
13+
- name: Ricardo Buring
14+
github: rburing
15+
- name: lawnjelly
16+
github: lawnjelly
1517
read_more: https://github.com/godotengine/godot/issues?q=is%3Apr%20state%3Amerged%2092391%2091818%20
1618
---

collections/_release_4_4/entry-highlights-00-test copy.md

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
type: entry
3+
section: highlights
4+
rank: 1
5+
anchor: "typed-dictionaries"
6+
title: "Typed dictionaries"
7+
blockquote: "Keys required"
8+
text: |
9+
Godot 4.0 introduced supported for typed arrays, but lacked support for typed dictionaries. This rapidly became one of the most requested features to add to the engine, and thanks to Thaddeus Crews, it is now implemented for Godot 4.4! This feature impacts the core engine, GDScript, and all other scripting languages when interfacing with Godot’s Dictionary type. You can now export typed dictionaries from scripts and benefit from a much improved Inspector UX to assign the right keys and values.
10+
11+
As a related improvement, support for StringName dictionary keys has also been optimized by Rune (GH-70096).
12+
contributors:
13+
- name: Thaddeus Crews
14+
github: Repiteo
15+
read_more: https://github.com/godotengine/godot/issues?q=is%3Apr%20state%3Amerged%2078656%2070096%20
16+
---
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
type: entry
3+
section: highlights
4+
rank: 2
5+
anchor: "initial-android-editor-support-for-XR-devices"
6+
title: "Initial Android editor support for XR devices"
7+
blockquote: "Make games in VR!"
8+
text: |
9+
Thanks to Godot’s unique feature of having an editor made with the engine itself, we’ve been able to bring the Godot editor to unconventional places, such as the web and Android devices. Building upon the latter, Fredia Huya-Kouadio completed the proof of concept started by Bastiaan Olij years ago, to add support for using the Android editor in an XR context using OpenXR (GH-96624)! You can test the current version by sideloading the APK, currently supported on Meta Quest 3 or Quest Pro.
10+
contributors:
11+
- name: Fredia Huya-Kouadio
12+
github: m4gr3d
13+
- name: Bastiaan Olij
14+
github: BastiaanOlij
15+
read_more: https://github.com/godotengine/godot/pull/96624
16+
---
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
type: entry
3+
section: highlights
4+
rank: 3
5+
anchor: "interactive-in-game-editing"
6+
title: "Interactive in-game editing"
7+
blockquote: "Step into your projects"
8+
text: |
9+
You can now modify your game from within the editor while it is running or paused. This includes clicking on elements within the scene, allowing you to explore your game worlds in ways not possible before.
10+
contributors:
11+
- name: Michael Alexsander
12+
github: YeldhamDev
13+
read_more: https://github.com/godotengine/godot/pull/97257
14+
---
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
type: entry
3+
section: highlights
4+
rank: 4
5+
anchor: "ubershaders"
6+
title: "Ubershaders"
7+
blockquote: "uber-exciting!"
8+
text: |
9+
Ubershaders are at load time pre-compiled versions of each shader with all their features.
10+
11+
These shaders becomes the fallback whenever a new object is drawn, so that freezing - as we wait for the more specialized shader pipeline in the background to compile - becomes a thing of the past. This technique therefore completely avoids shader stutter!
12+
13+
The improvement from this change will be noticeable in most games without requiring any content changes. In some cases, the ubershaders won't work however - refer to the workarounds for shader stutter in the official documentation to learn about simple fixes.
14+
15+
We are already in the process of updating our existing shaders to take advantage of this new infrastructure.
16+
contributors:
17+
- name: Darío
18+
github: DarioSamo
19+
read_more: https://github.com/godotengine/godot/pull/90400
20+
---
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
type: entry
3+
section: highlights
4+
rank: 5
5+
anchor: "jolt-physics-module"
6+
title: "Jolt physics module"
7+
blockquote: "Jolt into action"
8+
text: |
9+
This module has been the de-facto physics engine for many Godot developers since its inception in late 2022, so it only made sense to promote it to an official addon for more users to find.
10+
11+
Now the Godot Jolt maintainers have taken it one step further: integrating the module into the engine directly. A process that ended up requiring over 500 files and 115 thousand lines of code!
12+
13+
While this PR might be one of the most rigorously tested ones, we are eagerly awaiting your feedback (and GitHub issues) to eventually be able to drop the "experimental" label on this addition. Until then, you have to enable this alternative to Godot Physics in the project settings. Before you do, make sure to check if your interests/use-cases are properly supported in the documentation.
14+
contributors:
15+
- name: Mikael Hermansson
16+
github: mihe
17+
- name: Jorrit Rouwe
18+
github: jrouwe
19+
read_more: https://github.com/godotengine/godot/pull/99895
20+
---
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
type: entry
3+
section: highlights
4+
rank: 6
5+
anchor: "game-window-embedding"
6+
title: "Game window embedding"
7+
blockquote: "PLACEHOLDER"
8+
text: |
9+
PLACEHOLDER
10+
contributors:
11+
- name: Hilderin
12+
github: Hilderin
13+
read_more: https://github.com/godotengine/godot/pull/99010
14+
---

pages/releases/_includes/feature.html

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,24 @@ <h4 class="c-title">
4242
{% else %}
4343
{% assign contributors = feature.contributors %}
4444
{% endif %}
45+
46+
{% assign contributors_json = "[" %}
47+
{% for contributor in contributors %}
48+
{% assign contributors_json = contributors_json | append: "{" | append: '"name": "' | append: contributor.name | append: '", "github": "' | append: contributor.github | append: '" }' %}
49+
{% if forloop.index != forloop.length %}
50+
{% assign contributors_json = contributors_json | append: "," %}
51+
{% endif %}
52+
{% endfor %}
53+
{% assign contributors_json = contributors_json | append: "]" %}
54+
4555
<div class="c-link"
46-
data-contributors="{{ contributors | join: ',' }}"
56+
data-contributors='{{ contributors_json }}'
4757
data-read-more="{{ feature.read_more }}"
4858
>
4959
<!-- For no-script users. -->
5060
<a href="{{ feature.read_more }}" target="_blank">Read more</a>
5161
<small>
52-
Contributed by {% for contributor in contributors %}<a href="https://github.com/{{contributor}}" target="_blank">{{ contributor }}</a>{% if forloop.last != true %}, {% endif %}{% endfor %}
62+
Contributed by {% for contributor in contributors %}<a href="https://github.com/{{contributor.github}}" target="_blank">{{ contributor.name }}</a>{% if forloop.last != true %}, {% endif %}{% endfor %}
5363
</small>
5464
</div>
5565
</div>

0 commit comments

Comments
 (0)