New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BYTEPATH #0 - Introduction #30

adnzzzzZ opened this Issue Feb 14, 2018 · 5 comments


4 participants

adnzzzzZ commented Feb 14, 2018


This tutorial series will cover the creation of a complete game with Lua and LÖVE. It's aimed at programmers who have some experience but are just starting out with game development, or game developers who already have some experience with other languages or frameworks but want to figure out Lua or LÖVE better.

The game that will be created is a mix of Bit Blaster XL and Path of Exile's Passive Skill Tree. It's simple enough that it can be covered in a number of articles without extending for too long, but with enough content that a beginner would feel uncomfortable with the code and end up giving up before finishing.

It's also at a level of complexity that most game development tutorials don't cover. Most of the problems beginners have when starting out with game development have to do with scope. The usual advice is to start small and work your way up, and while that might be a good idea, if the types of projects you're interested in cannot be made any smaller then there are very few resources out there that attempt to guide you through the problems that come up.

In my case, I've always been interested in making games with lots and lots of items/passives/skills and so when I was starting out it was really hard to figure out a good way to structure my code so that I wouldn't get lost. Hopefully these tutorials can help someone with that.


Before you start there are some programming knowledge requirements:

  • The basics of programming, like variables, loops, conditionals, basic data structures and so on;

  • The basics of OOP, like knowing what classes, instances, attributes and methods are;

  • And the very basics of Lua, this quick tutorial should be good enough.

Essentially this is not for people who are just getting started with programming in general. Also, this tutorial series will have exercises. If you've ever been in the situation where you finish a tutorial and you don't know what to do next it's probably because it had no exercises, so if you don't want that to happen here then I recommend at least trying to do them.


1. Game Loop

2. Libraries

3. Rooms and Areas

4. Exercises

5. Game Basics

6. Player Basics

7. Player Stats and Attacks

8. Enemies

9. Director and Gameplay Loop

10. Coding Practices

11. Passives

12. More Passives

13. Skill Tree

14. Console

15. Final

If you liked these tutorials and want to support the writing of more like these in the future:

Buying the tutorial gives you access to the game's full source code, answers to exercises from articles 1 through 9, the code separated by articles (what the code should look like at the end of each article) and a Steam key to the game.

Comments on /r/programming

Comments on Hacker News

Comments on /r/gamedev


This comment has been minimized.

athros commented Feb 14, 2018

I’d recommend linking ( rather than because the comments render everywhere.


This comment has been minimized.


adnzzzzZ commented Feb 17, 2018

@athros Thanks for pointing that out, I changed it.


This comment has been minimized.

swapagarwal commented Feb 20, 2018

Maybe use GitBook for organizing these tutorials? 😄


This comment has been minimized.

ryukinix commented Feb 20, 2018

I liked the idea behind GitBook. Compile the whole stuff in a single document would be nice, though maybe we lost things like gifs that are useul sometimes to explain and demonstrate ideas, behaviors.


This comment has been minimized.


adnzzzzZ commented Feb 22, 2018

@swapagarwal @ryukinix I've looked into it but if I'm going to bother to use a platform other than github issues for my blog I'll probably just build my own site and serve content that way, since I'll have more control over it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment