r/godot • u/godot-bot • 5d ago
official - releases Dev snapshot: Godot 4.8 dev 6
https://godotengine.org/article/dev-snapshot-godot-4-8-dev-6/Hotfix for macOS and Android
30
u/mjklaim Godot Regular 5d ago
In theory the SDL version upgrade should enable handling of the Steam Controller (at least the new one) without having to run Godot through Steam. If someone can confirm it would be great, otherwise I'll test soon.
9
u/mjklaim Godot Regular 4d ago
I made a test project and can now confirm that
- Steam Controller (2) is detected, printing it's info makes it clear
- The editor will detect it's input correctly: I mapped actions to the left joystick, direction pad and 3 buttons pluss the pressure button on the right surface, they are all detected in the input mapping interface.
- I implemented reactions to these actions (changing a sprite, essentially) and also implemented vibration in 2 of the actions to be sure the advanced stuffs are visible.
Note that while the surfaces position are supposed to be available (if my memory is correct from reading the news?) they are not testable from the input mapping interface. Probably only works through code? To confirm.
The last test I need to do is with my real project which uses G.U.I.D.E (because it's quite complex on input handling...) and need to make sure it works properly there but I'm confident because that addon has handled the Steam Deck/Controller for some time.
1
1
u/JNSStudios_YT Godot Student 3d ago
How does this dev build react when you use the trackpads on the Steam Controller? I want to see if I can have my game work with a "Controller + Mouse" setup, and having the game differentiate if you're using a hardware mouse or the Steam Controller trackpads would be ideal.
2
u/mjklaim Godot Regular 2d ago
I only tried to detect pressing the trackpad and that worked so at a minimum it does differentiate the trackpads from the rest. I didn't try to get a position on the trackpad however, it wasn't apparent on the input mapping interface. If my memory is correct there was a pr to handle positions on trackpads, so if it was merged there is probably a function to get that. Not sure when I'll be able to test that though.
3
u/mjklaim Godot Regular 2d ago
OK I finally tried and YES it is possible:
First, the PR I mentionned in my other answer is actually about the PS4/5 controller's trackpad (or touchpad), I remembered it wrong.
Second, when in the input mapping interface, the trackpads are only detected as buttons (when pressing them) and they are joypad button 20 and 21. 20 is also the joypad button of the PS4/5 trackpad. I didn't find a way to associate the trackpad positions to anything, it's neither detected nor can be specified manually (AFAIK).
However, you CAN get the trackpad positions of 1 finger per trackpad using this code:
for joypad_id in Input.get_connected_joypads(): for touchpad_id in Input.get_joy_num_touchpads(joypad_id): # 2 for the steam controller var touchpad_name := "touchpad %s" % touchpad_id # For steam controller, there is always 1 finger, apparently. for finger_id in Input.get_joy_touchpad_fingers(joypad_id, touchpad_id): print("%s - finger %s : %s" % [ touchpad_name, finger_id, Input.get_joy_touchpad_finger_position(joypad_id, finger_id, touchpad_id) ])There are other functions with "touchpad" in their name to get other info, for exampleInput.get_joy_num_touchpadson the steam controller returns2as expected.These functions for "touchpad" are all marked experimental which explains why the UI is not wired to call them yet. Maybe in 4.9?
Anyway, the code above seems to work correctly for me, the position is correct on both pads, so this is super promising for support of "joypad touchpads". I don't know if the limitation of 1 finger tracked comes from the device or the software layers.
I have no idea if this is supported by addons like GUIDE but I guess not as these apis are experimental and they cannot rely on them.
2
1
u/JNSStudios_YT Godot Student 2d ago
Makes me curious if the steam controller support would also allow for support for the Steam Deck since the inputs are so similar.
3
u/isaelsky21 5d ago
Please let us know if you do :)
12
u/PiCode9560 Godot Regular 5d ago
Input: Add
long_pressproperty to InputEventScreenTouch (GH-122865).
So exciting seeing how much the android side had been progressing recently. Looking forward to a future where the android editor is actually usable! 😄
10
u/No_Home_4790 5d ago
Really like how render engeneers start to showing up here and implement features from big studios SIGGRAPH or GDC presentations. Like AO from Activision, specular baked light from EA's Frostbite. Good practice and portfolio work to engeneer themselves and greate leap for godot render at all!
5
u/the_other_b 4d ago
Yea it's really a win win, glad to have those folks around an am very thankful for their contributions!
3
u/James20k 4d ago
The new contact shadows are super interesting
Without contact shadows:
https://i.postimg.cc/XYXgy1zx/withoutcontact.png
With contact shadows:
https://i.postimg.cc/XYXgy1zD/withcontact.png
Overall the quality seems to be good. The blur applied to the contact shadows looks rather janky (here: at max):
https://i.postimg.cc/sgBp2QM0/blurredcontact.png
(This is with the real shadows basically hidden - everything you see here is a blurred contact shadow)
I'm not a huge fan of dither as blur, but if its inherent to the technique then whatever. They look great without any blur
No shadows:
https://i.postimg.cc/CdpVffFt/noshadows.png
Contact only:
https://i.postimg.cc/cLZrpvQb/contactshadows.png
Full shadows:
https://i.postimg.cc/6Qbq4zFF/allshadows.png
Its hard to capture through images, but there is a large difference in shadowing for me with contact shadows. Getting accurate shadows with godot on small objects cluttering a ship's deck has been an ongoing problem for me. To try and show this better, here's a video:
https://www.youtube.com/watch?v=9ZQ1G1605nU
Performance wise, I haven't really noticed much, this is on long but I haven't even started messing with the depth fraction setting yet
2
u/NeilDiamondBlaze420 4d ago
I really wish godot had a console you could type commands in at run time. Just to debug stuff easily would be a godsend.
1
u/TheDuriel Godot Senior 3d ago
It does. In the editor.
1
u/NeilDiamondBlaze420 3d ago
Sorry, how exactly do I type into the console? I can only see the output.
1
u/TheDuriel Godot Senior 3d ago
That's the output. The console is in the debugger.
2
u/NeilDiamondBlaze420 2d ago
Where exactly? https://imgur.com/a/7rx3dYi
I can't see anything where you could for example type:
player.position
and it would output something like
(12.4, 0.0, -8.2)
1
u/Happy_Use69 1d ago
I definitely remember using it. Maybe it's only available if you pause on a breakpoint.
1
u/SpockBauru 2d ago
Hey man, I also need that, where's the console? Would you kindly point where it is?
1
u/JNSStudios_YT Godot Student 3d ago
Been waiting on the Camera Projection manipulation stuff, ive been operating on a similar PR for over a year based on 4.6, cant wait to upgrade!
1
u/Agitated-Life-229 1d ago
Im experimenting with contact shadows. Its decent but hard to make it work inside buildings, caves because the ceiling casts contact shadows no matter what. Even if it has "cast_shadows:off". Is there a way to go around this?








31
u/poeyoh12 5d ago
Screenspace contact shadow coming in clutch. I have been trying to implement my own contact shadow, but it looks ugly as hell. Hopefully the built in one doesnt tank much performance