diff --git a/3d/ik/README.md b/3d/ik/README.md new file mode 100644 index 00000000..e4324028 --- /dev/null +++ b/3d/ik/README.md @@ -0,0 +1,22 @@ +# 3D Inverse Kinematics + +This is an example of different Inverse Kinematic algorithms +implemented in Godot. It contains four scenes, showing +different ways they can be used. + +Language: GDScript + +Renderer: GLES 3 + +## How does it work? + +This demo shows how to implement IK using two different methods. One uses the +[`SkeletonIK`](https://docs.godotengine.org/en/latest/classes/class_skeletonik.html) +node which is built into Godot. The other method is using a script +called FABRIK (inside of the SADE plugin) for inverse kinematics. + +## Screenshots + +![Screenshot](screenshots/cube.png) + +![Screenshot](screenshots/fps_gun.png) diff --git a/3d/ik/project.godot b/3d/ik/project.godot index abcf5706..0e912b5c 100644 --- a/3d/ik/project.godot +++ b/3d/ik/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="3D IK" +config/name="3D Inverse Kinematics" run/main_scene="res://look_at_ik.tscn" config/icon="res://icon.png" diff --git a/3d/ik/screenshots/.gdignore b/3d/ik/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/3d/ik/screenshots/cube.png b/3d/ik/screenshots/cube.png new file mode 100644 index 00000000..da4089fb Binary files /dev/null and b/3d/ik/screenshots/cube.png differ diff --git a/3d/ik/screenshots/fps_gun.png b/3d/ik/screenshots/fps_gun.png new file mode 100644 index 00000000..8e6aabc7 Binary files /dev/null and b/3d/ik/screenshots/fps_gun.png differ diff --git a/3d/kinematic_character/README.md b/3d/kinematic_character/README.md new file mode 100644 index 00000000..04aec5ed --- /dev/null +++ b/3d/kinematic_character/README.md @@ -0,0 +1,21 @@ +# 3D Kinematic Character + +Kinematic character demo for 3D using a cube for the character. +This is similar to the 2D platformer demo. + +Language: GDScript + +Renderer: GLES 3 + +## How does it work? + +This demo uses a [`KinematicBody`](https://docs.godotengine.org/en/latest/classes/class_kinematicbody.html) +for the player, and [`StaticBody`](https://docs.godotengine.org/en/latest/classes/class_staticbody.html) +for the level. Each has colliders, the player moves itself via +`move_and_slide()` in `_physics_process()`, and collides with the level. + +## Screenshots + +![Screenshot](screenshots/ingame.png) + +![Screenshot](screenshots/editor.png) diff --git a/3d/kinematic_character/screenshots/.gdignore b/3d/kinematic_character/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/3d/kinematic_character/screenshots/editor.png b/3d/kinematic_character/screenshots/editor.png new file mode 100644 index 00000000..b98090f3 Binary files /dev/null and b/3d/kinematic_character/screenshots/editor.png differ diff --git a/3d/kinematic_character/screenshots/ingame.png b/3d/kinematic_character/screenshots/ingame.png new file mode 100644 index 00000000..6da6204e Binary files /dev/null and b/3d/kinematic_character/screenshots/ingame.png differ diff --git a/3d/material_testers/README.md b/3d/material_testers/README.md new file mode 100644 index 00000000..074ed4e5 --- /dev/null +++ b/3d/material_testers/README.md @@ -0,0 +1,17 @@ +# Material Testers + +This demo includes many sphere-like objects with complex materials, +for the purpose of showcasing Godot's rendering capabilities. + +This demo was featured at the beginning of the +[Godot 3.0 trailer](https://www.youtube.com/watch?v=XptlVErsL-o). + +Language: GDScript + +Renderer: GLES 3 + +## Screenshots + +![Screenshot](screenshots/stones.png) + +![Screenshot](screenshots/mirror.png) diff --git a/3d/material_testers/project.godot b/3d/material_testers/project.godot index df00ee52..2047af29 100644 --- a/3d/material_testers/project.godot +++ b/3d/material_testers/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="Material Tester" +config/name="Material Testers" run/main_scene="res://material_tester.tscn" config/icon="res://icon.png" @@ -36,4 +36,3 @@ multithread/thread_rid_pool_prealloc=60 vram_compression/import_etc2=false quality/filters/msaa=2 -environment/default_environment="res://default_env.tres" diff --git a/3d/material_testers/screenshots/.gdignore b/3d/material_testers/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/3d/material_testers/screenshots/mirror.png b/3d/material_testers/screenshots/mirror.png new file mode 100644 index 00000000..4fb5e271 Binary files /dev/null and b/3d/material_testers/screenshots/mirror.png differ diff --git a/3d/material_testers/screenshots/stones.png b/3d/material_testers/screenshots/stones.png new file mode 100644 index 00000000..6b75b2cd Binary files /dev/null and b/3d/material_testers/screenshots/stones.png differ diff --git a/3d/navmesh/README.md b/3d/navmesh/README.md new file mode 100644 index 00000000..21cba11d --- /dev/null +++ b/3d/navmesh/README.md @@ -0,0 +1,14 @@ +# 3D Navigation Mesh + +Navigation mesh demo for 3D scenes, with a character +able to pathfind around a complex 3D environment. +The navigation path is drawn using a line. +Code is provided for polyline following in 3D. + +Language: GDScript + +Renderer: GLES 3 + +## Screenshots + +![Screenshot](screenshots/nav.png) diff --git a/3d/navmesh/project.godot b/3d/navmesh/project.godot index 6c8c0cf2..6b33a0cf 100644 --- a/3d/navmesh/project.godot +++ b/3d/navmesh/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="Navmesh Demo" +config/name="3D Navigation Mesh" run/main_scene="res://navmesh.tscn" config/icon="res://icon.png" diff --git a/3d/navmesh/screenshots/.gdignore b/3d/navmesh/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/3d/navmesh/screenshots/nav.png b/3d/navmesh/screenshots/nav.png new file mode 100644 index 00000000..2ff5a3cc Binary files /dev/null and b/3d/navmesh/screenshots/nav.png differ diff --git a/3d/platformer/README.md b/3d/platformer/README.md new file mode 100644 index 00000000..39a92421 --- /dev/null +++ b/3d/platformer/README.md @@ -0,0 +1,16 @@ +# 3D Platformer + +3D Platformer demo using a +[`KinematicBody`](https://docs.godotengine.org/en/latest/classes/class_kinematicbody.html). +It uses similar code to the 2D platformer, but implemented in 3D. +It also features audio reverberation (it sounds echo-y). + +Language: GDScript + +Renderer: GLES 3 + +## Screenshots + +![Screenshot](screenshots/face.png) + +![Screenshot](screenshots/shoot.png) diff --git a/3d/platformer/screenshots/.gdignore b/3d/platformer/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/3d/platformer/screenshots/face.png b/3d/platformer/screenshots/face.png new file mode 100644 index 00000000..974f5954 Binary files /dev/null and b/3d/platformer/screenshots/face.png differ diff --git a/3d/platformer/screenshots/shoot.png b/3d/platformer/screenshots/shoot.png new file mode 100644 index 00000000..c3ed73a7 Binary files /dev/null and b/3d/platformer/screenshots/shoot.png differ diff --git a/3d/truck_town/README.md b/3d/truck_town/README.md new file mode 100644 index 00000000..9a21d018 --- /dev/null +++ b/3d/truck_town/README.md @@ -0,0 +1,27 @@ +# Truck Town + +This is a demo implementing different types of trucks of +varying complexity using vehicle physics. + +Do not be surprised if everything is bouncy and glitchy, +Godot's physics system is not polished and will likely be +reworked in the future. + +Language: GDScript + +Renderer: GLES 2 + +## How does it work? + +The base vehicle uses a +[`VehicleBody`](https://docs.godotengine.org/en/latest/classes/class_vehiclebody.html) +node. The trailer truck is tied together using a +[`ConeJointTwist`](https://docs.godotengine.org/en/latest/classes/class_conetwistjoint.html) +node, and the tow truck is tried together using a chain made of +[`RigidBody`](https://docs.godotengine.org/en/latest/classes/class_rigidbody.html) +nodes which are pinned together using +[`PinJoint`](https://docs.godotengine.org/en/latest/classes/class_pinjoint.html) nodes. + +## Screenshots + +![Screenshot](screenshots/tow.png) diff --git a/3d/truck_town/screenshots/.gdignore b/3d/truck_town/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/3d/truck_town/screenshots/tow.png b/3d/truck_town/screenshots/tow.png new file mode 100644 index 00000000..228f7f95 Binary files /dev/null and b/3d/truck_town/screenshots/tow.png differ diff --git a/mono/2.5d/README.md b/mono/2.5d/README.md index d190e253..b129385e 100644 --- a/mono/2.5d/README.md +++ b/mono/2.5d/README.md @@ -4,6 +4,10 @@ This demo project shows a way to create a 2.5D game in Godot by mixing 2D and 3D Note: There is a GDScript version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/misc/2.5d). +Language: [C#](https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/index.html) + +Renderer: GLES 2 + ## How does it work? Custom node types are added in a Godot plugin to allow 2.5D objects. Node25D serves as the base for all 2.5D objects. Its first child must be a 3D Spatial, which is used to calculate its position. Then, add a 2D Sprite (or similar) to display the object.