Have you ever found yourself wanting to create some fantastic little games that you and your friends can boot up and play together?
If you have spent a significant amount of time online exploring the vast amount of different game engines to use, you will know that there is a staggering amount to choose from. You have Godot, Phaser, libGDX, OGRE, Box2D, and a long list of others.
A little engine called Löve2D, (technically pronounced ‘Lurve,’ but let’s keep it simple), has recently caught my attention, and I’ll let you in on why it has.
What Is Löve, and What Can I Do With It?
Löve2D is an open-source game engine that strictly deals with the development of 2D games for the computer. It heavily utilizes the programming languages of Lua and C++ as its framework. Löve2D then uses that framework to create nifty little 2D games.
It was developed over 10 years ago and has been releasing multiple updates since. It’s first stable release, titled ‘Santa-Power,’ was released on January 13, 2008. The developers regularly update Löve2D, all with amusing nicknames to differentiate all of the versions: Salted Nuts, Baby Inspector, Super Toast, and Jiggly Juice.
It’s published under the ‘zlib License,’ which is a license that allows for extremely light restrictions. In fact, there are only three main points that the license emphasizes:
- The authorship of the original software must not be misrepresented,
- Altered source versions must not be misrepresented as being the original software, and
- The license notice must not be removed from source distributions.
Most importantly, you can create games with Löve2D.
Löve in Action
Not only is Löve2D free of charge and open-source, but it’s also cross-platform. This means that players and developers of all stripes and systems can get in on the game development goodness. As long as you can code in one of the two different languages (C++ and Lua), you’ll be making Löve2D games in no time.
These platforms include:
Open Source and Free
This game engine is completely free, and it even lets you edit the source code, with the stipulation that you don’t claim the code as your own, so don’t get greedy! This is a fantastic opportunity for first-time game developers and coders to practice above all else.
While game creating is always at the forefront of our minds, the engine can quickly get you more familiar with the ins and outs of coding and programming games and devices.
While Löve2D is a reliable open-source engine, there are some limitations. Right off the bat, games that are used cross-platform aren’t guaranteed to work between different Löve2D versions.
Where’s the Power? I Need Power!
Perhaps the most striking limitation of Löve2D is its lack of power. Löve2D is by no means even in the same universe in terms of power as Unreal or Unity. This could turn off some game developers looking for an impressive gaming project to occupy their time.
Compared to other engines, there aren’t as many modules to experiment with and use. This cuts down on creativity and diversity, which could sway developers’ opinions.
GUI? Never Heard of It.
Also, there is no graphical interface whatsoever for Löve2D. This means that there isn’t a client with a shiny user interface to consult with. You have to be able to read and write code and see the bare bones of the operation.
Although some may find this to not be a hurdle, it can prove to make the game-making process needlessly longer than it has to be. For first-time game developers, this is an unfortunate blemish on an otherwise robust open-source engine.
What About 3D?
Okay, I know it may not be fair to actually list this as a limitation, but still, some may be curious. The engine is strictly, and I mean STRICTLY 2D. 2D is its bread and butter, so those who want to do something like developing a hybrid between 2D and 3D, or just a full-blown 3D title are sadly out of luck.
This engine doesn’t have the horsepower needed for a big project like that.
Installing the engine is easy and free. You also have options, as it’s cross-platform. Let’s check out how to download Löve2D.
- First, head over to the Löve2D main page. They made a great decision by having all of the download options right on the home page. On this page, you can choose your download based on the operating system you’re using.
- For me, I use Windows. I would click on the ’64-bit installer.’ You also have the option between downloading it as an installer or as a zipped file with all of the applicable files in one folder. That’s up to you and your preference.
- After I click on the installer, it begins its download in my browser. It should download almost instantaneously.
- After opening the downloaded file, you’ll be treated to a guide that will take you through the steps of the installation.
- It recommends that you close all other applications you have running for optimal performance, and to avoid any unnecessary issues.
- It gives you a license page in which to click ‘I agree’ to, then creates a C disk folder for all things LÖVE. Click the next steps, and it should be done rather quickly.
And there you have it. In less than two minutes, LÖVE is on your system. Keep in mind, this was just my personal Windows via Firefox experience.
Lua is one of the main programming languages that Löve uses, along with C++. Lua is a strong programming language for making games.
You can learn the basics of Lua through several different programming tutorials freely given by the Lua official site and other avenues of research. The official site offers code snippets to familiarize yourself with different, simple aspects of the coding language.
Here are some examples:
If you want to draw text:
love.graphics.print(“Hello World!”, 400, 300)
If you want to draw an image:
whale = love.graphics.newImage(“whale.png”)
love.graphics.draw(whale, 300, 200)
If you want to play a sound:
sound = love.audio.newSource(“music.ogg”, “stream”)
Okay, now that we have the engine installed, let’s get down to brass tacks, shall we? Where do you begin? What features do you need to know how to use? Here are some choice tutorials for any beginner:
The official tutorials for game engines and the like are always a fantastic option for beginners. Frequently, the creators and developers of the engine or program are some of the best resources, naturally.
There is also a slew of other tutorials by passionate developers that can give you a valuable view of what engines can do. Let’s take a closer look.
How To LÖVE
There’s nothing better than a wiki. In this section, the developer and users of Love2D have compiled tons of helpful information for users. Perhaps the most useful tutorial series is the ‘How to LÖVE’ series.
This tremendous step-by-step guide will take you from installation all the way to creating platformers and collision detection properties in no time.
This tutorial series created by RVA Game Jams goes a step further than most. It teaches you programming basics in Lua as well as game development in the engine itself. An exciting part of this tutorial is that it’s always in development, much like the engine itself.
Here are the current sections of the tutorial:
- Chapter 1 – Programming basics
- Chapter 2 – Introducing LÖVE
- Chapter 3 – Programming in-depth (in progress)
- Chapter 4 – LÖVE in depth (to do)
If you ever wanted a crash course in computer science, Lua, and the game engine itself, you can find no better alternative for my money.
CS50 (Harvard University)
This video is fascinating for all of our visual learners as it teaches viewers and users to create PONG using Lua and LÖVE. It is a valuable intro to the actual practice of game development as well.
In the video, the two presenters, Colten Ogden and David Malan, part of Harvard’s Division of Continuing Education, take us through the different steps of coding with Lua and the game engine.
Get some snacks and your favorite drink, as you’ll be strapped in for about an hour and a half. However, it’s not dull, so don’t worry!
This is an introduction course, and they assume that you have no prior knowledge in any of the facets of computer science or programming, so no worries there.
This would be the best place to start, in my opinion, as it introduces concepts and ideas in game development that reaches far beyond the game engine itself to give the user a clearer picture of game development and technology.
Many other tutorials cater to different players and developer styles, and you can easily find any number of them with simple searches.
Games Made with Löve
Let’s take a look at some of the games made with Löve2d.
- Shoot ’em Up
- Mac, Windows, Linux
- .lazr. is a free local multiplayer glitch-punk arena shooter for you and your friends. It reminds me of a mix between Asteroids, Geometry Wars, with a dash of Enter the Gungeon.
- Aeternum Blammo
- Bullet Hell, Action
- Mac, Windows
- Anyone familiar with other shoot ’em up games like Ikaruga, Galaga, Enter the Gungeon, and others will feel right at home with this game made using Löve.
- Arne’s Breakout
- Mac, Android, Windows
- Fans of the game of Brick will immediately recognize and fall in love with Arne’s Breakout. It’s a version made in the open-source engine and has hand-coded graphics and physics, and a two-player mode.
- Bomb Dodgers
- Puzzle, Strategy
- Mac, Windows, Linux
- Any Bomberman players will latch onto this title immediately. Bomb Dodgers heavily resembles the games in the Bomberman series. You need to win two out of three rounds with multiple enemies to advance to the boss. Once they’re defeated, you advance to the next levels.
- GunFu Deadlands
- This retro-looking shooter bills itself as ‘A Far West themed 2D shooter featuring bullet time.’ What more else do you need? Set in a wild west town, the player needs to fend off outlaws. The game even includes a level editor.
If these are your types of games, ones that kill time, flex creative muscles and get you more interested in open source game creating, then Löve2D may very well be your first foray into the developing world.
If you aren’t a script kiddie and don’t really know your Java from your Python, this engine may actually cause more confusion than happiness. However, if you’ve got some coding languages down, it could prove to be right up your creative alley.
While it probably won’t be the place you end up on your creative journey, it isn’t a bad place to start it.
Paul Smith says
Löve2D isn’t “strictly” 2D. You have the options to write your own vertex and pixel shaders. What this means is that you can make the engine draw 3d meshes yourself if you understand the maths it takes to do that. There are several 3d lua libraries that you can use if you don’t understand the maths yourself.
You can also use a UI library if you don’t want to write all your own GUI code. Löve2D community is alive and there are a lot of libraries out there covering a range of topics that you can play and experiment with yourself.