Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. LÖVE
  3. Push

Push

MITLua

A simple resolution-handling library for LÖVE that lets you develop games with a fixed resolution while adapting to different window sizes.

GitHubGitHub
660 stars145 forks0 contributors

What is Push?

Push is a resolution-handling library for the LÖVE game framework that simplifies adapting games to different screen sizes and resolutions. It allows developers to design their game at a fixed internal resolution while automatically scaling and adjusting the output to fit various window dimensions, maintaining aspect ratios and supporting features like pixel-perfect scaling and shader effects.

Target Audience

LÖVE developers creating 2D games who need a straightforward way to handle multiple screen resolutions and aspect ratios without managing complex scaling logic themselves.

Value Proposition

Developers choose Push for its simplicity and focused feature set—it provides essential resolution-handling tools with a clean API, reducing boilerplate code and letting them concentrate on game content rather than display intricacies.

Overview

A simple resolution-handling library for LÖVE

Use Cases

Best For

  • Creating 2D games in LÖVE that need to run at a consistent internal resolution
  • Handling multiple screen sizes and aspect ratios without manual scaling calculations
  • Adding post-processing shader effects to LÖVE games with built-in canvas support
  • Developing pixel-perfect games with integer scaling options
  • Adapting LÖVE games for both desktop and mobile screen orientations
  • Simplifying coordinate conversion for input handling across scaled displays

Not Ideal For

  • Projects not using the LÖVE framework (as it's LÖVE-specific)
  • Games requiring frequent, dynamic resolution switching beyond basic window resizing
  • Developers needing advanced, automatic mobile UI adaptations like layout scaling
  • Teams that prefer full control over rendering without any abstraction layer

Pros & Cons

Pros

Simple Setup and API

With just `push:setupScreen` and `push:start/finish`, developers can handle resolution scaling, reducing boilerplate code as shown in the setup examples.

Versatile Display Options

Supports multiple modes like fullscreen, windowed, pixel-perfect, and high-dpi, allowing flexible presentation without complex configuration.

Integrated Canvas and Shaders

Provides built-in canvas support and allows applying multiple shaders for post-processing, simplifying advanced graphical effects with table-based shader lists.

Handy Coordinate Conversion

Includes `push:toGame` and `push:toReal` functions to easily convert between screen and game coordinates, essential for accurate input handling across scaled displays.

Cons

No Native Mobile Support

The README explicitly states it does not have built-in support for mobile platforms, requiring manual handling for orientation changes and fullscreen initialization.

Limited to LÖVE Ecosystem

As a LÖVE-specific library, it's not applicable to other game frameworks, restricting its use to projects within that environment.

Basic Mobile Guidance Only

While it offers guidance like using fullscreen mode and resize listeners, it lacks advanced features such as automatic UI scaling for different mobile devices.

Frequently Asked Questions

Quick Stats

Stars660
Forks145
Contributors0
Open Issues9
Last commit2 years ago
CreatedSince 2015

Tags

#graphics#shaders#canvas#game-development#lua#resolution-handling#2d-games#love2d#scaling

Built With

L
LÖVE
L
Lua

Included in

LÖVE4.3k
Auto-fetched 56 minutes ago

Related Projects

AutobatchAutobatch

Small LÖVE module to automate the use of SpriteBatches

Stars122
Forks7
Last commit7 years ago
deepdeep

Adds drawing layers to Love2D (or any Lua framework)

Stars107
Forks3
Last commit4 months ago
turtle.luaturtle.lua

Turtle graphics library for LÖVE.

Stars106
Forks7
Last commit5 years ago
ShöveShöve

A powerful resolution-handler and rendering library for LÖVE 📐

Stars94
Forks6
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub