Skip to content

A third person 3D action game about the joy of throwing food at robots. Ref: FF_GDT

License

Notifications You must be signed in to change notification settings

DiscoveringGodot/6_Food_Fight

Repository files navigation

Discovering Godot - The Game Engine You've Been Waiting For

Section 6 - Food Fight

This is GameDev.tv's guide to the free and open source Godot game engine. Learn the free to use, free to modify, free to create engine with one of the most successful online game development educational groups out there.

You're welcome to download, fork or do whatever else legal with all the files! The real value is in our huge, high-quality online tutorials that accompany this repo.

In This Section

Explore deeper into Godot's 3D capabilities with Food Fight! Learn to craft a third person action game with mouselook, projectiles and character customisation.

(Our ref: FF_GDT)

How To Build / Compile

This is a Godot project. If you're familiar with source control, then "clone this repo". Otherwise download the contents and place them in your projects folder, then import the project in Godot's launcher.

This branch is the course branch, each commit corresponds to a lecture in the course. The current state is our latest progress.

Lecture List

Here are the lectures of the course for this section...

1 Designing Food Fight

In this video (objectives)…

1 Discuss the game we're making 2 Examine the features we'll need to create

After watching (learning outcomes)…

Plan out the central mechanics and feeling of our frantic third person action game

2 Installing Assets for Food Fight

In this video (objectives)…

1 Create the Food Fight project in Godot 2 Download and install our assets

After watching (learning outcomes)…

Get our assets ready and have a quick look at what's included

3 Setting Up a Play Space

In this video (objectives)…

1 Set up a basic level 2 Add a camera, some lighting and a simple piece of furniture

After watching (learning outcomes)…

How to fix center of gravity problems in a RigidBody

4 Character and Player Scenes

In this video (objectives)…

1 Create a Character Scene 2 Create a Player Scene 3 Basic Player movement and rotation

After watching (learning outcomes)…

How to set up a character with a Skeleton, Mesh and AnimationPlayer

5 AnimationTreePlayer

In this video (objectives)…

1 Animate the PC when the player moves 2 Have the PC move from one animation to another smoothly

After watching (learning outcomes)…

How to blend animations with AnimationTreePlayer

6 Mouselook

In this video (objectives)…

1 Capture and free the mouse 2 Implement Mouselook

After watching (learning outcomes)…

How to rotate the camera and player with the mouse

7 Transforms, Basis and Matrices

In this video (objectives)…

1 Introduce Matrices, Basis and Transforms 2 Identify how these concepts will apply to Player Movement

After watching (learning outcomes)…

Identify how to move the Player Character relative to the Camera on the Horizontal axis

8 Moving with Mouselook

In this video (objectives)…

1 Add Jumping 2 Change movement so that it works relative to the Camera's horizontal axis 3 Add acceleration and deceleration

After watching (learning outcomes)…

Use Transforms and basis to create 3D movement with Mouselook

9 To GridMap or Not To GridMap?

In this video (objectives)…

1 Figure out if GridMaps are right for Food Fight 2 Create some architecture 3 Map out a simple level

After watching (learning outcomes)…

Determine if GridMaps are the right choice for your assets

10 Food To Fling - Firing Projectiles in 3D

In this video (objectives)…

1 Create a template for projectiles 2 Spawn a projectile 3 Have a projectile move whichever way the character is facing

After watching (learning outcomes)…

Be able to spawn and fire a projectile in a 3D environment

11 A Varied Diet - Adding More Food

In this video (objectives)…

1 Add food types as ammunition 2 Create a script to scan a directory for files 3 Fire food!

After watching (learning outcomes)…

How to scan a directory for files and return the contents as a dictionary

12 Finishing Our Food

In this video (objectives)…

1 Make sure we can only fire once every x seconds 2 Give food a wooshing sound 3 Enable the Doppler effect

After watching (learning outcomes)…

How to use the Doppler effect in 3D

13 Making Bystanders

In this video (objectives)…

1 Create bystanders 2 Create a spawner to fire bystanders across the level 3 Have bystanders vanish when hit by food

After watching (learning outcomes)…

How to use has_method() and VisibilityNotifier nodes

14 Creating Robot NPCs

In this video (objectives)…

1 Create Robot NPCs 2 Detect the PC with a Raycast 3 Limit how many times Robots fire each second

After watching (learning outcomes)…

Adding Adversaries!

15 Pausing the Game

In this video (objectives)…

1 Create a Pause menu 2 Pause the game 3 Unpause the game! 4 Toggle Fullscreen

After watching (learning outcomes)…

Learn how to pause and unpause a game in Godot and a cool way to toggle boolean values

16 Fun with Furniture 1: StaticBodies

In this video (objectives)…

1 Create Static furniture 2 Make invisible walls to contain the player

After watching (learning outcomes)…

Start filling our level with static furniture

17 Fun with Furniture 2: RigidBodies

In this video (objectives)…

1 Create movable furniture 2 Add one-way transparency to the walls so that the camera can see through them

After watching (learning outcomes)…

Fill our level with moveable furniture!

18 Limiting Ammo: Refilling the Food Fuel

In this video (objectives)…

1 Limit Player Ammo 2 Create an ammo refill system

After watching (learning outcomes)…

Limit player ammo

19 Better Animation Blending

In this video (objectives)…

1 Add animations for throwing food and reloading 2 Add a Blend3 node in our AnimationTreePlayer 3 layer blending nodes

After watching (learning outcomes)…

Layer multiple blend nodes in AnimationTreePlayer

20 Adding Lives - Robot NPCs

In this video (objectives)…

1 Add lives to all characters 2 Have characters remove themselves when they run out of lives 3 disable friendly fire

After watching (learning outcomes)…

Making and using enums

21 Adding Lives - The GUI

In this video (objectives)…

1 Create a GUI 2 Display player lives 3 Show how long before the next piece of ammo is collected

After watching (learning outcomes)…

Displaying how long we have left to wait in a TextureProgress node

22 ViewportContainer Nodes - 3D in 2D

In this video (objectives)…

1 Create Game Over and Victory Scenes 2 Display an animated 3D Robot npc within a 2D scene

After watching (learning outcomes)…

How to use ViewportContainer nodes to have multiple Viewports in a single scene

23 Sprite3D Nodes - 2D as 3D

In this video (objectives)…

1 Display Robot lives in 3D space 2 Allow the game to load the Victory and Game Over screens

After watching (learning outcomes)…

Counting lives as objects in the scene and using Sprite3D nodes

24 Preparing for Player Customisation

In this video (objectives)…

1 Create a PlayerTemplate Scene 2 Create a second Player Character

After watching (learning outcomes)…

Creating templates from existing scenes

25 Player Customisation Part 1

In this video (objectives)…

1 Creating a Player Customisation Scene

After watching (learning outcomes)…

Better Lighting Techniques

26 Player Customisation Part 2

In this video (objectives)…

1 Creating a Player Customisation guide 2 Applying textures to meshes at runtime 3 Cycling through lists

After watching (learning outcomes)…

How to apply a texture to a mesh at runtime

27 Player Customisation Part 3

In this video (objectives)…

1 Apply PC customisation to other scenes 2 Have a default setting if the player skips customisation 3 Make sure we don't load a scene in a paused state

After watching (learning outcomes)…

Storing and applying player customisation

28 Finishing Food Fight!

In this video (objectives)…

1 Create a start screen 2 Add music to the game 3 Finish Food Fight 4 Celebrate!

After watching (learning outcomes)…

Create the perfect arena for fighting robots with food!

About

A third person 3D action game about the joy of throwing food at robots. Ref: FF_GDT

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published