Garbage Collection in LÖVE

I recently got a message on the forums asking me about the way LÖVE does garbage collection on its objects, and I figured they probably aren't the only ones interested, so here's an expanded answer.

As some of you may know, LÖVE is written in C++, which features manual memory management, and Lua has garbage collection. How do we solve this mismatch? Why, with another way to manage memory, of course! I'll start off by explaining the Lua GC (Garbage Collector), then quickly discuss C++'s model, followed by LÖVE's solution.

Lövely Interviews - rude

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.

In the making - have a look at running LÖVE projects

I asked on Twitter "Are you making a game with LÖVE? Show us what you're making!"

And these are the replies I got:

Wanderer by @wanderer_game

A 2D adventure game blending cinematic platformer and RPG, and LÖVE is perfect for it!

A Beginner's Guide to Shaders

Ever since shaders were introduced in Löve (previously called Pixel Effects) they have been shrouded in mystery and myth.

Let it glow! - Dynamically adding outlines to characters

Hello everyone,

I'm Micha, aka "Germanunkol". I recently took a course at university on image manipulation and was thrilled by the possibilities - fourier and hugh transformations, filters, noise - there are so many ways to make graphics look better. At the same time, so few Löve projects use shaders - and I want to contribute to changing that.

Preview of outline shader

Lövely Code #01 - Ternary Operations

Hello world, err, lövers! My name is Dale James and I'm writing to introduce you to one of my favourite things you can do in Lua, which is called a Ternary Operation.

Using Noise in Pixel Shaders

Note: this was written for LÖVE 0.8.0, since 0.9.0 the semantics for shaders have changed with the addition of vertex shaders. I have updated the code snippets so they hopefully with work in 0.9.0 but the downloadable examples will be incompatible.

My name is Mark Wonnacott and I’m a Computer Science student at the University of Bristol in the UK. I’m a hobbyist game developer and I am enamoured with the ease and accessibility of LÖVE and its accompanying libraries.

Like a lot of game development amateurs, I got into programming because I wanted to make games. I’m not an artist, game designer, or audio guy, but I like to have a go at it all. Lately I’ve been playing around with visual effects in LÖVE and having a lot of fun.

In this post I’m going to give a very practical start to playing with visual effects in LÖVE, especially using noise. So many things are possible and so much work has already been done, but hopefully this post will give you a starting point for your own exploration.

LÖVE 1.0 "Moar Bacon" Released

LÖVE 1.0 "Moar Bacon" Released

The dev team, after months of secrecy, are proud to announce the newest release of LÖVE; "Moar Bacon". Here are some quotes that were recorded from #love-supersecretclub;

Quick Snips: Delta Time

This is a new series I want to work on called "Quick Snips". These are articles that are short and quick, and covers mainly the small stuff that people mostly ignore and take for granted that it is a required thing to create good games.

In this article, we will talk about one (slightly mysterious) variable in love.update(), known as dt or Delta Time.

First-class Functions

This is part one of a two-part blog post on taking advantage of first-class functions in Lua. Part one explains the inner workings of first-class functions from both a generic computer science perspective, and how you implement that within Lua. Part two puts all the theory together to create a lean version of an Entity Manager.


Subscribe to Front page feed