🤑 Indie game store🙌 Free games😂 Fun games😨 Horror games
👷 Game development🎨 Assets📚 Comics
🎉 Sales🎁 Bundles

Tutorial series on making Arkanoid-type game with Lua and Love2d.

A topic by noooway created 91 days ago Views: 186 Replies: 7
Viewing posts 1 to 8


I have been writing a tutorial series on making a small Arkanoid-type game using LÖVE framework. I think, it has reached a point where I can announce it to a wider audience.

The LÖVE framework uses Lua language and it is geared towards 2d games. It is cross-platform, running on major desktop and mobile operating systems, and on the web (with the help of external tools, e.g. mari0, Mr. Rescue ). Last, but not least, it is free and open-source. LÖVE is simple and intuitive; glancing over this short article is enough to understand it's basic principles of operation.

The tutorial is intended for people, who have basic programming experience, but have trouble structuring their code for projects bigger than "Hello World". An Arkanoid, while simple, contains many elements found in more elaborate games. My aim is to introduce a typical code structure, and to provide a starting point for further modifications.

Here is a couple of screenshots:

Chapter 1 describes how to build a prototype for an Arkanoid-type game in the most straightforward way, without relying too much on any external libraries or advanced language features.

(follow the links for the screenshots).

  1. The Ball, The Brick, The Platform
  2. Bricks and Walls
  3. Detecting Collisions
  4. Resolving Collisions
  5. Levels

Chapter 2 expands the prototype, introducing gamestates, basic graphics and sound. At the end of this chapter, the general frame of the game is complete. What is left is to fill it with the details.

  1. Splitting Code into Several Files
  2. Loading Levels from Files
  3. Straightforward Gamestates
  4. Advanced Gamestates
  5. Basic Tiles
  6. Different Brick Types
  7. Basic Sound
  8. Game Over

Chapter 3 proceeds to add functionality to achieve a full-featured game. While the code for this chapter works and available in the repository, some minor corrections are required. Overall, the chapter currently in a draft stage.

  1. Better Ball Rebounds
  2. Ball Launch From Platform (Two Objects Moving Together)
  3. Mouse Controls
  4. Spawning Bonuses (draft)
  5. Bonus Effects (draft)
  6. Glue Bonus (draft)
  7. Add New Ball Bonus (draft)
  8. Life and Next Level Bonuses (draft)
  9. Random Bonuses (draft)
  10. Menu Buttons (draft)
  11. Wall Tiles (draft)
  12. Side Panel (draft)
  13. Score (draft)
  14. Fonts (draft)
  15. More Sounds (draft)
  16. Final Screen (draft)
  17. Packaging and Distribution (draft)

My current plans are to finish the third chapter and then to update the graphics and the sound.

Apart from the announcement, I'm also interested in critique: what is not clear, what can be done better, any mistakes (I'm sure, there are a lot of them), etc. Any feedback is appreciated.

Updated two more parts in the wiki:
3-4: Spawning Bonuses
3-5: Bonus Effects

I've updated one more part in the wiki: implementation of a "glue" bonus, which makes the ball stick to the platform.


(Edited 1 time)

Several parts on the wiki have been updated: Add New Ball BonusLife and Next Level Bonuses, and Random bonus generation.

The first appendix - Storing Levels as Strings - has been added.

Hi there! I don't know how I missed your tutorial until now, but it's going on my list of knowledge bases. Good work!

Thanks! Hope you'll find it useful.

Two more updates: simple main menu and wall tiles.

Several updates in the wiki: Side Panel, Score, Fonts, More Sounds