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>
- 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.
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.
* 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>
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.
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.
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.
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.
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.
* 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.