BYTEPATH #0 - Introduction
Introduction
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.
这个系列教程会带你用 Lua 和 LÖVE 从头做出一款完整游戏。它面向的是已经有一些编程经验、但刚开始接触游戏开发的程序员,或者已经用过其他语言、框架做游戏,想进一步摸清 Lua 或 LÖVE 用法的开发者。
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.
这次要做的游戏,可以看作是 Bit Blaster XL 和 流放之路天赋树 的结合体。它的体量不算太大,能够在若干篇文章里讲清楚,不至于战线拉得太长;但内容也并不少,如果是初学者,看到后面的代码时很容易开始发怵,最后还没做完就放弃了。

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.
以我自己为例,我一直都很想做那种拥有大量道具、被动和技能的游戏。所以在刚入门的时候,最难的一件事就是想清楚代码到底该怎么组织,才能让自己不至于越写越乱、最后把自己绕进去。希望这套教程能在这方面帮到你。

Requirements
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.
- 以及最基本的 Lua 知识,这篇速读教程 基本就够用了。
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.
也就是说,这套内容并不适合那种连编程本身都才刚刚起步的人。另外,这个教程系列里会穿插练习。如果你曾经有过“教程看完了,但完全不知道下一步该做什么”的经历,很可能就是因为那个教程没有给你留练习。所以如果你不想在这里也遇到同样的问题,我建议你至少认真尝试一下这些练习。
