Implementing physics in a LÖVE game

Running and Falling

Getting back to main.lua (Listing 4), I will use the special variable dt in world:update () (line 23) to calculate the position of all moving parts depending on the time that has passed since the beginning of the execution.

As for drawing the results (lines 26 to 29), it is simply a matter of calling the draw () functions of terrainG (line 27) and the box (line 28).


If you're using ZeroBrane Studio [4] to edit your LÖVE code (and if you aren't, you should), you will be able to run the simulation directly from the editor by pressing the Start button in the toolbar.

You can also run the program from the command line with:

love /path/to/project/directory

Either way, you'll see something like Figure 5: a box falling from the sky and bouncing against the ground.

Figure 5: A box falls from the sky and bounces against the ground – physics!

Change line 19 in main.lua (Listing 4) to modify the initial position, bounciness, and friction of the box and add features to your body in pobject.lua (Listing 6). Add more objects, create particles, and change the components of the forces. In summary, enjoy your new physics sandbox!


  1. "Tutorial – LÖVE Animation" by Paul Brown, Linux Magazine, issue 234, May 2020, pp. 88-93,
  2. LÖVE:
  3. The Bouncy Square project:
  4. ZeroBrane Studio:

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Bang! Ding! Crash!

    To create an action-packed game with LÖVE, these are a few last things you should learn how to do – overlay fancy images to "physical" objects, detect collisions, and get input from the keyboard or mouse.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More