Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Your first 3D game" issues #6744

Open
32 of 47 tasks
andreymal opened this issue Feb 7, 2023 · 13 comments
Open
32 of 47 tasks

"Your first 3D game" issues #6744

andreymal opened this issue Feb 7, 2023 · 13 comments
Labels
area:getting started Issues and PRs related to the Getting Started section of the documentation bug enhancement

Comments

@andreymal
Copy link

andreymal commented Feb 7, 2023

There's a bunch of weird things I ran into while trying to follow the "Squash the Creeps" tutorial in Godot 4. I'm not a Godot expert and don't know how to fix some of these things, so I don't want to make a pull request, but I hope this list can help other contributors improve the documentation.

Common

The screenshots are inconsistent:

  • some taken in Godot 3, some in Godot 4
  • some use names in PascalCase, some in snake_case
  • some nodes have the "3D" suffix (Godot 4), some don't (Godot 3), some have the lowercase "3d" suffix (beta1?)
  • some screenshots are in PNG format, some are JPG, some are WebP (and I think WebP is worse than PNG), and they vary in quality and UI scale

Perhaps it would be a good idea to recreate all the screenshots after the first release candidate?

Your first 3D game

Setting up the game area

By the way: unlike Godot 3, the ground is not white in Godot 4. Can we tweak something to make the lighting identical to Godot 3?

Player scene and input actions

  • 02.player_input.rst:65 and related screenshot img/02.player_input/04.sphere_shape.png

    The sphere's wireframe appears below the character.

    It doesn't appear in Godot 4 because it's too small by default and fits completely inside the model. I have to set the radius to 0.75 to see the wireframe

  • 02.player_input.rst:70

    Shrink it a bit by dragging the orange dot in the viewport.

    We should now enlarge it instead (from 0.5 to 0.8)

  • 02.player_input.rst:106 and related screenshot img/02.player_input/07.input_map_tab.png

    Godot projects come with some predefined actions

    They are no longer visible by default, we need to click Show Built-in Actions to see them

  • 02.player_input.rst:130 and related screenshots

    select Manual Selection -> Joypad Axes.

    The Manual Selection tab no longer exists, everything is in one window now

  • 02.player_input.rst:151

    Bind the Space key and the gamepad's A button.

    It's not obvious what is "the gamepad's A button", all gamepads are different. Maybe just mention "Joypad Button 0" instead?

