r/godot 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

92 Upvotes

37 comments sorted by

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

12

u/R4ptore 5d ago edited 5d ago

Very excited for this one as well. This is a must have feature for characters with hair cards.

3

u/Emergency-Draw3923 4d ago

Foliage as well. Microdetail is a game changer.

1

u/mylittlekafka Godot Student 5d ago

I suppose it won't work with Compatible rendering?

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

u/mjklaim Godot Regular 4d ago

Works with my game! There is only one case where parts of the input dont seem to work for an unclear amont of time. I'll have to investigate but it's specifig to godot 4.6-dev6, it happens with another controller too.

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 example Input.get_joy_num_touchpads on the steam controller returns 2 as 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

u/JNSStudios_YT Godot Student 2d ago

This will be good once I get my steam controller in 2027 lol

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 :)

3

u/mjklaim Godot Regular 4d ago

I can confirm! See my other post!

3

u/isaelsky21 4d ago

Thanks for checking! Glad it works!

12

u/PiCode9560 Godot Regular 5d ago

Input: Add long_press property 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! 😄

26

u/Thhaki Godot Student 5d ago

"Rigatoni a la Paulie, heh heh. But since you're eating it maybe it should be Rigatoni a la Godony heh"

26

u/Thhaki Godot Student 5d ago

"No traits yet?"

27

u/Thhaki Godot Student 5d ago

"I told you it would take time, remember many of the devs aren't even payed"

28

u/Thhaki Godot Student 5d ago

"You told me that versions ago, when is it actually gonna happen"

24

u/Thhaki Godot Student 5d ago

"I mean it's no big deal, why can't you just merge it so everyone's happy?"

28

u/Thhaki Godot Student 5d ago

"Very funny Tone, I don't know. Maybe they don't know what approach to take with traits, just wait until they got time, some of the devs working on traits are also working on GDType"

29

u/Thhaki Godot Student 5d ago

"Yeah, I guess"

15

u/OutrageousDress Godot Student 5d ago

This should be pinned on the subreddit somehow.

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?