Commit Graph

1491 Commits

Author SHA1 Message Date
Hugo Locurcio
af2b9b1f30 Add a 3D sky shaders demo (#809)
This uses https://github.com/Rytelier/godot-sky-and-volumetric-clouds
as a base, with several changes made:

- Spheres are now used to represent radiance map reflections of varying
  roughness and metallic values.
- A day/night cycle is now featured.
- Mipmaps are enabled on the weather texture as an optimization.
- The default radiance map settings are more conservative to account
  for the real-time sky shader.
  - This makes reflections lower quality, but it's not too noticeable
    in most real world scenes (especially if using GI techniques for reflections).
- Debanding is now applied in the project settings, rather than on the sky shader.
  This is significantly faster (over 0.1 ms saved on a RX 6900 XT in 3840×2160).
  It also has the benefit of working on materials, which can exhibit banding
  if not textured.
  - The sky shader has debanding commented out in case it's needed.
    This debanding also applies to the lower half of the sky as well in this case,
    as it was required to get rid of noticeable banding on the lower half.
- Cloud coverage and density uniform hints now allow values as low as 0.001.

Co-authored-by: Rytelier <45795134+Rytelier@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2025-10-02 10:44:01 -07:00
Hugo Locurcio
6424e02ebf Add fallbacks and mention non-working features when using Compatibility or the Web platform (#1132)
- Make 3D lights with shadows darker when using Compatibility to better
  match the appearance of Forward+/Mobile, due to the use of sRGB blending
  for those lights.
- Silence some warnings when running projects with the Compatibility
  rendering method, such as the one about 2D MSAA not being supported.
- Rebake lightmaps in Global Illumination to improve quality and reduce
  light leaking with improvements from 4.3.
  - Increase probe density for dynamic objects, and mark the moving box
    as a dynamic object for GI purposes.

This is done to improve the experience with the web-based demos,
which always run with the Compatibility rendering method.
2025-10-02 10:31:42 -07:00
Hugo Locurcio
a5bce2f144 Fix bright streaks in tunnel in Platformer 3D demo (#1254)
This adjusts reflection probes following the blend distance changes
in 4.4.
2025-10-02 10:15:15 -07:00
Hugo Locurcio
a0f59648f2 GitHub Actions: Check URLs using lychee (#1169)
This makes it possible to be aware of dead links and replace
them with other resources (such as archived versions) as
soon as possible.
2025-10-02 00:33:27 -07:00
Hugo Locurcio
57daa67c23 Fix look_at_from_position() usage in Squash the Creeps (3D) (#1165)
The mob's orientation was previously shifted according to the player's
height, which could lead to collision and movement issues that were
difficult to diagnose.
2025-10-02 00:14:08 -07:00
Bastiaan Olij
711822a319 Modify shader example to show using built-in includes (#1086) 2025-10-02 00:04:11 -07:00
Markus Sauermann
10eb2807b8 Add Split Screen Demo showing input handling (#1023)
* Add Split Screen Demo showing input handling

* Style fixes, layout improvements, update to Godot 4.5

---------

Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2025-10-01 22:56:48 -07:00
Allyson Chan
0cff177d59 Updated Multiplayer Pong C# to Godot 4.2 (#1045) 2025-10-01 22:12:04 -07:00
Hugo Locurcio
05aeb11de9 Add a 3D visibility ranges (HLOD) demo (#860) 2025-10-01 21:47:36 -07:00
Yaxian
1d8fa9c44d Add player_state dictionary to manage player state names for FSM demo (#1143)
* Add player_state dictionary to manage player state names for FSM demo

* Use a constant typed Dictionary of StringNames and update to Godot 4.5

---------

Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2025-10-01 21:33:27 -07:00
MJacred
69b317692e Fix content_scale_* updates: properties are in Window not (Sub-)Viewport (#1184)
While the demo seems to work, the editor won't allow the user to jump to the docs when using Ctrl+LMB
2025-10-01 21:09:48 -07:00
Hugo Locurcio
649360f17e Fix FPS-dependent movement in Navigation AStar demo (#1227)
Previously, the way in which the spaceship steered depended
on the rendered framerate.

This moves ship movement to the physics step to avoid this, and
enables physics interpolation for smooth motion.
2025-10-01 19:55:07 -07:00
Hugo Locurcio
a5f9289d13 Fix tickrate-dependent physics in Voxel demo (#1224)
Fix mouse sensitivity being dependent on window size by using `InputEventMouseMotion.screen_relative`.
2025-10-01 19:44:48 -07:00
Hugo Locurcio
5f4a9e409f Use InputEventMouseMotion.screen_relative where relevant in all demos (#1232)
This provides mouse sensitivity that is independent of the viewport
size, without needing to query for project settings.

This also inverts the mouse motion direction in the 3D navigation demo
to better match expectations, and increases mouse sensitivity in the
Window Management demo to be closer to other demos.
2025-10-01 18:54:19 -07:00
bruvzg
bdc33d1568 Add basic accessibility features demo. (#1238) 2025-10-01 18:41:42 -07:00
Hugo Locurcio
dc4abff7d0 Use GodotPhysics3D in Voxel demo to work around performance issue (#1252)
This avoids stuttering during world generation due to mutating
compound shapes being slow in Jolt Physics.

This is especially noticeable in the Flat Grass world due to
the higher number of voxels being generated.
2025-10-01 16:01:17 -07:00
Hugo Locurcio
a64cebdf7a Fix physics joint warning in Truck Town when using tow truck (#1251)
Following the switch to Jolt Physics, 3 warnings were printed every
time you selected the tow truck in Truck Town, as custom joint bias is not supported.

This reverts 3 of the joints to use the default bias, which appears to
have no negative impact on behavior on either Jolt Physics or GodotPhysics3D.
2025-10-01 11:02:59 -07:00
Hugo Locurcio
efb56dcee4 Add a 3D ragdoll physics demo (#1234) 2025-09-30 13:05:04 -07:00
Hugo Locurcio
0540894062 Add a 3D soft body physics demo (#1228) 2025-09-30 11:16:47 -07:00
Aaron Franke
49718c4b16 Merge pull request #1223 from Calinou/add-3d-physics-interpolation-demo
Add 3D physics interpolation demo
2025-09-30 09:37:52 -07:00
lawnjelly
c70741bac0 Add 3D physics interpolation demo
Demonstrate first person shooter and third person shooter cameras.
2025-09-30 18:14:22 +02:00
Lukas Tenbrink
78c04bbd28 Migrate contributing guidelines to the contributing docs (#1246) 2025-09-30 08:43:17 -07:00
Hugo Locurcio
9fb7d5d211 Add a custom logging demo (#1242)
This demo showcases a custom logger implementation, which runs in parallel
to the built-in logging facilities (including file logging). The custom logger
displays all messages printed by the engine in an in-game console.
2025-09-26 23:11:38 +02:00
Hugo Locurcio
84eabb3cf7 Add .clang-format and use it to format shader files (#1249) 2025-09-22 16:15:54 +02:00
David Briscoe
aecf661c9c Fix and improve Role Playing Game: Gamepad, TileMapLayer, upgrade for 4.4.1 (#1248)
* Improve gamepad behaviour in rpg

Fix gamepad can't do dialogue.
Fix character often plays bump animation with gamepad when there's no
obstacles around.

Add gamepad A to ui_accept so gamepads can press buttons in dialogue and
combat.

Use get_vector so we get an automatic deadzone on our input.

Round our input direction so we don't pass Vector2i(0,0) to
request_move, get denied, and then do a bump animation.

* Use SpriteFrames instead of animating texture

Seems like Godot 4 doesn't allow toggling AnimationPlayer tracks by
making children editable so the texture is no longer being set and the
player is invisible. Regardless, this workflow is also not scalable to
multiple enemy types. Instead, use SpriteFrames to setup different
visuals for each slime.

Triggers animations from code alongside AnimationPlayer calls because
doing it in AnimationPlayer seemed unnecessarily complex.

* Give all slimes a common base class

Split player input handling from walker to allow both slimes to use the
same visual setup. In a real game, you'd want this kind of setup so
enemies are able to walk on the grid too.

Remove unused actor.gd -- looks like this was an early version of
walker.gd.

Setup opponent slime as type=Actor because otherwise you can't fight
them.

* Convert TileMap to TileMapLayer

Used "Extract TileMap layers as individual TileMapLayer nodes" in the
TileMap editor and removed the 0 layer argument from functions in
grid.gd

* Explain and rename facing direction node

When I first started looking into the character, I couldn't figure out
what this play button texture was for. After experimenting, it might be
an old version of the character visuals or a demo to show how to make
your character rotate.

* Fade to black between scenes

Fix blue screen when entering combat.

Our fade ColorRect was hidden so it never displayed. We removed the
exploration scene before fading so the fade started with an empty scene
with a blue skybox.

* Loop idle animation in combat

Add AnimationTree to combat character setup so we can tell when the
take_damage animation completes. This was harder than expected because
by default Godot modulates to black and sets scale to 0 unless you
specify otherwise with the RESET animation.

* Add a CanvasLayer above each clickable Control root

Fix mouse can't click buttons.

Seems like we're not able to click buttons in Godot 4 without a
CanvasLayer root. Adding that makes it work, but required some
restructuring to point at the correct node. In cases like combat+ui,
change it to emit a signal to use the "call down, signal up" pattern.

* Remove error comment that no longer occurs

Neither winning nor fleeing triggers this warning on Godot
v4.4.1.stable.official [49a5bc7b6].

* Rename parent -> grid

Make it clearer that the parent of the player and other pawns is
expected to be our Grid class.
2025-09-16 15:42:25 +02:00
0x1hue
b45ef5497b Fix uniform sets in Compute Texture demo (#1247)
- Move texture references into separate vars for clarity.

This fixes compatibility with 4.5 while preserving compatibility with 4.4.1.
2025-09-14 01:35:59 +02:00
Aaron Franke
2fc0497915 Merge pull request #1237 from godotengine/dependabot/github_actions/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-08-11 21:51:41 -07:00
dependabot[bot]
d588eb58ce Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 02:09:28 +00:00
Christen Lofland
bf4d1038d6 Minor spelling fixes in strings, comments and non-code files. (#1236)
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-08-04 17:19:57 -07:00
Wilson Enrique Alvarez Torres
48aaefbf12 Simplify mesh custom drawing demo (#1231)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-07-22 02:52:01 +02:00
Switchbreak
ba8718ed09 Fix "Parse message failed" error in WebRTC Signaling Demo Project (#1209) 2025-07-18 16:36:02 +02:00
Matthew
219eeacced Merge pull request #1218 from BastiaanOlij/openxr_render_models_demo
Added an OpenXR render models demo
2025-07-14 15:59:26 -04:00
Matthew
28e2fc1f15 Merge pull request #1229 from Calinou/control-gallery-add-foldablecontainer
Add FoldableContainer to the Control Gallery demo
2025-07-13 08:32:49 -04:00
Bastiaan Olij
d438fcc8d6 Added an OpenXR render models demo 2025-07-11 12:57:44 +10:00
Hugo Locurcio
7d525f4c9b Add FoldableContainer to the Control Gallery demo
This bumps the demo requirement to Godot 4.5, as FoldableContainer
is only present in 4.5 and later.
2025-07-08 01:04:55 +02:00
Simon Ruderich
89b2660d69 Migrate Navigation AStar demo to TileMapLayer and perform various cleanups (#1208)
* navigation_astar: replace deprecated TileMap with TileMapLayer

* navigation_astar: use get_used_cells() instead of iterating over region

This also removes the confusing use of Tile.OBSTACLE. The tile enum is
mostly used for atlas coordinates but in this case it is compared with
the source id which only happens to be zero as well.

* navigation_astar: use constants for atlas coordinates

This makes it more obvious how to set cells in larger tilesets where the
second position is not zero.

It also removes the constant OBSTACLE which is unused since the last
commit.

* navigation_astar: mention get_used_rect()

Using it in this example is more complex (as the border has no cells)
but it's good to know.
2025-06-30 18:09:02 +02:00
smix8
9acb5528b6 Update NavigationChunk demos (#1221)
Updates NavigationChunk demos for `NavigationMeshSourceGeometryData2D.get_bounds()`
function and new NavigationAgent no post-processing option.
2025-06-25 19:21:12 +02:00
Sebastian Javier D'Alessandro Szymanowski
1280ef63e7 Fix project main scene path in Pong demos (#1217)
Signed-off-by: Sebastian Javier D'Alessandro Szymanowski <sdalessandro@fi.uba.ar>
2025-06-25 19:09:48 +02:00
Aaron Franke
0d6b7722c0 Merge pull request #1098 from BastiaanOlij/openxr_hand_tracking_demo_settings
Updated hand tracking demo based on Godot changes in PR 95153
2025-06-24 03:29:37 -05:00
Bastiaan Olij
dbe9f48dcc Updated OpenXR hand tracking demo based on Godot changes in PR 95153 2025-06-24 11:45:33 +10:00
Rémi Verschelde
8be477ce38 Merge pull request #1212 from BastiaanOlij/mobile_vr_interface_demo
Simple demo for Mobile VR Interface
2025-06-21 11:43:49 +02:00
Bastiaan Olij
16f4b10bc6 Simple demo for Mobile VR Interface 2025-06-19 15:01:40 +10:00
Rémi Verschelde
1cd5f27f8e Merge pull request #1211 from Calinou/move-compute-shader-heightmap-demo
Move Compute Shader Heightmap demo to the `compute/` folder
2025-06-09 16:55:12 +02:00
Hugo Locurcio
da2f21baac Move Compute Shader Heightmap demo to the compute/ folder
- Use GitHub admonition syntax in its README.
2025-06-09 16:31:35 +02:00
Hugo Locurcio
c97a648356 Improve Run-time File Saving and Loading demo (#1196)
- Add runtime MP3 and WAV loading with example files.
- Add runtime FBX loading (but no example files, due to known issues with
  the current FBX runtime loading implementation).
- Use supersampling for the 3D preview to further improve quality.
- Shorten file path to example glTF scene.
- Mention audio duration in the UI when loading an audio file.
2025-05-30 20:13:31 +02:00
Hugo Locurcio
f78efc69ee Add a custom drawing in 2D demo (#1185) 2025-05-30 17:29:06 +02:00
Hugo Locurcio
dc3670e25a Add a 3D tonemapping and color correction demo (#857)
This showcases various tonemapping operators and their interaction
with several color correction textures (1D and 3D).

A script generating neutral 3D LUT textures is also included.

Co-authored-by: Allen Pestaluky <allenpestaluky@gmail.com>
2025-05-30 16:08:51 +02:00
Varga
a445398c60 Add an audio effects demo (#1201)
Co-authored-by: dkleitsas <86194775+dkleitsas@users.noreply.github.com>
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-05-29 02:43:03 +02:00
K. S. Ernest (iFire) Lee
3ced51c91c Merge pull request #1183 from BastiaanOlij/openxr_hand_fallback_modifier
OpenXR: Added a fallback modifier implementation
2025-05-27 22:33:28 -07:00
K. S. Ernest (iFire) Lee
1f58baa94c Merge pull request #1197 from PizzaLovers007/rhythm-game
Add a simple rhythm game demo
2025-05-22 14:15:54 -07:00