Browse Source

Add README files to 2D demos

Aaron Franke 5 years ago
parent
commit
a24ac796b6
67 changed files with 314 additions and 9 deletions
  1. 17 0
      2d/dodge_the_creeps/README.md
  2. 30 0
      2d/finite_state_machine/README.md
  3. 1 1
      2d/finite_state_machine/project.godot
  4. 0 0
      2d/finite_state_machine/screenshots/.gdignore
  5. BIN
      2d/finite_state_machine/screenshots/fsm-attack.png
  6. 13 0
      2d/gd_paint/README.md
  7. 0 0
      2d/gd_paint/screenshots/.gdignore
  8. BIN
      2d/gd_paint/screenshots/gdpaint.png
  9. 16 0
      2d/hdr/README.md
  10. 0 0
      2d/hdr/screenshots/.gdignore
  11. BIN
      2d/hdr/screenshots/left.png
  12. BIN
      2d/hdr/screenshots/right.png
  13. 11 0
      2d/hexagonal_map/README.md
  14. 0 0
      2d/hexagonal_map/screenshots/.gdignore
  15. BIN
      2d/hexagonal_map/screenshots/hex.png
  16. 24 0
      2d/isometric/README.md
  17. 0 0
      2d/isometric/screenshots/.gdignore
  18. BIN
      2d/isometric/screenshots/isometric.png
  19. 14 0
      2d/kinematic_character/README.md
  20. 0 0
      2d/kinematic_character/screenshots/.gdignore
  21. BIN
      2d/kinematic_character/screenshots/kinematic.png
  22. 11 0
      2d/light2d_as_mask/README.md
  23. 1 1
      2d/light2d_as_mask/project.godot
  24. 0 0
      2d/light2d_as_mask/screenshots/.gdignore
  25. BIN
      2d/light2d_as_mask/screenshots/mask.png
  26. 13 0
      2d/lights_and_shadows/README.md
  27. 1 1
      2d/lights_and_shadows/project.godot
  28. 0 0
      2d/lights_and_shadows/screenshots/.gdignore
  29. BIN
      2d/lights_and_shadows/screenshots/lights.png
  30. 15 0
      2d/navigation/README.md
  31. 1 1
      2d/navigation/project.godot
  32. 0 0
      2d/navigation/screenshots/.gdignore
  33. BIN
      2d/navigation/screenshots/navigation.png
  34. 12 0
      2d/navigation_astar/README.md
  35. 1 1
      2d/navigation_astar/project.godot
  36. 0 0
      2d/navigation_astar/screenshots/.gdignore
  37. BIN
      2d/navigation_astar/screenshots/nav_astar.png
  38. 18 0
      2d/particles/README.md
  39. 1 1
      2d/particles/project.godot
  40. 0 0
      2d/particles/screenshots/.gdignore
  41. BIN
      2d/particles/screenshots/particles.png
  42. 28 0
      2d/physics_platformer/README.md
  43. 0 0
      2d/physics_platformer/screenshots/.gdignore
  44. BIN
      2d/physics_platformer/screenshots/beginning.png
  45. BIN
      2d/physics_platformer/screenshots/seesaw-riding.png
  46. 6 1
      2d/platformer/README.md
  47. 20 0
      2d/pong/README.md
  48. 0 0
      2d/pong/screenshots/.gdignore
  49. BIN
      2d/pong/screenshots/pong.png
  50. 1 1
      2d/pong/scripts/ceiling_floor.gd
  51. 15 0
      2d/role_playing_game/README.md
  52. 0 0
      2d/role_playing_game/screenshots/.gdignore
  53. BIN
      2d/role_playing_game/screenshots/battle.png
  54. BIN
      2d/role_playing_game/screenshots/object.png
  55. 14 0
      2d/screen_space_shaders/README.md
  56. 1 1
      2d/screen_space_shaders/project.godot
  57. 0 0
      2d/screen_space_shaders/screenshots/.gdignore
  58. BIN
      2d/screen_space_shaders/screenshots/old_film.png
  59. BIN
      2d/screen_space_shaders/screenshots/whirl.png
  60. 13 0
      2d/sdf_font/README.md
  61. BIN
      2d/sdf_font/icon.png
  62. 0 0
      2d/sdf_font/screenshots/.gdignore
  63. BIN
      2d/sdf_font/screenshots/sdf.png
  64. 12 0
      2d/sprite_shaders/README.md
  65. 0 0
      2d/sprite_shaders/screenshots/.gdignore
  66. BIN
      2d/sprite_shaders/screenshots/sprite.png
  67. 4 0
      misc/2.5d/README.md

