In Lövely Interviews I interview developers of LÖVE and LÖVE games. We start off this series with rude, the creator of LÖVE.
Tell us a bit about yourself. Who are you and what do you do?
Yes, well, I am rude, the original creator LÖVE. These days I don't actually work on the code anymore (though I might resume at some point), but I still do all the design related work, e.g. the new icons, the no-game screens (e.g. Super Toast), the website design, etc. At least I do that eventually, after I get enough harassment from bartbes and slime.
I do definitely exist in real life as well, but I prefer not to talk about that. I must remain shadowy and mysterious. The menace must remain phantom.
Can you tell us about how LÖVE came to exist?
Actually, I don't remember how it started. Possibly it was just a challenge to myself. If someone forced me to make up a story, however, it could be something like:
Well, I was looking for a free 2D-centric game framework that was easy to get up and running, and that would work on all platforms without too much hassle, but I couldn't find any. There were many engines and frameworks available, but they were too focused on 3D, which made the API unattractive for use in 2D games. So I began to work on my own API; a glorious world blissfully ignorant of the z-axis, where the children could finally laugh and play freely, both as in beer, and as in freedom. *single tear*
And so forth.
What was Mike's role, and why did he leave?
Yes, he was (well, is, since he's not dead) the co-author of the original code. He worked on lots of stuff all over the place, like fonts (ImageFonts were his idea), ParticleSystem, and other stuff. He also worked on the love.gui module, which ultimately wasn't released.
He didn't exactly "leave" in some dramatic incident, his interest just faded I guess. Or his interest faded because I was too bossy. Although you should probably ask Mike about that.
How did you decide on the name LÖVE?
Software at the time (2006-ish) seemed either very serious (Visual Studio Professional), or attempted be all badass (UNREAL ENGINE). I hated that, so I wanted to come up with a very non-serious and anti-badass name that evoked fuzzy warm feelings of fun, happiness, etc.
After a brainstorming I no longer remember clearly, "Love" (umlautless) surfaced somehow, and thought it was a perfect fit right away. I assumed, of course, that there was already some game-related software called Love out there (because every name is already taken in every context, no matter how ridiculous), but I couldn't find any. There wasn't even a Debian package called "love", which amazed me.
When I understood that I could be the one responsible for making this a reality:
$ make love
$ man love
$ apt-get install love
There was of course no turning back.
Later, when I designed the logo (the curvy LÖVE text), I added the umlauts on a whim since I decided that something was missing from the logo. That's how it became LÖVE. I also added a sarcastic copyright symbol to the logo, although that is removed now.
Why did you choose Lua as the framework's language?
The main reason was that it was easy to embed the VM.
Initially, LÖVE used SWIG, which is a way to generate a scriting API from C/C++ code. There was a vague plan to allow multiple languages (i.e. generate multiple scripting APIs using SWIG), but that was dropped eventually, since the API produced by SWIG was too ugly. Today the API/bindings are made by hand.
I vaguely remember trying to embed some other JS-like scripting language, but I don't remember the name, and it doesn't seem to exist anymore. The name had "Monkey" in it, I think.
LÖVE doesn't have tilemaps, UI, Camera, etc. The Animation object was even removed. Why do you choose to keep LÖVE to the basics like that?
"High level" things are (for me) mostly just in the way, and never work quite the way I need for a specific case. It's really easy to create a high level component which seems nice, but in reality is too inflexible for many cases, leaving lovers to develop their own e.g. tilemap component anyway, feeling sad that the built-in component is just uselessly standing there. So it's better if such things are made as third-party Lua libraries, so they're easier to modify or extend.
Also, there is an unwritten "emergent" guideline, which says that things which can be easily done in pure Lua should be done in pure Lua. This is affecting the API a bit, I think.
By the way, I don't exactly closely oversee LÖVE development at the moment, so it's not like I vigilantly enforce some principle in the LÖVE API, like your question might imply. It's the consensus of the LÖVE-dev hivemind that takes care of that.
Your last code-related commit was in 2014. Why did you stop working on LÖVE?
Hmm ... I don't know!
You would perhaps expect me to answer that I don't have time anymore, but actually, I do have time. So I should totally get back into it.
Of course, I don't really need to, since dem young'uns (bartbes, slime, fysx and others) got it covered.
Do you have any plans or hopes for the future of LÖVE?
LÖVE is already way more popular than I ever thought it would be. And also 'apt-get install love' is a reality now, so I don't see where we could possibly go from here.
Is there anything you would like to tell all lovers (LÖVE users)?
I regularly lurk the Games and Creations (formerly Projects and Demos) subforum (and other places), and it's so cool and impressive to see what people are making. I often think: "what?! I didn't know that was possible in LÖVE!".
Some games also really make me laugh, like that game where you are first flying horizontally, battling unicorns or something, then flying vertically battling your way through stuff until you get to space, and finally explosively landing (back on the ground) in a cinematic pose, wearing sunglasses. Unfortunately I don't remember the name of this game (if anyone does, please post a link in the comments).
So, definitely keep it coming, lovers.