diff --git a/2d/dodge_the_creeps/README.md b/2d/dodge_the_creeps/README.md new file mode 100644 index 00000000..af2f8b45 --- /dev/null +++ b/2d/dodge_the_creeps/README.md @@ -0,0 +1,17 @@ +# Dodge the Creeps + +This is a simple game where your character must move +and avoid the enemies for as long as possible. + +This is a finished version of the game featured in the +["Your first game"](https://docs.godotengine.org/en/latest/getting_started/step_by_step/your_first_game.html) +tutorial in the documentation. For more details, +consider following the tutorial in the documentation. + +Language: GDScript + +Renderer: GLES 3 (particles are not available in GLES 2) + +## Screenshots + +![GIF from the documentation](https://docs.godotengine.org/en/latest/_images/dodge_preview.gif) diff --git a/2d/finite_state_machine/README.md b/2d/finite_state_machine/README.md new file mode 100644 index 00000000..9dc5db1e --- /dev/null +++ b/2d/finite_state_machine/README.md @@ -0,0 +1,30 @@ +# Hierarchical Finite State Machine + +This example shows how to apply the State machine programming +pattern in GDscript, including Hierarchical States, and a +pushdown automaton. + +Language: GDScript + +Renderer: GLES 2 + +## Why use a state machine + +States are common in games. You can use the pattern to: + +1. Separate each behavior and transitions between behaviors, + thus make scripts shorter and easier to manage. + +2. Respect the Single Responsibility Principle. + Each State object represents one action. + +3. Improve your code's structure. Look at the scene tree and + FileSystem tab: without looking at the code, you'll know + what the Player can or cannot do. + +You can read more about States in the excellent +[Game Programming Patterns ebook](https://gameprogrammingpatterns.com/state.html). + +## Screenshots + +![Screenshot](screenshots/fsm-attack.png) diff --git a/2d/finite_state_machine/project.godot b/2d/finite_state_machine/project.godot index 9d499a45..06abebe6 100644 --- a/2d/finite_state_machine/project.godot +++ b/2d/finite_state_machine/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="Hierarchical Finite State Machine example" +config/name="Hierarchical Finite State Machine" run/main_scene="res://Demo.tscn" config/icon="res://icon.png" diff --git a/2d/finite_state_machine/screenshots/.gdignore b/2d/finite_state_machine/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/finite_state_machine/screenshots/fsm-attack.png b/2d/finite_state_machine/screenshots/fsm-attack.png new file mode 100644 index 00000000..ac4e8fbd Binary files /dev/null and b/2d/finite_state_machine/screenshots/fsm-attack.png differ diff --git a/2d/gd_paint/README.md b/2d/gd_paint/README.md new file mode 100644 index 00000000..32ce3fb8 --- /dev/null +++ b/2d/gd_paint/README.md @@ -0,0 +1,13 @@ +# GD Paint + +GD Paint is a simple image editor made using Godot and GDScript. +It supports different types of "brushes": a basic pen/pencil +and eraser, as well as a rectangle and a circle brush. + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/gdpaint.png) diff --git a/2d/gd_paint/screenshots/.gdignore b/2d/gd_paint/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/gd_paint/screenshots/gdpaint.png b/2d/gd_paint/screenshots/gdpaint.png new file mode 100644 index 00000000..d9534d12 Binary files /dev/null and b/2d/gd_paint/screenshots/gdpaint.png differ diff --git a/2d/hdr/README.md b/2d/hdr/README.md new file mode 100644 index 00000000..9c1f75c4 --- /dev/null +++ b/2d/hdr/README.md @@ -0,0 +1,16 @@ +# HDR for 2D + +Simple demo how to use High Dynamic Range (HDR) in a 2D game, +via the WorldEnvironment node. + +Just slide the cave image left and right to observe the HDR effect at work. + +Language: GDScript + +Renderer: GLES 3 (HDR is not available in GLES 2) + +## Screenshots + +![Screenshot](screenshots/left.png) + +![Screenshot](screenshots/right.png) diff --git a/2d/hdr/screenshots/.gdignore b/2d/hdr/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/hdr/screenshots/left.png b/2d/hdr/screenshots/left.png new file mode 100644 index 00000000..1156f6d5 Binary files /dev/null and b/2d/hdr/screenshots/left.png differ diff --git a/2d/hdr/screenshots/right.png b/2d/hdr/screenshots/right.png new file mode 100644 index 00000000..44cedbc3 Binary files /dev/null and b/2d/hdr/screenshots/right.png differ diff --git a/2d/hexagonal_map/README.md b/2d/hexagonal_map/README.md new file mode 100644 index 00000000..c68f72e0 --- /dev/null +++ b/2d/hexagonal_map/README.md @@ -0,0 +1,11 @@ +# Hexagonal Game + +Very simple demo showing a hexagonal TileMap and TileSet. + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/hex.png) diff --git a/2d/hexagonal_map/screenshots/.gdignore b/2d/hexagonal_map/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/hexagonal_map/screenshots/hex.png b/2d/hexagonal_map/screenshots/hex.png new file mode 100644 index 00000000..99c9e7c4 Binary files /dev/null and b/2d/hexagonal_map/screenshots/hex.png differ diff --git a/2d/isometric/README.md b/2d/isometric/README.md new file mode 100644 index 00000000..8b1f4ea8 --- /dev/null +++ b/2d/isometric/README.md @@ -0,0 +1,24 @@ +# Isometric Game + +This demo shows a traditional isometric view with depth sorting. + +A character can move around the level and will also slide around objects, +as well as be occluded when standing in front or behind them. + +Language: GDScript + +Renderer: GLES 2 + +## How does it work? + +The level uses a [`TileMap`](https://docs.godotengine.org/en/latest/classes/class_tilemap.html#class-tilemap) +in which the tiles have different vertical offsets. +The walls, doors, and pillars each have +[`StaticBody2D`](https://docs.godotengine.org/en/latest/classes/class_staticbody2d.html) +and [`CollisionPolygon2D`](https://docs.godotengine.org/en/latest/classes/class_collisionpolygon2d.html) +at their base. The player also has a collider at its base, +which makes the player collide with the level. + +## Screenshots + +![Screenshot](screenshots/isometric.png) diff --git a/2d/isometric/screenshots/.gdignore b/2d/isometric/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/isometric/screenshots/isometric.png b/2d/isometric/screenshots/isometric.png new file mode 100644 index 00000000..59f512ce Binary files /dev/null and b/2d/isometric/screenshots/isometric.png differ diff --git a/2d/kinematic_character/README.md b/2d/kinematic_character/README.md new file mode 100644 index 00000000..bfe34bd8 --- /dev/null +++ b/2d/kinematic_character/README.md @@ -0,0 +1,14 @@ +# Kinematic Character + +Example of how to make a kinematic character controller in 2D using +[`KinematicBody2D`](https://docs.godotengine.org/en/latest/classes/class_kinematicbody2d.html). +The character moves around, is affected by moving platforms, +can jump through one-way collision platforms, etc. + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/kinematic.png) diff --git a/2d/kinematic_character/screenshots/.gdignore b/2d/kinematic_character/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/kinematic_character/screenshots/kinematic.png b/2d/kinematic_character/screenshots/kinematic.png new file mode 100644 index 00000000..09c73ccc Binary files /dev/null and b/2d/kinematic_character/screenshots/kinematic.png differ diff --git a/2d/light2d_as_mask/README.md b/2d/light2d_as_mask/README.md new file mode 100644 index 00000000..c5bf2903 --- /dev/null +++ b/2d/light2d_as_mask/README.md @@ -0,0 +1,11 @@ +# 2D Lights as Mask + +Example of how to use 2D lights to mask objects on screen. + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/mask.png) diff --git a/2d/light2d_as_mask/project.godot b/2d/light2d_as_mask/project.godot index bfa9c149..4502577f 100644 --- a/2d/light2d_as_mask/project.godot +++ b/2d/light2d_as_mask/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="Using Lights as Mask" +config/name="2D Lights as Mask" run/main_scene="res://lightmask.tscn" config/icon="res://icon.png" diff --git a/2d/light2d_as_mask/screenshots/.gdignore b/2d/light2d_as_mask/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/light2d_as_mask/screenshots/mask.png b/2d/light2d_as_mask/screenshots/mask.png new file mode 100644 index 00000000..5fdfda37 Binary files /dev/null and b/2d/light2d_as_mask/screenshots/mask.png differ diff --git a/2d/lights_and_shadows/README.md b/2d/lights_and_shadows/README.md new file mode 100644 index 00000000..758d9cc7 --- /dev/null +++ b/2d/lights_and_shadows/README.md @@ -0,0 +1,13 @@ +# 2D Lights and Shadows + +Simple demo of 2D lights and shadows, using +[`Light2D`](https://docs.godotengine.org/en/latest/classes/class_light2d.html) +and [`LightOccluder2D`](https://docs.godotengine.org/en/latest/classes/class_lightoccluder2d.html). + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/lights.png) diff --git a/2d/lights_and_shadows/project.godot b/2d/lights_and_shadows/project.godot index 037b3079..3a93c19e 100644 --- a/2d/lights_and_shadows/project.godot +++ b/2d/lights_and_shadows/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="2D Lighting" +config/name="2D Lights and Shadows" run/main_scene="res://light_shadows.tscn" config/icon="res://icon.png" diff --git a/2d/lights_and_shadows/screenshots/.gdignore b/2d/lights_and_shadows/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/lights_and_shadows/screenshots/lights.png b/2d/lights_and_shadows/screenshots/lights.png new file mode 100644 index 00000000..7d5cbdb6 Binary files /dev/null and b/2d/lights_and_shadows/screenshots/lights.png differ diff --git a/2d/navigation/README.md b/2d/navigation/README.md new file mode 100644 index 00000000..e139b056 --- /dev/null +++ b/2d/navigation/README.md @@ -0,0 +1,15 @@ +# Navigation Polygon 2D + +Example of using 2D navigation using a +[`NavigationPolygon`](https://docs.godotengine.org/en/latest/classes/class_navigationpolygon.html) +in a [`NavigationPolygonInstance`](https://docs.godotengine.org/en/latest/classes/class_navigationpolygoninstance.html) node. +It uses the 2D navigation API to request a path between two points, +and then traverses the resulting path. + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/navigation.png) diff --git a/2d/navigation/project.godot b/2d/navigation/project.godot index add40626..741a2b89 100644 --- a/2d/navigation/project.godot +++ b/2d/navigation/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="Navigation Polygon (2D)" +config/name="Navigation Polygon 2D" run/main_scene="res://level.tscn" config/icon="res://icon.png" diff --git a/2d/navigation/screenshots/.gdignore b/2d/navigation/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/navigation/screenshots/navigation.png b/2d/navigation/screenshots/navigation.png new file mode 100644 index 00000000..eda676e4 Binary files /dev/null and b/2d/navigation/screenshots/navigation.png differ diff --git a/2d/navigation_astar/README.md b/2d/navigation_astar/README.md new file mode 100644 index 00000000..4e5c7d92 --- /dev/null +++ b/2d/navigation_astar/README.md @@ -0,0 +1,12 @@ +# Grid-based Navigation with Astar + +This is an example of using AStar for navigation in 2D, +complete with Steering Behaviors in order to smooth the movement out. + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/nav_astar.png) diff --git a/2d/navigation_astar/project.godot b/2d/navigation_astar/project.godot index b58c37cd..76e52112 100644 --- a/2d/navigation_astar/project.godot +++ b/2d/navigation_astar/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="Grid-based pathfinding with Astar" +config/name="Grid-based Pathfinding with Astar" run/main_scene="res://Game.tscn" config/icon="res://icon.png" diff --git a/2d/navigation_astar/screenshots/.gdignore b/2d/navigation_astar/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/navigation_astar/screenshots/nav_astar.png b/2d/navigation_astar/screenshots/nav_astar.png new file mode 100644 index 00000000..a8267548 Binary files /dev/null and b/2d/navigation_astar/screenshots/nav_astar.png differ diff --git a/2d/particles/README.md b/2d/particles/README.md new file mode 100644 index 00000000..e709d15a --- /dev/null +++ b/2d/particles/README.md @@ -0,0 +1,18 @@ +# 2D Particles + +This demo showcases how 2D particle systems work in Godot. + +Language: GDScript + +Renderer: GLES 3 (particles are not available in GLES 2) + +## How does it work? + +It uses [`Particles2D`](https://docs.godotengine.org/en/latest/classes/class_particles2d.html) nodes +with [`ParticlesMaterial`](https://docs.godotengine.org/en/latest/classes/class_particlesmaterial.html) +materials. Note that `ParticlesMaterial` is agnostic between 2D and 3D, +so when used in 2D, the "Disable Z" flag should be enabled. + +## Screenshots + +![Screenshot of particles](screenshots/particles.png) diff --git a/2d/particles/project.godot b/2d/particles/project.godot index 4fb25a80..35e9c4d4 100644 --- a/2d/particles/project.godot +++ b/2d/particles/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="Particle Systems" +config/name="2D Particles" run/main_scene="res://particles.tscn" config/icon="res://icon.png" diff --git a/2d/particles/screenshots/.gdignore b/2d/particles/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/particles/screenshots/particles.png b/2d/particles/screenshots/particles.png new file mode 100644 index 00000000..8de70350 Binary files /dev/null and b/2d/particles/screenshots/particles.png differ diff --git a/2d/physics_platformer/README.md b/2d/physics_platformer/README.md new file mode 100644 index 00000000..7645a4bf --- /dev/null +++ b/2d/physics_platformer/README.md @@ -0,0 +1,28 @@ +# Physics Platformer + +This demo uses [`RigidBody2D`](https://docs.godotengine.org/en/latest/classes/class_rigidbody2d.html) +for the player and enemies. +These character controllers are more powerful than +[`KinematicBody2D`](https://docs.godotengine.org/en/latest/classes/class_kinematicbody2d.html), +but can be more difficult to handle, as they require +manual modification of the RigidBody velocity. + +Language: GDScript + +Renderer: GLES 3 (particles are not available in GLES 2) + +## How does it work? + +The player and enemies use dynamic character +controllers for movement, made with +[`RigidBody2D`](https://docs.godotengine.org/en/latest/classes/class_rigidbody2d.html), +which means that they can perfectly interact with physics +(there is a see-saw, and you can even ride enemies). +Because of this, all movement must be done in sync with +the physics engine, inside of `_integrate_forces()`. + +## Screenshots + +![Screenshot of the beginning](screenshots/beginning.png) + +![Screenshot of the seesaw and the player riding an enemy](screenshots/seesaw-riding.png) diff --git a/2d/physics_platformer/screenshots/.gdignore b/2d/physics_platformer/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/physics_platformer/screenshots/beginning.png b/2d/physics_platformer/screenshots/beginning.png new file mode 100644 index 00000000..1207aa98 Binary files /dev/null and b/2d/physics_platformer/screenshots/beginning.png differ diff --git a/2d/physics_platformer/screenshots/seesaw-riding.png b/2d/physics_platformer/screenshots/seesaw-riding.png new file mode 100644 index 00000000..4c75f3f4 Binary files /dev/null and b/2d/physics_platformer/screenshots/seesaw-riding.png differ diff --git a/2d/platformer/README.md b/2d/platformer/README.md index 14dd89e0..77a2a384 100644 --- a/2d/platformer/README.md +++ b/2d/platformer/README.md @@ -8,9 +8,13 @@ You will find most of the demo’s content in the `Level.tscn` scene. You can op We invite you to open the demo's GDScript files in the editor as they contain a lot of comments that explain how each class works. +Language: GDScript + +Renderer: GLES 3 (particles are not available in GLES 2) + ## Features -- Side-scrolling player controller. +- Side-scrolling player controller using [`KinematicBody2D`](https://docs.godotengine.org/en/latest/classes/class_kinematicbody2d.html). - Can walk on and snap to slopes. - Can shoot, including while jumping. - Enemies that crawl on the floor and change direction when they encounter an obstacle. @@ -26,4 +30,5 @@ We invite you to open the demo's GDScript files in the editor as they contain a ## Screenshots ![Player shooting in the direction of an enemy](screenshots/shoot.png) + ![The entire level layout viewed in the editor](screenshots/layout.png) diff --git a/2d/pong/README.md b/2d/pong/README.md new file mode 100644 index 00000000..ac102735 --- /dev/null +++ b/2d/pong/README.md @@ -0,0 +1,20 @@ +# Pong with GDScript + +A simple Pong game. This demo shows best practices +for game development in Godot, including +[signals](https://docs.godotengine.org/en/latest/getting_started/step_by_step/signals.html). + +Language: GDScript + +Renderer: GLES 2 + +## How does it work? + +The walls, paddle, and ball are all +[`Area2D`](https://docs.godotengine.org/en/latest/classes/class_area2d.html) +nodes. When the ball touches the walls or the paddles, +they emit signals and modify the ball. + +## Screenshots + +![Screenshot](screenshots/pong.png) diff --git a/2d/pong/screenshots/.gdignore b/2d/pong/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/pong/screenshots/pong.png b/2d/pong/screenshots/pong.png new file mode 100644 index 00000000..a0778f89 Binary files /dev/null and b/2d/pong/screenshots/pong.png differ diff --git a/2d/pong/scripts/ceiling_floor.gd b/2d/pong/scripts/ceiling_floor.gd index d0975598..67a06991 100644 --- a/2d/pong/scripts/ceiling_floor.gd +++ b/2d/pong/scripts/ceiling_floor.gd @@ -2,6 +2,6 @@ extends Area2D export var _bounce_direction = 1 -func _on_area_entered( area ): +func _on_area_entered(area): if area.name == "Ball": area.direction = (area.direction + Vector2(0, _bounce_direction)).normalized() diff --git a/2d/role_playing_game/README.md b/2d/role_playing_game/README.md new file mode 100644 index 00000000..22297be1 --- /dev/null +++ b/2d/role_playing_game/README.md @@ -0,0 +1,15 @@ +# Role Playing Game + +This shows a method of creating grid-based movement with Godot +and GDScript. It also includes a simple JRPG-style dialogue and +battle system on top of it. + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/object.png) + +![Screenshot](screenshots/battle.png) diff --git a/2d/role_playing_game/screenshots/.gdignore b/2d/role_playing_game/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/role_playing_game/screenshots/battle.png b/2d/role_playing_game/screenshots/battle.png new file mode 100644 index 00000000..6b8360e7 Binary files /dev/null and b/2d/role_playing_game/screenshots/battle.png differ diff --git a/2d/role_playing_game/screenshots/object.png b/2d/role_playing_game/screenshots/object.png new file mode 100644 index 00000000..bd47589d Binary files /dev/null and b/2d/role_playing_game/screenshots/object.png differ diff --git a/2d/screen_space_shaders/README.md b/2d/screen_space_shaders/README.md new file mode 100644 index 00000000..956da2d3 --- /dev/null +++ b/2d/screen_space_shaders/README.md @@ -0,0 +1,14 @@ +# Screen Space Shaders + +Several examples of full screen 2D shader processing. +Many common full-res effects are implemented here for reference. + +Language: [GDSL](https://docs.godotengine.org/en/latest/tutorials/shading/shading_reference/shading_language.html) and GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/whirl.png) + +![Screenshot](screenshots/old_film.png) diff --git a/2d/screen_space_shaders/project.godot b/2d/screen_space_shaders/project.godot index 8605ae8c..b8b7d489 100644 --- a/2d/screen_space_shaders/project.godot +++ b/2d/screen_space_shaders/project.godot @@ -15,7 +15,7 @@ _global_script_class_icons={ [application] -config/name="Screen-Space Shaders" +config/name="Screen Space Shaders" run/main_scene="res://screen_shaders.tscn" config/icon="res://icon.png" diff --git a/2d/screen_space_shaders/screenshots/.gdignore b/2d/screen_space_shaders/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/screen_space_shaders/screenshots/old_film.png b/2d/screen_space_shaders/screenshots/old_film.png new file mode 100644 index 00000000..bf80442c Binary files /dev/null and b/2d/screen_space_shaders/screenshots/old_film.png differ diff --git a/2d/screen_space_shaders/screenshots/whirl.png b/2d/screen_space_shaders/screenshots/whirl.png new file mode 100644 index 00000000..a8d317ee Binary files /dev/null and b/2d/screen_space_shaders/screenshots/whirl.png differ diff --git a/2d/sdf_font/README.md b/2d/sdf_font/README.md new file mode 100644 index 00000000..f07ca4d1 --- /dev/null +++ b/2d/sdf_font/README.md @@ -0,0 +1,13 @@ +# SDF Font + +This is a demo of Signed Distance Field fonts in Godot. +The technique used allows the text to remain clear +under arbitrary zooms and rotations. + +Language: GDScript + +Renderer: GLES 3 (this effect is not available in GLES 2) + +## Screenshots + +![Screenshot](screenshots/sdf.png) diff --git a/2d/sdf_font/icon.png b/2d/sdf_font/icon.png index 0d23bff0..95082efb 100644 Binary files a/2d/sdf_font/icon.png and b/2d/sdf_font/icon.png differ diff --git a/2d/sdf_font/screenshots/.gdignore b/2d/sdf_font/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/sdf_font/screenshots/sdf.png b/2d/sdf_font/screenshots/sdf.png new file mode 100644 index 00000000..9cab3e75 Binary files /dev/null and b/2d/sdf_font/screenshots/sdf.png differ diff --git a/2d/sprite_shaders/README.md b/2d/sprite_shaders/README.md new file mode 100644 index 00000000..1a427025 --- /dev/null +++ b/2d/sprite_shaders/README.md @@ -0,0 +1,12 @@ +# Sprite Shaders + +This is a sample consisting of different shaders applied to some sprites. +Effects include outlines, blurs, distorts, shadows, glows, and more. + +Language: [GDSL](https://docs.godotengine.org/en/latest/tutorials/shading/shading_reference/shading_language.html) + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/sprite.png) diff --git a/2d/sprite_shaders/screenshots/.gdignore b/2d/sprite_shaders/screenshots/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/2d/sprite_shaders/screenshots/sprite.png b/2d/sprite_shaders/screenshots/sprite.png new file mode 100644 index 00000000..04a2db69 Binary files /dev/null and b/2d/sprite_shaders/screenshots/sprite.png differ diff --git a/misc/2.5d/README.md b/misc/2.5d/README.md index 01b3d95d..b5ba9bde 100644 --- a/misc/2.5d/README.md +++ b/misc/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 Mono C# version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/mono/2.5d). +Language: GDScript + +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.