+ 17 - 0
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)

+ 30 - 0
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)

+ 1 - 1
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"
 

+ 0 - 0
2d/finite_state_machine/screenshots/.gdignore


BIN
2d/finite_state_machine/screenshots/fsm-attack.png


+ 13 - 0
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)

+ 0 - 0
2d/gd_paint/screenshots/.gdignore


BIN
2d/gd_paint/screenshots/gdpaint.png


+ 16 - 0
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)

+ 0 - 0
2d/hdr/screenshots/.gdignore


BIN
2d/hdr/screenshots/left.png


BIN
2d/hdr/screenshots/right.png


+ 11 - 0
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)

+ 0 - 0
2d/hexagonal_map/screenshots/.gdignore


BIN
2d/hexagonal_map/screenshots/hex.png


+ 24 - 0
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)

+ 0 - 0
2d/isometric/screenshots/.gdignore


BIN
2d/isometric/screenshots/isometric.png


+ 14 - 0
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)

+ 0 - 0
2d/kinematic_character/screenshots/.gdignore


BIN
2d/kinematic_character/screenshots/kinematic.png


+ 11 - 0
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)

+ 1 - 1
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"
 

+ 0 - 0
2d/light2d_as_mask/screenshots/.gdignore


BIN
2d/light2d_as_mask/screenshots/mask.png


+ 13 - 0
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)

+ 1 - 1
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"
 

+ 0 - 0
2d/lights_and_shadows/screenshots/.gdignore


BIN
2d/lights_and_shadows/screenshots/lights.png


+ 15 - 0
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)

+ 1 - 1
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"
 

+ 0 - 0
2d/navigation/screenshots/.gdignore


BIN
2d/navigation/screenshots/navigation.png


+ 12 - 0
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)

+ 1 - 1
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"
 

+ 0 - 0
2d/navigation_astar/screenshots/.gdignore


BIN
2d/navigation_astar/screenshots/nav_astar.png


+ 18 - 0
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)

+ 1 - 1
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"
 

+ 0 - 0
2d/particles/screenshots/.gdignore


BIN
2d/particles/screenshots/particles.png


+ 28 - 0
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)

+ 0 - 0
2d/physics_platformer/screenshots/.gdignore


BIN
2d/physics_platformer/screenshots/beginning.png


BIN
2d/physics_platformer/screenshots/seesaw-riding.png


+ 6 - 1
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)

+ 20 - 0
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)

+ 0 - 0
2d/pong/screenshots/.gdignore


BIN
2d/pong/screenshots/pong.png


+ 1 - 1
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()

+ 15 - 0
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)

+ 0 - 0
2d/role_playing_game/screenshots/.gdignore


BIN
2d/role_playing_game/screenshots/battle.png


BIN
2d/role_playing_game/screenshots/object.png


+ 14 - 0
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)

+ 1 - 1
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"
 

+ 0 - 0
2d/screen_space_shaders/screenshots/.gdignore


BIN
2d/screen_space_shaders/screenshots/old_film.png


BIN
2d/screen_space_shaders/screenshots/whirl.png


+ 13 - 0
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)

BIN
2d/sdf_font/icon.png


+ 0 - 0
2d/sdf_font/screenshots/.gdignore


BIN
2d/sdf_font/screenshots/sdf.png


+ 12 - 0
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)

+ 0 - 0
2d/sprite_shaders/screenshots/.gdignore


BIN
2d/sprite_shaders/screenshots/sprite.png


+ 4 - 0
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.