All Projects → noooway → Love2d_arkanoid_tutorial

noooway / Love2d_arkanoid_tutorial

Licence: mit
Tutorial on making a full-featured arkanoid (breakout)-type game with LÖVE framework.

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to Love2d arkanoid tutorial

Blog
gamedev blog
Stars: ✭ 3,076 (+2145.26%)
Mutual labels:  gamedev, love2d, tutorial
Bytepath
A replayable arcade shooter with a focus on build theorycrafting made using Lua and LÖVE.
Stars: ✭ 1,119 (+716.79%)
Mutual labels:  gamedev, love2d, tutorial
Godot Kickstarter 2019
Create your Own Games with Godot, the Free Game Engine: sources from the January Kickstarter project from GDQuest
Stars: ✭ 194 (+41.61%)
Mutual labels:  gamedev, tutorial
awesome-playdate
A list of awesome resources for Playdate (https://play.date) game development and the Playdate SDK (https://play.date/dev/)
Stars: ✭ 149 (+8.76%)
Mutual labels:  gamedev, love2d
superfeather
SNES game engine in 65816 assembly, focusing on performance, flexibility, convenience
Stars: ✭ 31 (-77.37%)
Mutual labels:  gamedev, love2d
susse
super ültra sweet sprite editor
Stars: ✭ 22 (-83.94%)
Mutual labels:  gamedev, love2d
Nakama Godot Demo
A demo project with Godot engine and Nakama server.
Stars: ✭ 171 (+24.82%)
Mutual labels:  gamedev, tutorial
Gooi
LÖVE GUI Library
Stars: ✭ 168 (+22.63%)
Mutual labels:  gamedev, love2d
Godot3 procgen demos
Exploring Procedural Generation algorithms in Godot
Stars: ✭ 85 (-37.96%)
Mutual labels:  gamedev, tutorial
Katsudo
Katsudö is an animation library for LÖVE
Stars: ✭ 32 (-76.64%)
Mutual labels:  gamedev, love2d
Grid Sdk
The Grid SDK - Game engine for Lua
Stars: ✭ 612 (+346.72%)
Mutual labels:  gamedev, love2d
Godot tutorials
Code and examples for KidsCanCode Godot Tutorials.
Stars: ✭ 119 (-13.14%)
Mutual labels:  gamedev, tutorial
Love
LÖVE is an awesome 2D game framework for Lua.
Stars: ✭ 1,305 (+852.55%)
Mutual labels:  gamedev, love2d
Sock.lua
A Lua networking library for LÖVE games.
Stars: ✭ 121 (-11.68%)
Mutual labels:  gamedev, love2d
Deep Learning With Pytorch Tutorials
深度学习与PyTorch入门实战视频教程 配套源代码和PPT
Stars: ✭ 1,986 (+1349.64%)
Mutual labels:  tutorial
Golang For Nodejs Developers
Examples of Golang compared to Node.js for learning
Stars: ✭ 2,698 (+1869.34%)
Mutual labels:  tutorial
Laravel Getting Started
本文介绍如何开始使用 Laravel !
Stars: ✭ 132 (-3.65%)
Mutual labels:  tutorial
Your first decentralized application python
An up to date and bare minimum tutorial on deploying smart contracts with python
Stars: ✭ 132 (-3.65%)
Mutual labels:  tutorial
Universal React Tutorial
📓 How to build universal web apps with React.
Stars: ✭ 136 (-0.73%)
Mutual labels:  tutorial
G3d
Simple and easy 3D engine for LÖVE.
Stars: ✭ 135 (-1.46%)
Mutual labels:  love2d

This tutorial describes how to write a more or less full-featured Arkanoid (Breakout) clone.

Here are several screenshots from various stages of the development process:



The intended audience are 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.

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.

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.

Chapter 3 proceeds to add functionality to achieve a full-featured game. While the first two chapters are rather general, material in this chapter is mostly specific for Arkanoid-type games.

Appendices - which are not written yet :) - demonstrate some additional topics, such as how to use environments to define Lua modules, classes, and so on.

I realize that the length of the tutorial - almost 30 parts - is probably a bit too much. On the other hand, the amount of work necessary to write a game is commonly underestimated and this tutorial clearly shows what it actually takes to develop even a simple one.

Lua programming language and LÖVE framework are used. Basic programming experience is assumed. Familiarity with Lua and LÖVE is beneficial but not necessary. Some non-obvious Lua idioms are briefly explained.

The code can be downloaded using git

cd /your-path/
git clone https://github.com/noooway/love2d_arkanoid_tutorial

or by Github's "Clone or download -> Download ZIP" button.

Each step can be run with the LÖVE interpreter by issuing a love command followed by the folder name, for example

cd /your-path/love2d_arkanoid_tutorial
love 1-01_TheBallTheBrickThePlatform 

One last thing before we start: feedback is crucial. If you have any critique, suggestions, improvements or just any other ideas, please let me know.

Contents:

Chapter 1: Prototype

  1. The Ball, The Brick, The Platform
  2. Game Objects as Lua Tables
  3. Bricks and Walls
  4. Detecting Collisions
  5. Resolving Collisions
  6. Levels

    Appendix A: Storing Levels as Strings
    Appendix B: Optimized Collision Detection (draft)

Chapter 2: General Code Structure

  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

    Appendix B: Stricter Modules
    Appendix C-1: Intro to Classes
    Appendix C-2: Chapter 2 Using Classes.

Chapter 3 (deprecated): Details

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

Additional Topics:

  1. Game Design
  2. Minimal Marketing (draft)
  3. Finding a Team

Acknowledgements
Archive

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].