godotengine / godot-demo-projects

Demonstration and Template Projects
https://godotengine.org
MIT License
5.82k stars 1.62k forks source link

[TRACKER] Porting the demos to Godot 4 #697

Open aaronfranke opened 2 years ago

aaronfranke commented 2 years ago

This issue tracks the progress of porting the Godot demo projects to Godot 4.0. This list is in alphabetical order by folder path.

GeorgeS2019 commented 1 year ago

@Anutrix

I would suggest start with what u are comfortable , which render environment and share openly what u are not comfortable so others with the right competency which can complement u to work on the missing part.

The key is communication

Start the communication so others know how to support u moving forwards.

Calinou commented 1 year ago

Do I need to it to be running in all 3 rendering drivers. Is running with few warnings are fine?. Should I test with .NET version of Godot too?, etc. I still don't know the answer to some of these questions.

You only need to test the rendering method the project currently uses on desktop. You don't need to test with a .NET version of Godot unless the project uses C#.

Do we have any guidelines, FAQs or similar page for 'Contributing to Godot Demo Projects'?

Not yet, but I intend to write guidelines in a few weeks from now. Edit: Done in https://github.com/godotengine/godot-demo-projects/pull/912.

InfiniteProductions commented 1 year ago

I'm also willing to help, I just need a way to know who test what with what results with a good enough update frequency, even if it's means we update it ourselves, to go on the right path.

hsandt commented 1 year ago

For 2D Lights as Mask, I found that setting Burano TextureRect > CanvasItemMaterial > Light Mode from Light Only to Normal makes the photo appears as it should, with the textured lights:

image

image

In fact, removing the material altogether to use standard one also works.

hsandt commented 1 year ago

So I tested the demo in Godot 3 to compare, and Light Only works, and the result is different:

image

and that's the intended result. So switching to Normal is just hiding the problem.

In the meantime I thought the core issue for Light Only failing: https://github.com/godotengine/godot/issues/44559

Calinou commented 1 year ago

Several demos in 3.x were revamped with new art assets:

Remember to use the commits linked at the end of each PR as a base, as they include some additional changes that aren't in the PRs themselves.

These demos should be ported to master again, since a lot of things have changed within them. It'll be faster to discard the master copy and start converting the current 3.x demo from scratch.

Calinou commented 1 year ago

Just a heads up to note that I've started working on porting the demos linked in https://github.com/godotengine/godot-demo-projects/issues/697#issuecomment-1541083705.

Edit: Pull request opened, but I need help porting the 2D JRPG demo: https://github.com/godotengine/godot-demo-projects/pull/922

GeorgeS2019 commented 1 year ago

WIP Track Demo for 4.1

Today is an important 4.1 milestone. Wonder if there are ways to track demo reflecting new features or changes in 4.1

TheYellowArchitect commented 1 year ago

Hello! I see that once I download 4.1 from the official website, there are 2 great links below the donations button. The first redirects to the docs, the 2nd to the asset library demos. All demos seem 3.5. Until most demos are updated, I suggest hiding the 2nd button.

TheYellowArchitect commented 1 year ago

Loading Tutorials

I tested them all, and all are functional, yet they have the 3.5 tag instead of the 4.0?

Networking Tutorials

I tried placing the GDExtension as recommended in the tutorial, got a worse error on opening it lol webrtc-minimal-connection

TheYellowArchitect commented 1 year ago

Viewport Tutorials

TheYellowArchitect commented 1 year ago

Audio Tutorials

All work great, except the text-to-speech. I cannot test it at all because I guess it uses default OS voicecharacters or whatever they are called and I have none. I would also suggest typed variables and better variable names there. weird-error

Also I cannot verify if the BPM_sync works as expected, looks good to me, but I am not that familiar with BPM stuff to confirm the BPM is the same as printed on the UI label.

Off-topic All other audio tutorials work as expected, some surprised me tbh. If I had seen them on a new godotengine post on a new audio feature I would be hyped, yet it's already a thing... Some examples: - MIDI Piano can be stretched in a week to allow the player character to play piano for fun (cool easter egg which would take months on a custom game engine, and that's why no games do it, e.g. background piano being playable) - Spectrum for custom UI stuff (scifi games) - Text-To-Speech for voice-acting many characters (though there are AI tools nowadays to get easy high quality voiceacting) - generator and device_changer are neat for changing the soundscape for easter eggs. - mic recorder, cant see it usable in singleplayer games, but still great feature.
TheYellowArchitect commented 1 year ago

GUI Tutorials

Calinou commented 1 year ago

I went through all demos with 4.2.dev4 and ticked off which ones work correctly and which ones remain to be ported.

  • Control Gallery is poggers, but there is a bug: The Menu Button (below OptionButton) is bugged, since nothing selected actually applies. I wish I had found this tutorial far earlier, it must have been skipped by so many like me, but it basically explains fundamental UI intuitively.

MenuButton functionality for persisting checkbox/radio button changes was never implemented (it needs scripting in the project). Feel free to open a pull request for this :slightly_smiling_face:

  • RichTextBBCode is bugged. Tooltip breaks font resolution or sth, I cannot tell what is the cause of the bug, only what it does visually.

This is an engine bug: https://github.com/godotengine/godot/issues/54030

