Getting Began with 2D Physics in Godot


A physics engine is a system helps to detect the collisions between recreation objects and simulate their motion. That is very helpful once you wish to create a recreation that has life like physics habits. Widespread video games like puzzle video games and platformers use physics engine to create their core gameplay.

One well-known instance is Offended Birds. It makes use of the physics engine to create the projectile of the chook and the life like fall of the obstacles after destruction.

On this tutorial, you’ll study in regards to the fundamentals of Godot 2D physics engine and how you can use it to construct a Marble drop recreation.

Alongside the way in which, you’ll:

  • Study totally different sorts of physics node.
  • Study PhysicsMaterial and the way it impacts the sport.
  • Use RigidBody2D node to create a dynamic physics object.
  • Use Area2D node to create a set off.
  • Use StatcBody2D node to create a stationary physics object.
  • Use Snap to Grid to align the nodes.
  • Add sound results and background music to the sport.

The ultimate product of this tutorial is a one-click, physics-based recreation. Gamers click on the enjoying discipline to drop a marble with the objective to attain as many factors as potential.
On the finish of this tutorial, you’ll know perceive the fundamentals of Godot’s 2D physics engine.

Get Began

This tutorial makes use of the newest secure model of Godot 4. You may obtain it right here.

Obtain the tutorial supplies by clicking Obtain Supplies on the prime or backside of the tutorial. Subsequent, extract the zip file to your chosen venture location.

There are two tasks included within the supplies:

  • starter: The starter venture you’ll use to construct upon.
  • remaining: The ultimate model of the sport you may run and play immediately.

This tutorial requires you to have fundamental information of Godot Engine. When you don’t really feel acquainted with Godot but, attempt these tutorials first:

File Overview

Import and open the starter venture in Godot Challenge Supervisor. After opening the venture, you’ll discover the ready useful resource information, similar to pictures, sounds, and consumer interfaces.

The venture construction is as follows:

  • fonts: Font information
  • music: Background music
  • scenes: Scene information

    • game_board.tscn: Sport Board Scene
    • game_over_dialog.tscn: GameOver dialog
    • gui.tscn: Rating and marble depend Consumer Interface
    • main_scene.tscn: Essential scene
  • scripts: Script information
  • sounds: Sound results
  • sprites: Graphics
  • credit score.txt: An inventory of attributions for the included property

Essential Scene

The Essential Scene is the scene the place the sport takes place. It comprises all nodes that want by the sport.

To open it, double-click main_scene.tscn within the FileSystem dock.

Then, change to the 2D display screen to preview the sport board.

Starter Project

Now, you’ve a grasp of what the venture seems like. Subsequent, you’ll study some fundamental ideas of the physics engine.

Understanding 2D Physics Engine

If you end up growing a recreation, it’s possible you’ll want the next options to craft the gameplay:

  • When two recreation objects collide with others, for instance, when a marble hits a rating set off.
  • Management the motion of an object after making use of a power or a collision has occurred. For instance, how the marble bounces off the pegs.

A physics engine is right for this; it gives two main capabilities: Collision Detection and Object Motion Simulation.

Collision Detection
The engine constantly checks for overlaps between the physics objects within the scene and sends indicators after they collide.

Object Motion Simulation
The engine simulates the motion of objects based mostly on their physics attributes.

These are the physics attributes in Godot:

  • Mass: Determines how forces have an effect on an object.
  • Gravity: Applies a downward power to simulate falling.
  • Friction: Resists the movement between two surfaces in touch.
  • Bounce: Determines how a lot velocity is reserved when two our bodies collide.

Now you recognize the fundamental ideas of the physics engine, you may transfer on to study extra in regards to the totally different physics nodes provided by Godot.

Understanding Totally different Physics Nodes

Godot affords three major physics nodes: RigidBody2D, StaticBody2D and Area2D. Every node has totally different functions and behaviors and you must select the precise one for every recreation component.

  • StaticBody2D: This node doesn’t transfer below physics simulation however can have an effect on RigidBody2D nodes.
    It’s used for stationary surroundings objects like pegs and partitions.
  • RigidBody2D: This node has mass and is actively simulated by the physics engine. It could reply to forces, gravity, and collisions. It could additionally have an effect on different RigidBody2D nodes.
  • Area2D: This node received’t trigger physics reactions, however it may examine for any collisions which have occurred. It’s used for getting into or exiting zones just like the rating set off.

Right here’s a fast comparability between the physics nodes:

Physics Node Comparison

With all this in thoughts, it’s time to create your first physics node.

Create a RigidBody2D node

To symbolize the marble within the recreation that may fall below gravity, and bounce off pegs, it’s worthwhile to create a RigidBody2D node.

The Marble Scene

With a view to create the marble that can be utilized within the recreation, it’s worthwhile to create a brand new scene for it with RigidBody2D as the foundation node. A scene is a group of nodes. On this case, it comprises a RigidBody2D node for the physics simulation and a Sprite2D node for the look of the marble.

To create the scene, choose the scenes folder within the FileSystem dock. Now right-click and choose Create New â–¸ Scene. Whereas the scene creation dialog is open, configure it like this:

  • Root Sort: Different Node â–¸ RigidBody2D
  • Scene Identify: marble.tscn
  • Root Identify: Marble


Create new marble scene

Concerning the PhysicsMaterial

Proper after creating the RigidBody2D node, it’s worthwhile to configure the PhysicsMaterial of the node. PhysicsMaterial is a setting that defines how the node behave within the physics simulation.

There are two major group of settings within the PhysicsMaterial: Friction and Tough and Bounce and Absorbent. Every group has totally different settings that have an effect on the node’s velocity when it collides with one other node.

Friction and Tough

Friction is a quantity between 0 and 1. The upper the worth, the node has extra friction and strikes slower when collide. The decrease the worth, the node has much less friction and seem to slip extra simply.

Tough is a boolean. It controls which friction worth is used among the many two colliding nodes. Listed below are the principles:

  • Each nodes Tough worth are ON, the upper friction worth is used.
  • Each nodes Tough worth are OFF, the decrease friction worth is used.
  • Just one node Tough worth is ON, the physics engine takes the friction worth with tough ON.

The next demonstration reveals how the marble behaves with totally different friction and tough setting.


Compare different frictions

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles