Page 1 of 1

Love2D: But for the server.

Posted: Mon Apr 21, 2025 4:20 pm
by zalander
💡 Love:server-ed — Headless LOVE2D for Server-side Lua

Hey all!
I've been experimenting with something... unusual.
What if you could run LOVE2D without graphics, audio, input, or any window at all?

Introducing:

Love:server-ed
A modified fork of LOVE2D designed for server-side Lua scripting.
This is a headless version of LOVE(based on Love 11.5) that works in the terminal and is built for things like:
  • Multiplayer game servers
  • Simulations
  • Bots or automation
  • Anything where you don't need a window
🛠️ Features
  • `--server` mode: disables client-only modules
  • No window, no graphics, no sound
  • More to come !
🚀 Usage

Run a `.love` file in headless mode:

Code: Select all

./love --server foo.love
Run normally (GUI mode still works):

Code: Select all

./love bar.love
In `--server` mode, the following LOVE APIs are disabled:

Code: Select all

love.graphics
love.audio
love.keyboard
love.joystick
love.mouse
love.touch
love.window
love.video
love.image
love.system.vibrate
Why?
Because why not ?(there are a lot of reasons I know)

📦 GitHub Repo
Github

📌 IMPORTANT NOTE
This is just an experiment for now. Nothing is final.
Stuff will change, break, and probably explode.


That said, I'd love feedback, ideas, or cursed use-cases you've always wanted to try but couldn't because LOVE was too... visible.

Let me know what you think! :P

Re: Love2D: But for the server.

Posted: Mon Apr 21, 2025 4:47 pm
by BrotSagtMist
Isnt that just plain luajit now?

Re: Love2D: But for the server.

Posted: Mon Apr 21, 2025 6:33 pm
by dusoft
I think it's a good experiment, but I would have something more efficient (and optimized for) running on a server as a game backend.

Re: Love2D: But for the server.

Posted: Wed Apr 23, 2025 2:44 pm
by zalander
BrotSagtMist wrote: Mon Apr 21, 2025 4:47 pm Isnt that just plain luajit now?
Wait a second... JK, no it's not. LuaJIT doesn't come pre-packaged with timers (love.timer), filesystem abstraction (love.filesystem), and easy multithreading (love.thread).

Plus, you still get the full app lifecycle (just minus the window shenanigans). What I’m doing is keeping the native bindings and the LÖVE structure, just in a headless flavor. So no, it's not just plain LuaJIT. 🙃

Re: Love2D: But for the server.

Posted: Wed Apr 23, 2025 2:45 pm
by zalander
dusoft wrote: Mon Apr 21, 2025 6:33 pm I think it's a good experiment, but I would have something more efficient (and optimized for) running on a server as a game backend.
Yeah, I totally get where you're coming from! The goal here isn’t necessarily maximum efficiency, but more about bringing the LÖVE ecosystem to server-side applications while keeping it familiar for devs who already use it.

I’d agree, if you're aiming for top-tier performance or super lightweight backends, there are certainly more specialized tools out there (like Node.js, Go, or C++ backends). But for those who want the simplicity of LÖVE and a consistent development experience without worrying about graphics/audio/input bloat, this is a neat middle ground.

Re: Love2D: But for the server.

Posted: Wed Apr 23, 2025 2:46 pm
by dusoft
zalander wrote: Wed Apr 23, 2025 2:45 pm
dusoft wrote: Mon Apr 21, 2025 6:33 pm I think it's a good experiment, but I would have something more efficient (and optimized for) running on a server as a game backend.
Yeah, I totally get where you're coming from! The goal here isn’t necessarily maximum efficiency, but more about bringing the LÖVE ecosystem to server-side applications while keeping it familiar for devs who already use it.

I’d agree, if you're aiming for top-tier performance or super lightweight backends, there are certainly more specialized tools out there (like Node.js, Go, or C++ backends). But for those who want the simplicity of LÖVE and a consistent development experience without worrying about graphics/audio/input bloat, this is a neat middle ground.
What's your use case then? Headless.... what kind of software?

Re: Love2D: But for the server.

Posted: Wed Apr 23, 2025 2:51 pm
by zalander
dusoft wrote: Wed Apr 23, 2025 2:46 pm
zalander wrote: Wed Apr 23, 2025 2:45 pm
dusoft wrote: Mon Apr 21, 2025 6:33 pm I think it's a good experiment, but I would have something more efficient (and optimized for) running on a server as a game backend.
Yeah, I totally get where you're coming from! The goal here isn’t necessarily maximum efficiency, but more about bringing the LÖVE ecosystem to server-side applications while keeping it familiar for devs who already use it.

I’d agree, if you're aiming for top-tier performance or super lightweight backends, there are certainly more specialized tools out there (like Node.js, Go, or C++ backends). But for those who want the simplicity of LÖVE and a consistent development experience without worrying about graphics/audio/input bloat, this is a neat middle ground.
What's your use case then? Headless.... what kind of software?
My use case? Honestly, it's all about having fun and experimenting with the idea of bringing LOVE2D to the server-side world. 😄

I don't usually make games or apps—I'm more into creating libraries and frameworks. So, this project is more about playing around with the tech and seeing where I can push things.

There's no huge business or game dev goal here—just testing the limits of what LOVE can do outside of its usual graphical glory. It’s about making something unusual and seeing how it could be used in things like multiplayer servers, automation, or simulations.

Sometimes it’s just about breaking the rules, seeing what you can come up with, and pushing things in ways that aren’t obvious. That’s the fun of it for me.

Re: Love2D: But for the server.

Posted: Wed Apr 23, 2025 3:00 pm
by dusoft
I see, good luck, experimentation is great.

Re: Love2D: But for the server.

Posted: Wed Apr 23, 2025 3:01 pm
by zalander
dusoft wrote: Wed Apr 23, 2025 3:00 pm I see, good luck, experimentation is great.
Thanks! I'm all about experimentation—it's where the fun happens! Who knows, maybe this will lead to some wild use cases no one's thought of yet. 😎 Appreciate the support!