Also, the table items split in 2 columns should be more to the left, as in, properly aligned to their left line.

I couldn't figure out how to do that, unfortunately.

UI Mirroring demo, unlike other tutorials which are 4.0 (only Loading tutorials were 3.5 thus far), is from 3.3 and requests conversion. I converted full project automatically, and there were 2 debugger console errors (probably nothing) but I reloaded project just in case, and no errors. But while there are no logic errors, I don't see anything reacting, so it is safe to say it is heavily bugged and needs manual conversion.

I've tested the demo in 4.2.dev4 and nothing happens when I press various buttons. This will need a second look by @bruvzg who initially made this demo.

Alex2782 commented 1 year ago

Accelerometer, Magnetometer and Gyro Demo has the status the demo still needs to be ported manually.

is it this example? https://github.com/godotengine/godot-demo-projects/tree/master/mobile/sensors

2 weeks ago I tried on my android tablet and found no problems, what changes exactly are still needed there?

Alex2782 commented 1 year ago

@Calinou: Has anyone ported TileMap to version 4 yet? image

image

I have ported some scripts. But how Grid.gd (extends TileMap) would have to be ported, I unfortunately do not know yet. (some lines commented out)

Should I still create PR? So that others can continue. I would have to get better acquainted with TileMap first.

https://github.com/godotengine/godot-demo-projects/compare/master...Alex2782:godot-demo-projects:role_playing_game_v4.1

Current state: image

Alex2782 commented 1 year ago

(3D) kinematic_character

The description would still have to be adapted here. The 2 classes no longer exist. The name 'Kinematic Character 3D' would have to be renamed to 'Character Body 3D'?

This demo uses a KinematicBody for the player, and StaticBody for the level.

... the player extends CharacterBody3D and the level ?

Alex2782 commented 11 months ago

Pong Multiplayer no problems detected

v4.1.2.stable.official [399c9dc39]

AliceGrey commented 11 months ago

@aaronfranke 2.5D Demo with GDScript is not fully converted to 4. The node25d plugin is broken and does not currently run on 4.

Alex2782 commented 11 months ago

@aaronfranke 2.5D Demo with GDScript is not fully converted to 4. The node25d plugin is broken and does not currently run on 4.

I could not find any problems. Master Branch was updated 5 months ago, version 4.0. I tested with Godot Version 4.2 Beta4

https://github.com/godotengine/godot-demo-projects/tree/master/misc/2.5d

MatrixFrog commented 8 months ago

@Alex2782 I don't understand TileMap extremely well yet either but I think I'm making progress on that 2D RPG demo, using the branch you posted above as a starting point: https://github.com/godotengine/godot-demo-projects/pull/1009

Will try to get it fully working in the next few days...

GeorgeS2019 commented 6 months ago

We could consider demonstrating the C# examples using Godot 4 (Scene) Test-Driven-Development (TDD) in e.g. VS2022

Note

In this example, I simply run a Godot4 scene: example audio/spectrum with attached GDScript The idea is that once the GDScript is running, using Test-Driven-Development to port the GDScript to C# under the same working environment and conditions as those of the working GDScript

https://youtu.be/JLI0cIYMgr0

using the latest gdUnit4API TestAdaptor from @MikeSchulze

https://github.com/godotengine/godot-proposals/assets/49812372/72bb91a1-dd1c-4467-8d07-3b0d3beadd4b

tinybitofheaven commented 5 months ago

I wanted to ask if I could work on Multiplayer Pong with C#? I've already started looking into converting it, it seems that multiplayer in Godot 4 is radically different from Godot 3 and a lot of RPC syntax is hard to find a direction conversions in C#. I'll keep working on it since I don't think anyone else is right now, but let me know if I'm wrong about that.

Also wanted to mention that one of the links in the tracker post is linked incorrectly. Screenshot 2024-04-08 205410

Calinou commented 5 months ago

I wanted to ask if I could work on Multiplayer Pong with C#? I've already started looking into converting it, it seems that multiplayer in Godot 4 is radically different from Godot 3 and a lot of RPC syntax is hard to find a direction conversions in C#. I'll keep working on it since I don't think anyone else is right now, but let me know if I'm wrong about that.

Yes, feel free to open a PR to update it :slightly_smiling_face:

The non-multiplayer Pong with C# demo was updated in https://github.com/godotengine/godot-demo-projects/pull/966.

Also wanted to mention that one of the links in the tracker post is linked incorrectly.

Fixed.

tinybitofheaven commented 5 months ago

I believe I've gotten Multiplayer Pong C# working in Godot 4.2 in [#1045]. However, I wanted to follow up on something. It seems that there isn't much documentation on implementing Multiplayer with C# in Godot 4, at least I couldn't find it very easily. In the high-level multiplayer documentation, there's only GDScript. Is there plans to add more C# multiplayer documentation in the future? Or does the documentation exist and I just missed it?

Calinou commented 5 months ago

Is there plans to add more C# multiplayer documentation in the future? Or does the documentation exist and I just missed it?

We welcome pull requests on https://github.com/godotengine/godot-docs to add C# code samples to pages that only have GDScript code samples. That said, we don't have plans to add dedicated pages for C# networking. The base concepts are already independent of the scripting language – only the code blocks really need to be adapted for C#.