detailed week description
This commit is contained in:
parent
c8b56043e3
commit
3f430e51a3
121
README.md
121
README.md
@ -19,7 +19,7 @@ At the end of this course you will have achieved the following goals:
|
|||||||
* Practical knowledge of animation techniques
|
* Practical knowledge of animation techniques
|
||||||
* A working understanding of sound design
|
* A working understanding of sound design
|
||||||
* Application of physics for game-play mechanics
|
* Application of physics for game-play mechanics
|
||||||
* Comfort with both 2D and 3D game development
|
* Comfort with 2D game development
|
||||||
* Ability to publish and show your game
|
* Ability to publish and show your game
|
||||||
* Working understanding of UI in games
|
* Working understanding of UI in games
|
||||||
|
|
||||||
@ -27,6 +27,125 @@ Following this course, you’ll be welcome to join the growing community of crea
|
|||||||
|
|
||||||
Useful for: games, art, installations, animation, interactive experiences
|
Useful for: games, art, installations, animation, interactive experiences
|
||||||
|
|
||||||
|
# What to Expect:
|
||||||
|
|
||||||
|
## Week1 – Getting Started
|
||||||
|
|
||||||
|
* What is Godot?
|
||||||
|
* Why use a game engine?
|
||||||
|
* Organization (nodes, resources, scenes)
|
||||||
|
* The Big Four game objects
|
||||||
|
* Local and Global coordinates
|
||||||
|
|
||||||
|
Concepts covered:
|
||||||
|
|
||||||
|
* Static bodies
|
||||||
|
* Rigid bodies
|
||||||
|
* Character bodies
|
||||||
|
* Areas (Triggers)
|
||||||
|
* Signals
|
||||||
|
* Masks and Layers
|
||||||
|
|
||||||
|
Exercise:
|
||||||
|
Create a basic game scene using the four main types of game objects – static body, rigid body, character body, and area.
|
||||||
|
|
||||||
|
By doing this exercise, you’ll learn some of the most important core concepts about creating a game.
|
||||||
|
|
||||||
|
## Week2 – Deeper in Code and Bullets
|
||||||
|
|
||||||
|
* How does code work?
|
||||||
|
* Variables, Functions
|
||||||
|
* Operators, Conditionals
|
||||||
|
|
||||||
|
Concepts covered:
|
||||||
|
|
||||||
|
* Forces and Impulses
|
||||||
|
* Dynamic Instantiation
|
||||||
|
* Code based animation
|
||||||
|
* Groups
|
||||||
|
* Hitbox and Hurtbox (modules)
|
||||||
|
* Raycasts
|
||||||
|
|
||||||
|
Exercise:
|
||||||
|
|
||||||
|
Add melee attacks to the character by applying forces. Additionally add a ranged attack by firing a bullet. Learn to detect what objects are being attacked, and advance your knowledge of signals.
|
||||||
|
|
||||||
|
|
||||||
|
## Week3 – Graphics and Animation
|
||||||
|
|
||||||
|
* Three ways to animate graphics
|
||||||
|
* How to add images and style our graphics
|
||||||
|
* Animating the player character
|
||||||
|
* Creating levels, walls, platforms
|
||||||
|
|
||||||
|
Concepts covered:
|
||||||
|
|
||||||
|
* Sprites
|
||||||
|
* Animated Sprites
|
||||||
|
* Tilesets, Tilemap Layers, Terrains
|
||||||
|
* Cameras
|
||||||
|
* Scaling and Viewport
|
||||||
|
|
||||||
|
Exercise:
|
||||||
|
|
||||||
|
Create animation states for your player character, add graphics for the bullets. Learn to paint terrains for your world level.
|
||||||
|
|
||||||
|
## Week4 – Graphics and Animation 2
|
||||||
|
|
||||||
|
* Enhancing our world
|
||||||
|
* Enhancing player animation
|
||||||
|
* Using more graphics tools
|
||||||
|
* Creating traps
|
||||||
|
|
||||||
|
Concepts covered:
|
||||||
|
|
||||||
|
* Animatable objects
|
||||||
|
* Animation player
|
||||||
|
* Parallax background
|
||||||
|
* Scene controller
|
||||||
|
|
||||||
|
Exercise:
|
||||||
|
|
||||||
|
Enhance your level by learning to use terrains for painting graphics into your game world. Learn to use layers in terrains. And learn to trigger traps or effects based on player interaction.
|
||||||
|
|
||||||
|
# OPTIONAL: GAME ART JAM
|
||||||
|
Current students and alumni are invited for an evening of fun and to work together on enhancing the graphics and animation of their games!
|
||||||
|
|
||||||
|
|
||||||
|
## Week5 – Collectibles and Enemies
|
||||||
|
|
||||||
|
* Introducing enemies and obstacles
|
||||||
|
* Providing objectives and collectibles
|
||||||
|
* Simple AI
|
||||||
|
* Player death
|
||||||
|
|
||||||
|
Concepts covered:
|
||||||
|
|
||||||
|
* Unique names (scene singletons)
|
||||||
|
* Scene loading
|
||||||
|
* Enhanced Scene Manager
|
||||||
|
|
||||||
|
Exercise:
|
||||||
|
|
||||||
|
Introduce enemies to the game, along with objectives and items to collect. Allow the enemies to attack, and for the player character to be harmed. Learn to restart the game.
|
||||||
|
|
||||||
|
## Week6 – UI
|
||||||
|
|
||||||
|
* Enhance the player death
|
||||||
|
* Add a way to keep track of player and enemy health
|
||||||
|
* Keep track of collectibles
|
||||||
|
* Create a simple user interface
|
||||||
|
|
||||||
|
Concepts covered:
|
||||||
|
|
||||||
|
* Custom resources
|
||||||
|
* Game manager
|
||||||
|
* Class names
|
||||||
|
* Canvas layers
|
||||||
|
* Controls
|
||||||
|
Exercise:
|
||||||
|
Enhance the game architecture to include any number of enemies and objectives. Create a player health indicator and a score counter.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Contribute!
|
### Contribute!
|
||||||
|
@ -22,3 +22,8 @@ folder_colors={
|
|||||||
"res://scenes/": "yellow",
|
"res://scenes/": "yellow",
|
||||||
"res://scripts/": "red"
|
"res://scripts/": "red"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[layer_names]
|
||||||
|
|
||||||
|
2d_physics/layer_1="WorldSolids"
|
||||||
|
2d_physics/layer_2="WorldUnsolids"
|
||||||
|
@ -29,38 +29,14 @@ metadata/_edit_group_ = true
|
|||||||
shape = SubResource("WorldBoundaryShape2D_3u4a8")
|
shape = SubResource("WorldBoundaryShape2D_3u4a8")
|
||||||
|
|
||||||
[node name="RigidBody2D" type="RigidBody2D" parent="."]
|
[node name="RigidBody2D" type="RigidBody2D" parent="."]
|
||||||
position = Vector2(87, 18)
|
position = Vector2(99, 190)
|
||||||
rotation = 0.740513
|
rotation = 0.545383
|
||||||
|
metadata/_edit_group_ = true
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
|
||||||
position = Vector2(206.535, 208.174)
|
|
||||||
rotation = -0.555892
|
|
||||||
shape = SubResource("RectangleShape2D_4vo4d")
|
shape = SubResource("RectangleShape2D_4vo4d")
|
||||||
debug_color = Color(0.815686, 0.4, 0.207843, 0.419608)
|
debug_color = Color(0.815686, 0.4, 0.207843, 0.419608)
|
||||||
|
|
||||||
[node name="CollisionShape2D2" type="CollisionShape2D" parent="RigidBody2D"]
|
|
||||||
position = Vector2(206.535, 208.174)
|
|
||||||
rotation = -0.555892
|
|
||||||
shape = SubResource("RectangleShape2D_4vo4d")
|
|
||||||
debug_color = Color(0.815686, 0.4, 0.207843, 0.419608)
|
|
||||||
|
|
||||||
[node name="groundblock" type="StaticBody2D" parent="."]
|
|
||||||
position = Vector2(124, 357)
|
|
||||||
metadata/_edit_group_ = true
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="groundblock"]
|
|
||||||
position = Vector2(-1.5, 0)
|
|
||||||
shape = SubResource("RectangleShape2D_cq7kj")
|
|
||||||
|
|
||||||
[node name="groundblock2" type="StaticBody2D" parent="."]
|
|
||||||
position = Vector2(91, 430)
|
|
||||||
scale = Vector2(3.76, 1)
|
|
||||||
metadata/_edit_group_ = true
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="groundblock2"]
|
|
||||||
position = Vector2(-1.5, 0)
|
|
||||||
shape = SubResource("RectangleShape2D_cq7kj")
|
|
||||||
|
|
||||||
[node name="level" type="Node2D" parent="."]
|
[node name="level" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="groundblock2" type="StaticBody2D" parent="level"]
|
[node name="groundblock2" type="StaticBody2D" parent="level"]
|
||||||
@ -79,8 +55,27 @@ metadata/_edit_group_ = true
|
|||||||
position = Vector2(-1.5, 0)
|
position = Vector2(-1.5, 0)
|
||||||
shape = SubResource("RectangleShape2D_cq7kj")
|
shape = SubResource("RectangleShape2D_cq7kj")
|
||||||
|
|
||||||
|
[node name="groundblock" type="StaticBody2D" parent="level"]
|
||||||
|
position = Vector2(124, 357)
|
||||||
|
collision_layer = 2
|
||||||
|
metadata/_edit_group_ = true
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/groundblock"]
|
||||||
|
position = Vector2(-1.5, 0)
|
||||||
|
shape = SubResource("RectangleShape2D_cq7kj")
|
||||||
|
|
||||||
|
[node name="groundblock4" type="StaticBody2D" parent="level"]
|
||||||
|
position = Vector2(91, 430)
|
||||||
|
scale = Vector2(3.76, 1)
|
||||||
|
metadata/_edit_group_ = true
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/groundblock4"]
|
||||||
|
position = Vector2(-1.5, 0)
|
||||||
|
shape = SubResource("RectangleShape2D_cq7kj")
|
||||||
|
|
||||||
[node name="CharacterBody2D" type="CharacterBody2D" parent="."]
|
[node name="CharacterBody2D" type="CharacterBody2D" parent="."]
|
||||||
position = Vector2(155, 328)
|
position = Vector2(155, 328)
|
||||||
|
collision_mask = 3
|
||||||
script = ExtResource("1_u4sui")
|
script = ExtResource("1_u4sui")
|
||||||
metadata/_edit_group_ = true
|
metadata/_edit_group_ = true
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user