From 7f82289aeec7bd6bd08b41fe8e26ee79703ea891 Mon Sep 17 00:00:00 2001 From: Russell Sanborn Date: Fri, 2 Aug 2024 08:45:58 -0500 Subject: [PATCH] Update the getting started 3d tutorial for godot 4.x I followed the entire 3d tutorial with godot 4.x and the changes to the docs repo were small. The largest change was needing to replace the outdated links to the old starter project with assets. Since there was no longer a non-complete starter project, I made a PR to godot-docs-project-starters. That would need to be reviewed and merged first before the link to the new starter project zip file would be valid. New starter/assets project PR: https://github.com/godotengine/godot-docs-project-starters/pull/9 --- .../first_3d_game/01.game_setup.rst | 7 +++---- .../first_3d_game/03.player_movement_code.rst | 2 +- .../img/01.game_setup/04.start_assets.webp | Bin 12152 -> 20702 bytes getting_started/first_3d_game/index.rst | 4 ++-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/getting_started/first_3d_game/01.game_setup.rst b/getting_started/first_3d_game/01.game_setup.rst index e3f81624d..1d94259dd 100644 --- a/getting_started/first_3d_game/01.game_setup.rst +++ b/getting_started/first_3d_game/01.game_setup.rst @@ -8,8 +8,7 @@ importing the start assets and setting up the game scene. We've prepared a Godot project with the 3D models and sounds we'll use for this tutorial, linked in the index page. If you haven't done so yet, you can download -the archive here: `Squash the Creeps assets -`__. +the archive here: `Squash the Creeps assets `_. Once you downloaded it, extract the .zip archive on your computer. Open the Godot Project Manager and click the *Import* button. @@ -17,7 +16,7 @@ Godot Project Manager and click the *Import* button. .. image:: img/01.game_setup/01.import_button.webp In the import popup, enter the full path to the freshly created directory -``squash_the_creeps_start/``. You can click the *Browse* button on the right to +``3d_squash_the_creeps_starter/``. You can click the *Browse* button on the right to open a file browser and navigate to the ``project.godot`` file the folder contains. @@ -108,7 +107,7 @@ the viewport. We're going to move the ground down so we can see the floor grid. To do this, the grid snapping feature can be used. Grid snapping can be activated 2 ways in the 3D editor. The first is by pressing the *Use Snap* button (or pressing the :kbd:`Y` key). -The second is by selecting a node, dragging a handle on the gizmo **then** holding :kbd:`Ctrl` while still clicking to enable snapping as long as :kbd:`Ctrl` is held. +The second is by selecting a node, dragging a handle on the gizmo **then** holding :kbd:`Ctrl` while still clicking to enable snapping as long as :kbd:`Ctrl` is held. .. image:: img/01.game_setup/use_snap.webp diff --git a/getting_started/first_3d_game/03.player_movement_code.rst b/getting_started/first_3d_game/03.player_movement_code.rst index 18f113cc6..8b1eac88c 100644 --- a/getting_started/first_3d_game/03.player_movement_code.rst +++ b/getting_started/first_3d_game/03.player_movement_code.rst @@ -143,7 +143,7 @@ call its ``normalized()`` method. .. tabs:: .. code-tab:: gdscript GDScript - #func _physics_process(delta): + func _physics_process(delta): #... if direction != Vector3.ZERO: diff --git a/getting_started/first_3d_game/img/01.game_setup/04.start_assets.webp b/getting_started/first_3d_game/img/01.game_setup/04.start_assets.webp index bd373a380cef94ea1fcd862aba8fb612de22ab49..d128e0a95e3d5a9095ea675324b3b490d4887a82 100644 GIT binary patch literal 20702 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 M_Ye|H00000063iJp#T5? literal 12152 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 diff --git a/getting_started/first_3d_game/index.rst b/getting_started/first_3d_game/index.rst index dacb13543..a4aeb6ca6 100644 --- a/getting_started/first_3d_game/index.rst +++ b/getting_started/first_3d_game/index.rst @@ -33,7 +33,7 @@ This tutorial is for beginners who followed the complete getting started series. We'll start slow with detailed instructions and shorten them as we do similar steps. If you're an experienced programmer, you can browse the complete demo's source code here: `Squash the Creep source code -`__. +`__. .. note:: @@ -44,7 +44,7 @@ source code here: `Squash the Creep source code We prepared some game assets so we can jump straight to the code. You can download them here: `Squash the Creeps assets -`__. +`__. We will first work on a basic prototype for the player's movement. We will then add the monsters that we'll spawn randomly around the screen. After that, we'll