The Ultimate Resolution and Rendering Solution for LÖVE 📐

Showcase your libraries, tools and other projects that help your fellow love users.
Post Reply
User avatar
Wimpy
Prole
Posts: 3
Joined: Sun Jan 19, 2025 1:53 pm
Contact:

The Ultimate Resolution and Rendering Solution for LÖVE 📐

Post by Wimpy »

Here's the first public release of Shöve (pronounced "shove"), a powerful resolution-handling and rendering library for the LÖVE framework.

Shöve started as a redesign of the excellent `push` library but evolved into something much more powerful, with a cleaner API and advanced rendering capabilities that let you focus on creating amazing games.

What Makes Shöve Special?
  • Progressive Learning Curve - Start with just 3 lines of code and add complexity as needed
  • Two Powerful Render Modes - Simple direct mode or advanced layer-based rendering
  • Multiple Fit Methods - Choose from aspect-preserving, pixel-perfect, stretch, or no scaling
  • Advanced Layer System - Control visibility, z-order, blending, and masking without hassle
  • Powerful Effect Pipeline - Apply shaders to specific layers or the entire game
  • Integrated Profiling - Debug rendering and measure performance right out of the box
Try It Today!

We've carefully crafted Shöve with real-world game development in mind. Whether creating a pixel-perfect retro platformer, a smooth vector-based game, or anything in between, Shöve gives you the tools to make your game look fantastic on any screen.

We can't wait to see what you build with Shöve!
User avatar
dusoft
Party member
Posts: 765
Joined: Fri Nov 08, 2013 12:07 am
Location: Europe usually
Contact:

Re: The Ultimate Resolution and Rendering Solution for LÖVE 📐

Post by dusoft »

Code: Select all

shove.createLayer("ui", {zIndex = 10}) -- Higher zIndex renders on top
[...]
shove.beginLayer("ui")
      love.graphics.setColor(1, 0.8, 0)
      love.graphics.print("Score: 100", 20, 20)
    shove.endLayer()
So I can move beginLayer anywhere in love.draw and the Z order will be respected? Because in your example it comes last, so naturally it is drawn over everything...

Also: I don't know how this:

Code: Select all

-- Traditional approach (harder to manage)
function love.draw()
  drawBackground()
  drawCharacters()
  drawParticles()
  drawUI()
  if debugMode then drawDebugInfo() end
end
is worse or harder to manage than this:

Code: Select all

-- Layer approach (more flexible and organized)
shove.beginDraw()
  shove.beginLayer("background")
    drawBackground()
  shove.endLayer()

  shove.beginLayer("gameplay")
    drawCharacters()
    drawParticles()
  shove.endLayer()

  shove.beginLayer("ui")
    drawUI()
  shove.endLayer()
  
Other than that any resolution management library is welcome.
Post Reply

Who is online

Users browsing this forum: Amazon [Bot], Semrush [Bot] and 5 guests