Löve In Two Dimensions

January 29th 20:09
by why

It’s a wonder. These pockets of people you can happen upon. The graphics environment is called Löve and it’s Lua and SDL glued together. So, somewhere between Pygame and Processing.

And it’s actually a rather active community with forums that are busy and full of tiny demos. It’s an attractive, fun, flippant site — which is surprisingly unusual among toolkits geared toward amateurs. (If you want to attract newbs to your site, I think you need to spend as much time on the art as you do on the code.)

Anyway, yeah, runs on Windows, OS X and Linux.


Let’s see, what else? How bout one of the creators of Löve showing how to move a potato around?


LÖVE Tutorial: Moving Around from Michael Enger on Vimeo.


The documentation is also fantastic. (Look at the one-line summaries of functions — that’s the stuff.) I mean this is a noble effort and they’re pulling it off.

Many great built-in libraries for common physics and graphics trick. Take, for example, the class wrapping sprites. Or the standard particle system.

That last one’s a good way to add explosions or steam effects to your game.

 local p = love.graphics.newParticleSystem(circle, 1000)
 p:setEmissionRate(100)
 p:setSpeed(300, 400)
 p:setGravity(0)
 p:setSize(2, 1)
 p:setColor(clr(255, 255, 255, 255), clr(58, 128, 255, 0))
 p:setPosition(400, 300)
 p:setLifetime(1)
 p:setParticleLife(1)
 p:setDirection(0)
 p:setSpread(360)
 p:setRadialAcceleration(-2000)
 p:setTangentialAcceleration(1000)
 love.graphics.draw(p, 0, 0)

In summary: A+.

Exceptional.

Does need to cool off on its use of CPU and memory. You’ll all help them fix that, right? Maybe even show them where Github is. All in all, fine fine work.

Now begin the comments …

10 comments

toothrot

said on January 29th 16:03

Wow! I can’t wait to dig into this.

_why

said on January 29th 23:33

Well, I just want to add that one of the first things that bit me was that you can’t just pass in a lua script. Watch the intro video. You can run a folder that has a game.conf and main.lua. Or you run a zip of the folder, named with the .love extension.

Happy loving.

Will

said on January 30th 02:07

Thaqt’s wicked. :D

James

said on January 30th 06:07

Really sweet find, think this might get me back into programming a game

Fester

said on January 30th 06:22

It reminds me about StructureSynth (http://structuresynth.sourceforge.net/) for some reason.

Jakob

said on January 30th 10:07

Whoa, I’m intrigued …

Bram

said on January 31st 05:58

To Fester: Thanks for pointing to StructureSynth, looks cool!

failrate

said on February 1st 17:46

Nice video and site and everything, but it currently fails the “just works” test. Even just small things like configure warns that you need Lua, but doesn’t specify which version (5.1). Also, configure seems to overlook other dev-libs if missing. Still, only 0.5x release, so…

teco

said on February 2nd 04:27

Why not Chipmunk?

iamwilhelm

said on February 3rd 21:52

Actually, you CAN just pass in a script. Kinda. I was stuck on this for a while, because they had instructions for windows, where you just drag the main.lua file onto love, but nothing for linux.

But then I was able to get love to print some help messages and basically, if you run:

love .

on the current directly with main.lua in it, it’ll run the script.

said on Mon DD HH:MM

* do fancy stuff in your comment.

PREVIEW PANE