๐ŸŽฎ My First Defold Game ยท Episode 5 of 6 ยท See All Episodes
๐Ÿงฉ Episode 5 ยท Grid Swap ยท Animations ยท Timer

Puzzle Match
Match-3 Puzzle in Defold

Create a match-3 puzzle game with grid swapping, piece animations, combo scoring and a countdown timer. Learn GUI systems and tween animations!

๐Ÿ‘ถ Ages 10+โฑ๏ธ ~1.5 Hours๐ŸŽฎ Defoldโœ“ Free
๐Ÿ”„ Tween Animations๐Ÿ“Š 2D Arrays๐ŸŽฏ Match Detectionโฑ๏ธ Timer System๐Ÿ† Combo Scoring๐ŸŽฎ GUI Nodes
โญ
0 XP
Level 1
๐Ÿ”ฅ0
Your Progress0 / 10 steps
Build it in our Defold Studio too: lay out your scene, add real Lua scripts and export a Defold project in the browser, with no install. Open the Defold Mod Studio →
๐Ÿ“ฆ
Reference project files: download the finished Defold files used in this workshop: โฌ‡ defold-puzzle-reference.zip. Every code block also has a Copy button.
๐Ÿ’ป
How to run: Open Defold and load your project, then press Ctrl+B to build and run!
๐ŸŒ
How it works: write the code in each step, and the canvas on the right shows what your code does. It is a live preview that builds the game as you go, so you can play every step along the way. Type to see it update, or press Apply to Canvas to test it straight away.
๐ŸฆŠ
Lumo says: every step adds one feature to the same game. Type a little, click Apply to Canvas, and play it straight away. There is no wrong answer you can't undo.

Build Puzzle Step by Step

Each step adds one feature. Write the code, watch it come alive in the canvas, then make it your own.

Step 1 / 6
A grid puzzle to solve
๐ŸŽ‰๐Ÿงฉโœจ๐ŸŽŠ๐Ÿ†
You Built a Puzzle Game!

Amazing, you've made a complete match-3 puzzle with grid management, piece swapping, match detection, chain reactions, combo scoring and a countdown timer!

0
Total XP
1
Level
0
Best Streak
0%
Accuracy
๐ŸŽฎ Episode 6: Platformer โ†’โญ View My Progress
๐Ÿงฉ
Code Order: Defold Lua Update
+20 XP
Drag these Lua lines into the correct order for a Defold update function that moves a game object.
local pos = go.get_position()
function update(self, dt)
go.set_position(pos)
if self.moving_right then
    pos.x = pos.x + self.speed * dt
end