- Move all demo projects that don't require Forward+/Mobile-only features
to the Compatibility rendering method. This improves performance significantly
on low-end devices and ensures visuals are identical to a web export
of the demo.
- Set deadzone on all inputs to 0.2 for better gamepad usability.
- Remove reliance on `default_env.tres` to use built-in Environment
resources in the main scene instead (which follows the preview environment
workflow).
- Remove notices pointing to GDNative or VisualScript, since both were
removed in 4.0.
- Various bug fixes and usability tweaks to 10+ demos.
* Remove unnecessary use of `self`
* Connect to signals directly over `connect("name")`
* Use `call_deferred` on callables over `call_deferred("name"))`
* Emit signals directly over `emit_signal("name"...)`
Rework GUI in 3D Demo to handle mouse events via
Physics Picking instead of in _unhandled_input.
This brings several benefits:
- Correctly handle cases, where the 3D-GUI is located behind other
collision objects.
- Proper passive hovering support
This allows also to make simplifications in the code, because
3D-mouse position no longer needs to be calculated manually.
The 3d_scaling demo was updated to use the built-in 3D scaling mechanisms
in the Forward+ and Mobile renderer (Compatibility in 4.3).
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
This re-ports the following demos to Godot 4 following their latest `3.x` versions:
- 2D Navigation with AStarGrid2D
- 2D JRPG Demo
- 2D Isometric Game
- 2D Platformer
Some tweaks have also been made in the process, such as split screen players
having different colors in the 2D Platformer demo.
Co-authored-by: Nonparoxysmic <69494951+Nonparoxysmic@users.noreply.github.com>
- Add fog shader example courtesy of alghost
(https://godotshaders.com/shader/moving-gradient-noise-fog-mist-for-godot-4/).
- Add textured floor to make volumetric fog easier to see.
- Add keys to adjust volumetric fog quality (higher values are sharper).
- Increase volumetric fog energy on one of the SpotLights to show
the difference.
All demos were opened with Godot 4.2.1, with the mesh format
upgraded for 3D demos.
The 3D antialiasing demo now uses Extra Cull Margin on the last
object to prevent it from disappearing too early when the camera
rotates (due to its use of shader-based animation).
On mobile platforms, the vehicle automatically accelerates.
Touch the left and right edges of the screen to steer.
Touch the middle of the screen to brake/reverse
(this also temporarily stops acceleration).
- Fix braking not working correctly (and make breaking stronger
to make vehicles easier to control at high speeds).
- Allow using the D-Pad for steering and X/Square for braking.
- Tweak exhaust particles to be more subtle and fade more smoothly.
- Change spawn position to a location that's more straightforward
to drive.
- Add colored planes below some examples to make antialiasing
differences easier to see.
- Change various textures to make antialiasing differences easier to see.
If the bomb and the player are at the same position, then `intersect_ray` returns no result.
`query.hit_from_inside = true` fixes the problem. The other changes were made automatically by Godot.
- Add a visible coin glow around coins to make them more noticeable
at a distance.
- Enable Billboard Keep Scale material property on particle draw
materials that required it.
- Use transparent additive shading as intended for the bullet trail.
- Tweak blob shadow texture and decal to be slightly more subtle.
- Expose FSR Sharpness when FSR is enabled.
- Allow more granular controls for rendering scale factor.
- Add a FPS limit option when TAA is enabled, as TAA convergence quality depends
on the rendered framerate.
- Display viewport resolution (taking 3D resolution scale into account)
in the top-right corner.
- Decrease directional shadow bias to reduce peter-panning.
- Fix some particles not being scaled over a lifetime curve.
This is a 3D version of Dodge the Creeps, originally made by GDQuest
and updated to 4.0 by myself.
Some changes are included for more polish:
- Invisible walls were added so that you can't exit the playable area anymore.
- Pillars have a different color to be more visible.
- Physical keys are now used, so that you can use WASD movement
on any keyboard layout.
- The right mouse button can now be used to jump.
- Visual settings were tweaked to match other 3D demos.
- Project icon was upscaled to 128×128 using Waifu2x, so that it
looks better on hiDPI displays.
- `.blend` files were resaved with compression enabled.
Co-authored-by: Nathan Lovato <nathan@gdquest.com>
Just following the rules! Moved up the icon statements above the other includes. This got rid of errors preventing plugin from loading.
There's still a race condition when the plugin starts up. It's looking for an editor interface child that hasn't been loaded yet. May want to use _ready to define some behavior before _enter_tree is used.
The function 'stringify()' is a static function but was called from an instance. Instead, it should be directly called from the type: 'JSON.stringify()'.<GDScript Error>STATIC_CALLED_ON_INSTANCE
<GDScript Source>save_load_json.gd:37
Also converted the PNG files to lossless WebP and removed an unused .import file while I was at it.
The rest of the changes were done automatically by the editor when I opened the files.
- Draw fake reflections for spectrum bars.
- Increase the bars' height to better make use of the window space.
- Use Compatibility rendering method for greater performance
and compatibility.
- Update screenshot and icon.
- Remove a stray `.import` file.
- Add a Tree example.
- Add more tabs to make tab scroll buttons visible.
- Use default project font, which is now a DynamicFont in Godot 4.0.
- Make splitters thinner but have a larger draggable area,
thanks to the new Minimum Grab Thickness theme item.
- Tweak background color to be more visually pleasant.
- Use Compatibility backend to maximize performance and compatibility.
- Disable V-Sync to reduce input lag (while keeping low-processor mode).
- Readd LightmapGI example.
- Allow toggling between the Once and Always update modes for the
ReflectionProbe.
- Add a Decal node to act as a blob shadow for dynamic objects.
- Halve SSAO intensity for a better apperance in the demo's flat,
bright surfaces.
- Halve ambient light sky contribution when using the disabled
or lightmap-based GI modes. This prevents the level's shaded areas
from looking too bright and blue (with lightmaps, this change only
affects dynamic objects.)
- Enable FXAA and debanding for a better appearance.
The signaling server protocol has been rewritten to use JSON format to
be more readable.
Lobbies now support both mesh and client/server modes (selected during
creation).
The client/server mode uses the SceneMultiplayer relay mode as
implemented in beta4.
The demo now uses an RPC for pinging, and connects to the MultiplayerAPI
instead of using the raw MultiplayerPeer.
Uses new unified StreamPeer, dropped the multiplayer part (in favor of
the dedicated WebSocket demo), add reference WebSocketClient and
WebSocketServer signal-based implementations that can be used as drop-in
nodes in any project. Might be worth maintaning it as a separate addon.
The clipping happened because the panel was see-through.
The saving is also fixed by changing some of the project settings.
Update 2d/gd_paint/paint_root.tscn
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
changeback to get_node
Going through the demo's mentioned at: #697
to fix and prepare them for 4.0.
It was mentioned that there were minor bugs (errors printing in console), found non of that, only some logs about awaits not being needed (they were needed). Everything works again now and stretch_mode set to canvas_items.
change vulkan
Part of #697
Demo is working now in 4.0.
There is only one slight issue, but that has to do with the engine viewport system I think. When saving the picture, the framing isn't always correct, really depends how you scaled the window. This could also be a me issue as I use i3 on linux (Tiling window manager).
But otherwise, it's working perfectly.
There is a problem with the automatically exported HTML5 demos. When they use json files for dialogue by example, as in the JRPG demo, the game gets errors as it can't load those specific *.json files.
Update export_presets.cfg
- New graphics settings:
- Field of view.
- Volumetric fog.
- Use Godot's built-in 3D viewport facilities instead of using a SubViewport.
- This also allows for choosing AMD FidelityFX Super Resolution
for resolution scaling, but it's not working yet due to a Godot bug.
- Nearest-neighbor scaling is no longer available. It can be
reimplemented in Godot core and then exposed in the future.
- Separate MSAA from FXAA settings, as both can be used at the same time.
- Add more quality settings for various effect settings.
- Rename sections and setting names to be more "player-oriented"
(even if this results in the actual Godot terminology not being
presented).
- Add performance hints to setting values.
- Add FPS counter and viewport resolution display
(taking the resolution scale into account).
- Add more objects to the test scene and tweak environment settings.
- ACES tonemapping is now used.
- Debanding is now enabled, as this scene requires it to avoid visible
banding.
- Make the emissive box less bright to prevent MSAA and FXAA from
being ineffective on it (due to Godot not supporting correct
HDR antialiasing).
- Remove unnecessary DirectionalLight3D, VoxelGI and ReflectionProbe.
Fixes some of the icons mentioned in #722.
Not sure if they are good enough or not, I'm not an artist in any way.
Changed Icons:
- 2D physics;
- 3D physics;
- Audio device changer;
- Audio mic record;
- GUI Control gallery;
- GUI Pseudo-localization.
Update
Port of the 3.x global illumination demo, with SDFGI support added
and screen-space lighting effect options added (SSAO, SSIL, or both).
Lightmap options were removed as I couldn't get both indirect-only
and fully baked lightmaps to work for now. They can be readded in the
future.
Could possible fix#600.
This demo has some of the basic graphical settings that game devs would want. I tried to keep it minimal because it's just a demo. I hope this is sufficient and that there are enough comments explaining everything. Everything works without any bugs or errors.
Small fix
Small script format fix
Small fix
Small fix
Changed readme
Update 3d/3d_settings_menu/project.godot
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
Fixing many mistakes
Changed folder name
Deleted git files
changed the default size with the project settings variant
Removed some debug info
Added extra features
Changed the layout into sections,
Added some extra settings and features.
Waiting for Calinou to see what he would like to change/add.
Small fixes
Getting the start viewport in ready
Fixed some issues of things which changed in Godot 4 and I also tried replicating this issue #599 but I guess that is not longer an issue in Godot 4.0? Tested and fixed everything on Godot 4.0alpha5.
Small fix
Edited the project settings to match the new Godot 4 standard and fixed
the script errors which were making it impossible to run this demo.
Now everything works properly for the 4.0-dev version.
Changed to Vulkan Mobile + Changed argument name
Followed the suggestions of aaronfranke
Changed viewport size
Not really any fixing were required, some data changed between versions
when opening and testing everything. Did some changes to the project
settings (2d to canvas_items). Everything works fine without problems.
Change to Vulkan Mobile
small edit
Adding settings for mix_rate, stereo and format for Mic Record Demo
Adding settings for mix_rate, stereo and format for Mic Record Demo
small edit
Adding settings for mix_rate, stereo and format for Mic Record Demo
small edit
Adding settings for mix_rate, stereo and format for Mic Record Demo
small edit
Adding settings for mix_rate, stereo and format for Mic Record Demo
small edit
Adding settings for mix_rate, stereo and format for Mic Record Demo
small edit
Adding settings for mix_rate, stereo and format for Mic Record Demo
Fixing project settings
Small fixes
Vulkan to Vulkan Mobile,
Changed window size.
Made the usual changes to the project settings and tested to see if
everything works.
Everything works fine!
Small fixes
Changed to Vulkan Mobile.
Changed viewport size.
A lot of nodes have changed which made this demo not work properly
anymore, nor display everything properly anymore. Everything is looking
like it did before and all buttons are working again.
There is however this slight bug in the engine right now which makes it
not possible to press menu buttons or option buttons if the window is
not the same as the content_scale_size of the main window. (By example
when you resize the window)
This is because the hitboxes for those buttons don't get notified of the
change in screen size which makes them stay in the same place where they
would be when resizing the window.
For the rest everything is working perfectly now, everything also has
the new Godot 4 default theme style.
Fixes Control Gallery Demo for 4.0-dev small edit
Forgot to center one of the labels + updated screenshot
Changing Vulkan to Vulkan Mobile
This allows those demos to run on a greater range of devices.
Particles2D nodes were converted to CPUParticles2D for compatibility
with GLES2.
Physics-Based 2D Platformer demo now uses the same stretch mode
as 2D Platformer for consistency.
A GLES2-specific tweak is now documented for the GUI in 3D demo.
This also tweaks shadow quality and performance to find a better
balance and result in smoother shadows, including when using GLES2
(thanks to the use of PCF13 shadow filter mode).
In demos that allow falling back to GLES2, ETC1 texture import
is enabled to allow exporting to Android or HTML5 without having
to tweak anything.
Minor update to reflect an API change in v1.1 of the
Google Play Billing Library plugin.
The queryPurchases function changed to be asyncronous,
added a query_purchases_response callback to process
the results.
This change is dependent on the contents of:
https://github.com/godotengine/godot-google-play-billing/pull/25
This is an example of Godot's volumetric fog capabilities
with the Vulkan renderer.
Showcased features are:
- Positive/negative density volumes that affect albedo (incoming light)
and emission.
- Box/ellipsoid shapes, height falloff, and density modulation using a
3D texture.
- Temporal reprojection for greater stability and avoiding flickering.
- The difference is demonstrated with a moving fog volume.
- Global density adjustment. With FogVolume nodes that have a
positive density, it's possible to apply volumetric fog only in
specific areas.
When pressing with two fingers at once and pinching, an old coordinate contained in the curr_state dictionary gets added to the base_state dictionary, which causes unintended jumps in both scale and rotation. By clearing base_state the script functions as intended.
- Create bodies by duplicating the ones from the scene to allow custom
settings on them for testing purpose
- Rename 3D test with multiple groups of bodies "Contact Islands"
instead of "Contacts Extended" for clarity
- Added "Contact Islands" test for 2D
- Fixed log spamming with "Contact Islands" tests due to printing log
messages for each group of bodies
- Added parameter to randomize spawn positions in order to make
contact separation more balanced (avoids artifacts like a huge column
for circles in 2D test)
- Using smaller shapes and larger amount of objects by default to test
more extreme case
Fix custom collision shape drawing in physics tests:
CollisionShape debug draw has changed in 3.3 and now requires a body
to be rendered, so the trick to display custom physics shapes in the
physics tests had to be updated.
Cylinder support:
Now cylinders are supported in Godot Physics, so the exception to avoid
spamming errors when cylinders are used can be removed.
Rigid body picking:
Added mouse-picking to Test Shapes in both 2D and 3D.
- Increase gravity, player speed and air acceleration for a less floaty
feeling.
- Clean up the code to use constants when relevant and remove unused enums.
This demo showcases how to use low-level Servers to achieve better
CPU performance when drawing large amounts of objects.
The code has been updated for Godot 3.2, cleaned up and has received
additional comments.
- Enable anisotropic filtering in 3D demos, and set the quality to
16× on desktop and 4× on mobile.
- Enable 4× MSAA on some 3D demos that didn't use it beforehand.
- On GLES3 demos, disable MSAA on mobile as these demos are often
more demanding.
- Use more conservative framebuffer allocation settings for better
performance.
- Use PCF13 shadow filtering in GLES2 demos on desktop to benefit
from soft shadows in Godot 3.2.4 and later.
In Godot 3.2.3, this will make shadows smoother but still "blocky".
- Use Lossless compression instead of VRAM compression for
small textures such as the voxel demo texture atlas.
Added new test for 2D character controller:
Character - Pixels
Functional test for pixel art related issues around KinematicBody and
RigidBody character controllers.
Adjusted existing tests and added more test cases to cover most use
cases from recent fixed issues and regressions for KinematicBody.
Added a more automated way to run all tests with checks to see which
ones failed in character controller tests.
Also fixed some minor issues with the log scrollbar.
- Increase movement and steering speed significantly.
- Increase gravity slightly for a less floaty feeling.
- Simplify camera code (height is now constant).
- Tweaked camera distance and height to fit each vehicle.
- Fix script error when pressing Escape in the main menu
(the demo will now quit).
It turns out using a TextureRect node isn't necessary :)
The typical ViewportContainer + Viewport setup can be used just
fine to enable filtering on the ViewportTexture returned by the
Viewport.
The performance of the new method is equivalent to the old one.
Most of the code is in the remap folder, but it depends on the gamepad
diagram scene.
It allows remapping of pads to values that godot can understand.
It also comes with some default mapping for the HTML5 platform.
Changed debug collision shortcut from 'D' to 'C' to keep WASD available
for other functions in some tests.
Unbound arrows from UI shortcuts for the same reason.
Two tests for character controller, with options to use RigidBody2D,
KinematicBody2D or KinematicBody2D with RayShape2D.
Tilemap: Tests for moving and jumping within tilemap blocks, with a
specific one-way collision test case scenario based on Block Climb Test
from https://github.com/madmiraal/godot-gym.
Slopes: Tests for moving and jumping in slopes, with different cases
based on snap and stop-on-slope parameters for kinematic bodies.
Start logging physics tick one frame earlier for each operation
Disable debug collision to avoid rendering bottleneck
Fixes in adding/removing bodies to avoid bottlenecks outside of physics
2D: Increase message queue size to allow adding more objects at once
3D: Remove camera to disable rendering altogether
3D: Fix error with create_rigidbody_box missing default value
Add Functional Test / Stack & Pyramid
For testing stack stability.
Add Functional Test / Raycasts
Visually test raycast on different shapes.
Add Performance Test / Broadphase
Add/move/remove lots of non-colliding objects and measure time.
Fix leaks on exit
Some Nodes are copied and removed from the scene to be used as templates,
they need to be freed manually on exit.
Fix Performance Test / Contacts
Positions adjusted, some shape types were not created at the center.
<!-- The list of demos will be inserted above by the CI process. -->
</ul>
<h2>Unavailable demos</h2>
<ul>
<li><code>2d/hdr/</code>: Not supported on HTML5 yet.</li>
<li><code>3d/global_illumination/</code>: Not supported on HTML5 yet (freezes the browser).</li>
<li><code>3d/voxel/</code>: Not supported on HTML5 yet.</li>
<li><code>audio/device_changer/</code>: Not supported on HTML5 due to browser limitations.</li>
<li><code>loading/background_load/</code>: Not supported on HTML5 yet.</li>
<li><code>loading/multiple_threads_loading/</code>: Not supported on HTML5 yet.</li>
<li><code>loading/threads/</code>: Not supported on HTML5 yet.</li>
<li><code>misc/matrix_transform/</code>: Results are only visible in the editor.</li>
<li><code>mobile/android_iap/</code>: Only relevant on native Android.</li>
<li><code>mobile/sensors/</code>: Not supported on HTML5 yet.</li>
<li><code>mono/*/</code>: Not available yet (requires Mono-enabled HTML5 build).</li>
<li><code>networking/*/</code>: Doesn't make sense to be hosted on a static host, as the server must be hosted on the same origin due to the browser's same-origin policy.</li>
<li><code>plugins/*/</code>: Only effective within the editor.</li>
States are common in games. You can use the pattern to:
1. Separate each behavior and transitions between behaviors, thus make scripts shorter and easier to manage.
2. Respect the Single Responsibility Principle. Each State object represents one action.
3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
You can read more about States in the excellent Game Programming Patterns ebook."
bbcode_text = "This example shows how to apply the State programming pattern in GDscript, including Hierarchical States, and a pushdown automaton.
States are common in games. You can use the pattern to:
1. Separate each behavior and transitions between behaviors, thus make scripts shorter and easier to manage
2. Respect the Single Responsibility Principle. Each State object represents [b]one[/b] action
3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
You can read more about States in the excellent [url=http://gameprogrammingpatterns.com/state.html]Game Programming Patterns ebook[/url]."
text = "This example shows how to apply the State programming pattern in GDscript, including Hierarchical States, and a pushdown automaton.
States are common in games. You can use the pattern to:
@@ -34,6 +20,3 @@ States are common in games. You can use the pattern to:
3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
You can read more about States in the excellent Game Programming Patterns ebook."
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.