- Rename various labels for readability.
- Use infinity symbol when FPS limit is set to 0.
- Use lossless compression for ship textures since they are low-resolution,
and applied to a large object (making VRAM compression look bad).
- Restore support for multiple aspect ratios which was inadvertently
removed in a previous PR.
- Fix corner fix preview incorrectly using VRAM compression (it's
low-resolution, and only displayed in the editor anyway).
After opening the isometric dungeon demo, there was a warning about TileMap
having been deprecated so I updated it to use the new TileMapLayer instead.
* General proofreading for grammar and spelling
* General formatting
* Addition of appropriate literals where appropriate, i.e. `&"foo"` for `StringName` cases and `^"foo/bar"` for `NodePath` cases
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.
* 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.
- 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.
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>
- Add options for physics ticks per second, time scale, max physics steps per frame
and physics interpolation to the 2D and 3D physics tests demos.
- Physics ticks per second are always multiplied by time scale so that
time scale does not affect the physics simulation quality.
- Enable 4× MSAA for better debug shape display. Remove meshes/lights as
the debug collision fill make these unnecessary.
- Switch to the Mobile rendering method in the 2D physics tests demo
to allow for 2D MSAA, as it's not implemented in Compatibility yet.
- Improve collision shapes color in the 2D and 3D physics tests demos
for better visibility. Each PhysicsBody type now has its own collision
shape color.
- Allow placing/breaking blocks when further away (up to 5 blocks instead of 4).
- Add a background to the debug display to improve readability on bright backgrounds.
- Simplify coordinate display using the `%v` placeholder available in 4.3 onwards.
This was most common at low physics tick rates like 20 TPS.
This also fixes an issue with the RigidBody character demo having
movement speed depending on the physics tick rate.
JSON.parse_string() parses all numbers as floats, even if there are no decimals.
`str(JSON.parse_string('{"type": 3}').asdf)` would result in `"3.0"`, which is not a valid int.
Because of this, the demo is not working.
The '$AnimatedSprite2D.play()' is called at the beginning in the '_ready' function,
when it should actually be called at the end, after selecting the animation.
* Update Platformer 2D to Godot v4.3
Before this change, if you tries to import the Platformer 2D project
using Godot v4.3 (the latest stable version of Godot, at the moment),
you would get the following warning:
> Warning: This project was last edited in Godot 4.2.
> Opening will change it to Godot 4.3.
>
> Open anyway? Project will be modified.
This change updates the project to Godot 4.3 so that that warning no
longer appears. When you upgrade to a newer version of Godot, sometimes
certain files will automatically be updated by the Godot Editor after
the upgrade has been completed. Specifically, the files won’t get
updated until after they’re opened in the Godot Editor. When creating
this commit, I tried to open every single file for Platformer 2D in the
Godot Editor to make sure that all of those automatic changes are
included in this commit.
* Replace Platformer2D’s TileMap with a TileMapLayer
Before this change, the Platformer 2D used a TileMap Node. TileMaps are
deprecated. TileMapLayers should be used instead [1].
[1]: <https://docs.godotengine.org/en/4.3/classes/class_tilemap.html#tilemap>
Make it more obvious to newcomers how this demo works so they can
replicate it in their projects.
Change the text to point to how this is working.
Add Editor Descriptions to make it clearer how this is setup.
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
- Increase physics ticks per second to 120, so that UI interactions feel
smoother and have lower input lag. This happens since input is governed
by the physics tick due to the use of physics picking.
- Add a placeholder to the LineEdit and select a default option in the OptionButton.
Physics picking requires that the SubViewport has a consistent state
of the mouse-enter/exit notifications.
Godot V4.3 was changed in comparison to V4.2, so that it now requires
this additional step.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
Four moods are available: sunrise, day, sunset, night. Sunset and night
also feature artificial point lights placed in the town scene.
The mood can be set on the main menu before playing. It can also be cycled
during gameplay by pressing M or D-Pad Down.
This comes with other improvements:
- Demos now work on desktop and mobile browsers, as ETC2 import is now
automatically enabled before exporting each demo.
- Progressive web app is available for each project.
- Can be added to the home screen on a device for a closer-to-native experience.
- Cross-origin isolation headers are automatically added, so that the export
works with threads enabled despite being hosted on GitHub Pages
(which doesn't send these headers).
Several demos will need further tweaks to look better when using
the Compatibility rendering method. Currently, many 3D demos appear
too bright due to lights with shadows enabled using sRGB blending.
Also, many demos will need to be modified to indicate which parts
of them are not supported when running on the web platform, or
when using the Compatibility rendering method.
- Display more return values of Engine/OS methods such as system fonts,
memory information and security information.
- Add headless support (the generated report is also printed to stdout).
- Improve theming in the generated report.
- Hide video adapter type if this information can't be queried in the
current rendering method.
- Update C# script for Godot 4.x platform names.
- Add reflection probes for each test sphere, which can be toggled using
a new dropdown with 3 options (no reflection probe, reflection only,
reflection + ambient). The cull and reflection masks are configured
on each reflection probe so that spheres don't self-reflect, but other
spheres still appear in each sphere's reflections. Probe extents are made
very large to prevent any visible fading, and the test beds don't
receive the reflection probe's ambient or reflection.
- Improve ice material visuals by giving it some opacity.
- Use lossless compression on all textures, as their relatively low
resolution and count by today's standards makes them not use much VRAM
anyway.
* These changes allow the project to start and run in Godot 4.2
I hit some of the files with my formatter, if whitespace updates are not wanted I can remove those.
The project doesn't entirely work yet, but it runs. I am still working on making it work properly fully, but at least it starts now instead of crashing.
* Center text to match Godot 3 example better.
3.x -> 4.x:
`font_color_shadow` -> `font_shadow_color`
`font_color_selected` -> `font_selected_color`
`hseparation` -> `h_separation`
`vseparation` -> `v_separation`
`shadow_as_outline` -> `shadow_outline_size`
`panelf` and `panelnc` were removed in 3.2, as the options were never used.
See: godotengine/godot#28639
`font_color_shadow` is not a property of ProgressBar's theme, and there
doesn't seem to be an equivalent. The term "shadow" does not appear in any of:
{scene/{gui/{progress_bar,range,control},main/{canvas_item,node}},core/object/object}.{cpp,h}
The 3D demos aren't very demanding and Godot has been optimized
a bit since 4.0's release, so we can afford using higher quality
shadow settings for less noisy shadow filtering.
This also tweaks shadow bias to reduce shadow acne in the Voxel demo.
The time slider in the Physical Light and Camera units demo now
allows for more precise adjustments.
- Make the attractor in the example dynamic to better showcase its functionality,
and add a visual representation to it.
- Tweak the appearance of attracted particles.
- Fix force field particle display (it wasn't using Local Coords as intended).
- Lower the sun angle to make the background darker (and particles easier to see).
This leads to code that is easier to understand and runs
faster thanks to GDScript's typed instructions.
The untyped declaration warning is now enabled on all projects
where type hints were added. All projects currently run without
any untyped declration warnings.
Dodge the Creeps and Squash the Creeps demos intentionally don't
use type hints to match the documentation, where type hints haven't
been adopted yet (given its beginner focus).
* Use match case instead of if else
This is my first pull request.
* Apply suggestions from code review
---------
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
```
ERROR: Cannot create tile. The tile is outside the texture or tiles are already present in the space the tile would cover.
at: (scene\resources\2d\tile_set.cpp:4963)
ERROR: The TileSetAtlasSource atlas has no tile at (1, 0).
at: (scene\resources\2d\tile_set.cpp:5400)
ERROR: TileSetAtlasSource has no tile at (1, 0).
at: (scene\resources\2d\tile_set.cpp:5348)
```
This is a silly "fix", but it prevents an empty `[]` from being printed every time
this demo is run without a MIDI device plugged into the computer.
The MIDI devices list is printed if one is plugged into the computer, which I have tested.
This clears out some errors that happen on every load of this demo in Godot 4 onward.
It also makes the fonts actually work, as they did not before.
We probably don't strictly **need** these font settings for a demo, but they were here before.
I don't think `SourceCodePro-Black.ttf` was ever used, based on looking at history. So I removed it.
Both `.tres` files are gone too, as those are not used in Godot 4.
I have updated everything that used `SourceCodePro-Bold.ttf` to the new setup.
- 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 instructions will only show when the player is hosting a server.
This also includes a button to get your public IP address.
This partially addresses #535.
The previous code had no comments and had some unintuitive steps.
I've re-written and re-structured it, and added comments. Hopefully it
will be easier to follow for newcomers to Godot.
* Re-write main methods
* Various bugfixes (variable conflicts, edge cases)
* Comment improvements
* Whitespace fixes
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
This is required to benefit from crisp display on hiDPI monitors.
This also fixes issues related to fullscreen and input handling
when using an hiDPI display on Windows.
The community health files are now available in the godotengine/.github
repository, which makes them apply to all repositories in the
organization automatically.
See https://github.com/godotengine/godot/issues/40972.
- Enable 4× MSAA in all 3D demos.
- Enable filmic tonemapping with a whitepoint of 6 in GLES3 3D demos.
- Add subtle fog to the Truck Town demo.
- Use the `2d` stretch mode and `expand` stretch aspect to support
multiple resolutions and aspect ratios.
Overriding theme items is a common point of confusion. This demo
should hopefully make it easier to understand.
In the future, we could extend this demo to include things like theme
switching as it's a common need in non-game applications.
fix for navmesh (re)baking issues in demo
- changed level mesh size/scale (was way to small to be useable)
- changed navmesh agent settings (default radius to large, slope values to small)
2020-07-25 02:19:19 +02:00
4279 changed files with 146601 additions and 50945 deletions
<!-- The list of demos will be inserted above by the CI process. -->
</ul>
<h2>Unavailable demos</h2>
<ulclass="unsupported-demos">
<li><code>2d/glow</code>: Not supported on the Compatibility rendering method (which the web platform always uses).</li>
<li><code>2d/navigation_mesh_chunks</code>: Relies on debug-only drawing functionality which is not available in projects exported in release mode.</li>
<li><code>2d/physics_tests</code>: Relies on debug-only drawing functionality which is not available in projects exported in release mode.</li>
<li><code>3d/labels_and_texts</code>: Does not export in headless mode due to an engine bug (font importing infinite loop).</li>
<li><code>3d/decals</code>: Not supported on the Compatibility rendering method (which the web platform always uses).</li>
<li><code>3d/ik</code>: Demo is not fully ported to Godot 4 yet (even though the feature works on the web).</li>
<li><code>3d/navigation_mesh_chunks</code>: Relies on debug-only drawing functionality which is not available in projects exported in release mode.</li>
<li><code>3d/occlusion_culling_mesh_lod</code>: Occlusion culling is disabled by default in web builds to decrease binary size.</li>
<li><code>3d/particles</code>: Demo mostly showcases features that are not available in Compatibility (which the web platform always uses).</li>
<li><code>3d/physical_light_camera_units</code>: Demo is not tuned for the Compatibility rendering method (which the web platform always uses).</li>
<li><code>3d/physics_tests</code>: Relies on debug-only drawing functionality which is not available in projects exported in release mode.</li>
<li><code>3d/variable_rate_shading</code>: Not supported on the Compatibility rendering method (which the web platform always uses)</li>
<li><code>3d/volumetric_fog</code>: Not supported on the Compatibility rendering method (which the web platform always uses)</li>
<li><code>3d/voxel</code>: Freezes after a few seconds of gameplay due to web platform-specific threading issues.</li>
<li><code>audio/bpm_sync</code>: Not functional on the web platform due to differences in the audio playback implementation.</li>
<li><code>audio/device_changer</code>: Not relevant for the web platform, as the web browser always chooses the audio output device.</li>
<li><code>audio/midi_piano</code>: Not functional on the web platform due to differences in the audio playback implementation.</li>
<li><code>audio/spectrum</code>: Not functional on the web platform due to differences in the audio playback implementation.</li>
<li><code>compute/*</code>: Not supported on the Compatibility rendering method (which the web platform always uses).</li>
<li><code>gui/msdf_font</code>: Does not export in headless mode due to an engine bug (font importing crashes).</li>
<li><code>gui/translation</code>: Does not export in headless mode due to an engine bug (font importing crashes).</li>
<li><code>loading/runtime_save_load</code>: Native filesystem access is not available on the web platform.</li>
<li><code>misc/compute_shader_heightmap</code>: Not supported on the Compatibility rendering method (which the web platform always uses).</li>
<li><code>misc/large_world_coordinates</code>: Not supported on the Compatibility rendering method (which the web platform always uses).</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 the web platform.</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>
<li><code>xr/openxr_*</code>: Not functional on the web platform, as these demos are not designed for WebXR.</li>
# Enable WebXR Polyfill and WebXR Layers Polyfill for the WebXR demo.
if [ "$demo" == "xr/webxr/" ]; then
sed -i 's~^html/head_include=""$~html/head_include="<script src=\\"https://cdn.jsdelivr.net/npm/webxr-polyfill@latest/build/webxr-polyfill.min.js\\"></script>\n<script>\nvar polyfill = new WebXRPolyfill();\n</script>\n<script src=\\"https://cdn.jsdelivr.net/npm/webxr-layers-polyfill@latest/build/webxr-layers-polyfill.min.js\\"></script>\n<script>\nvar layersPolyfill = new WebXRLayersPolyfill();\n</script>"~g' export_presets.cfg
Images are from "Abstract Platformer". Created in 2016 by kenney.nl, [CC0 1.0 Universal](http://creativecommons.org/publicdomain/zero/1.0/). Source: https://www.kenney.nl/assets/abstract-platformer
Images are from "Abstract Platformer". Created in 2016 by kenney.nl, [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/). Source: https://www.kenney.nl/assets/abstract-platformer
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.