Moving the player with code

  • 03.player_movement_code.rst:50 (fixed in #6763)

    The velocity is a 3D vector

    It has been renamed to target_velocity to prevent collision with the builtin velocity property (the related code snippets are correct)

  • 03.player_movement_code.rst:190

        if not is_on_floor(): # If in the air, fall towards the floor. Literally gravity
                target_velocity.y = target_velocity.y - (fall_acceleration * delta)

    This line is rendered with incorrect indentation because the rst source mixes tabs and spaces

  • 03.player_movement_code.rst:235 (fixed in #6763)

    Here is the complete Player.gd code for reference.

    • Inconsistent comment: "while in the air" / "when in the air"
    • Incorrect 5-space indentation, starting from if direction != Vector3.ZERO:
  • img/03.player_movement_code/13.camera3d_values.webp

    This screenshot doesn't highlight Projection: Orthogonal for some reason

Designing the mob scene

Spawning monsters

  • 05.spawning_mobs.rst:14 (fixed in #6763)

    Our game has a default window size of 1024x600.

    I see 1152x648, I don't know why. Is this the new default value in Godot 4?

  • 05.spawning_mobs.rst:97

    We can update all four cylinders at once. Select all the mesh instances in the Scene dock.

    This step is not needed because all cylinders share the same MeshInstance3D. Simply select any mesh instance

  • 05.spawning_mobs.rst:161 (fixed in #6811)

    Then, as we're going to spawn the monsters procedurally, we want to randomize numbers every time we play the game. If we don't do that, the monsters will always spawn following the same sequence.

    It seems it's not needed, see Call randomize() automatically godot#43330

Jumping and squashing monsters

Killing the player

Score and replay

Character animation

P.S. I didn't test C#

@Calinou Calinou added bug enhancement area:manual Issues and PRs related to the Manual/Tutorials section of the documentation labels Feb 7, 2023
@skyace65
Copy link
Contributor

skyace65 commented Feb 9, 2023

I'll go over this on Friday and work on a PR for it. And keep in mind, even if you can't fix everything on this list there's nothing wrong with making a PR fixing only what you do know how to fix.

@DigitalBox98
Copy link

A comment on the C# part : to make things work, you will need to update some properties with the first letter changed to uppercase like below :
direction.x += 1f; => direction.X += 1f;

@citrusmunch
Copy link

09.adding_animations.rst:261

Here I managed to use the Edit button on the top right to Copy Tracks and Paste Tracks. I had to use Animation > New for the Edit button to be available for pasting in the mob animation player.

@citrusmunch
Copy link

09.adding_animations.rst:261

Here I managed to use the Edit button on the top right to Copy Tracks and Paste Tracks. I had to use Animation > New for the Edit button to be available for pasting in the mob animation player.

Also noticing it should mention:

  • animation length needs to be adjusted to 1.2 seconds
  • remember to enable Autoplay on Load and Animation Looping

@Julian-Vos
Copy link

Thanks for making this list! I found another problem in "Setting up the game area" today: it says "hold the Ctrl key down to turn on grid snapping (Cmd on macOS)", but it's Ctrl on macOS as well.

@Julian-Vos
Copy link

Julian-Vos commented Apr 14, 2023

Another one in "Designing the mob scene": "This function destroy the instance it's called on" should say "destroys". (oh and the method name in the code example directly below that is outdated)

@MORGAN-DMG
Copy link

Heyo! I actually have a fix/solution for one of the listed issues. I came across this exact issue when completing the tutorial. I apologize if this is completely out of etiquette or missing some kind of formatting. I'm very new to Godot, for reasons we all know I'm sure, and I'm fairly new to Git because again...Source Control features were handled in-engine in my previous experiences. Here's the issue I'm referring to:

====================================================
09.adding_animations.rst:261

Next, click on Animation > Copy.

This menu doesn't exist in Godot 4. It seems we should use Animtion > Manage Animations, but I'm not sure.

====================================================

I digress! Point is, I'm fairly certain that I know how to solve this issue for the Character Animation section of this tutorial. I tried every, other way I could think of for a fix, but this method was the only one I had any success with in Godot 4.1. So, to get the animation to "Copy over," for use in the Mob class I had to:

  1. Select Player Scene
  2. Select Player Node
  3. Select the AnimationPlayer node in the Player node.
  4. With the Animation Panel open, Click on the Tool Button for "Animation"
  5. Choose Manage Animations
  6. Save the unsaved Global Library, which includes the developer created "float," animation within
  7. SIDE NOTE: I saved the Global Library as "AnimLib," to be a little more familiar with Unity's old school naming conventions
  8. Close the Edit Animation Libraries screen with the "OK" button
  9. Select/Open the Mob Scene
  10. Select the Mob Node
  11. Create a AnimationPlayer Child Node for Mob and Select it
  12. In the Animation Panel, again Click on the Tool Button for "Animation"
  13. Choose Manage Animations
  14. This time, Load Library and choose the "AnimLib," library which should be available along with the dev created "float," animation.
  15. The last step of, "make sure that the button with an "A+" icon (Autoplay on Load) and the looping arrows (Animation looping) are also turned on in the animation editor" works perfectly fine as-is.

Again, I apologize if this is the wrong way to suggest a fix, like I say I'm pretty new to both of these communities, but I hope this helps nonetheless!

@seankao31
Copy link

Linking a relevant issue for copying animation here for the sake of visibility: godotengine/godot#60848

@seankao31
Copy link

Additional issue on character animation:

$AnimationPlayer.speed_scale = random_speed / min_speed

I believe the intention isn't integer division, but instead float division

shane-smith added a commit to shane-smith/godot-docs that referenced this issue Nov 12, 2023
This fixes the "Animation > Copy" issue mentioned in
godotengine#6744
(see Step 09, around Line 264)

The same issue as above was referenced in
godotengine/godot#60848
and the fix was to use the solution by @riidom
@ParadoxV5
Copy link

Setting up the game area

godotengine/godot-demo-projects#884 for Godot 4 has superceded godotengine/godot-3d-dodge-the-creeps (just opened godotengine/godot-3d-dodge-the-creeps#14 a few minutes ago).
We better also rewrite the tutorial to go off the godotengine/godot-demo-projects entry instead of the outdated and unmaintained repo.

shane-smith added a commit to shane-smith/godot-docs that referenced this issue Nov 18, 2023
This fixes the "Animation > Copy" issue mentioned in
godotengine#6744
(see Step 09, around Line 264)

The same issue as above was referenced in
godotengine/godot#60848
and the fix was to use the solution by @riidom

Also, a reference to a button icon has been changed
from "A+" to "A>" per feedback on PR 8460
@docrinehart
Copy link
Contributor

09.adding_animations.rst:261

Here I managed to use the Edit button on the top right to Copy Tracks and Paste Tracks. I had to use Animation > New for the Edit button to be available for pasting in the mob animation player.

Also noticing it should mention:

  • animation length needs to be adjusted to 1.2 seconds
  • remember to enable Autoplay on Load and Animation Looping

Using Godot 4.2.1.stable

I ran into this issue and considered the "Manage Animations" option, but the "Edit -> Copy Tracks" seemed more straightforward and clear to me, noting that you still have to add the AnimationPlayer on the Mob scene, so that's the approach I took to make it through.

That said, I additionally encountered a couple other interesting problems I'm not seeing referenced (just on quick searching through GitLab issues). Both are related to the character animation section:

  • While the guide correctly states to get animation keyframes from the Character node, all the subsequent screenshots that show the animation panel have Player showing as the target node. This threw me off for a good 40 minutes until I came across a reddit answer highlighting that the root Player shouldn't be used for keyframes. The issue this causes is that the player character is animated and floating, but no longer moves to player input. -- A more detailed explanation of why this happens might be worth noting in a warning/note callout. I took a few updated screenshots and will push up a PR if I get a chance.

  • The player shadow is rendered weird when actually running the game. I've adjusted some settings and it mostly works, but the best thing I did was to make the window size bigger. From searches it looks like Godot 4.x has some LOD rendering issues with shadows, so I'm assuming that this is related, but I'm not well-versed in game engines enough yet to know for sure.

GodotShadows_1
GodotShadows_2

skyace65 pushed a commit to skyace65/godot-docs that referenced this issue Feb 14, 2024
This fixes the "Animation > Copy" issue mentioned in
godotengine#6744
(see Step 09, around Line 264)

The same issue as above was referenced in
godotengine/godot#60848
and the fix was to use the solution by @riidom

Also, a reference to a button icon has been changed
from "A+" to "A>" per feedback on PR 8460
skyace65 pushed a commit to shane-smith/godot-docs that referenced this issue Feb 14, 2024
This fixes the "Animation > Copy" issue mentioned in
godotengine#6744
(see Step 09, around Line 264)

The same issue as above was referenced in
godotengine/godot#60848
and the fix was to use the solution by @riidom

Also, a reference to a button icon has been changed
from "A+" to "A>" per feedback on PR 8460
skyace65 added a commit to skyace65/godot-docs that referenced this issue Feb 14, 2024
This fixes the "Animation > Copy" issue mentioned in
godotengine#6744
(see Step 09, around Line 264)

The same issue as above was referenced in
godotengine/godot#60848
and the fix was to use the solution by @riidom

Also, a reference to a button icon has been changed
from "A+" to "A>" per feedback on PR 8460
skyace65 pushed a commit to skyace65/godot-docs that referenced this issue Feb 14, 2024
This fixes the "Animation > Copy" issue mentioned in
godotengine#6744
(see Step 09, around Line 264)

The same issue as above was referenced in
godotengine/godot#60848
and the fix was to use the solution by @riidom

Also, a reference to a button icon has been changed
from "A+" to "A>" per feedback on PR 8460
@skyace65 skyace65 added area:getting started Issues and PRs related to the Getting Started section of the documentation and removed area:manual Issues and PRs related to the Manual/Tutorials section of the documentation labels Feb 14, 2024
@skyace65
Copy link
Contributor

I've updated the list with the fixes from #8955. I'll be working on a PR to fix the remaining ones. This will take several days.

@artisteacher
Copy link

artisteacher commented Mar 2, 2024

I also noticed that the shortcut for "Duplicate" in the tutorial is just listed as shift+D - but on macOS it's actually CMD+D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:getting started Issues and PRs related to the Getting Started section of the documentation bug enhancement
Projects
None yet
Development

No branches or pull requests