Skip to main content

Luma

Luma Engine is a lightweight Python game engine powered by SDL3

Installation

python -m pip install luma-engine

Quick Start

Create a file named main.py:

from luma import Luma


engine = Luma()
engine.create_window("Luma", 640, 480)
graphics = engine.Graphics


@engine.draw
def draw():
	graphics.setDrawColor(40, 120, 220)
	graphics.drawRect(220, 160, 200, 120)
	graphics.resetDrawColor()


@engine.update
def update(dt):
	# Update game state here. dt is elapsed time in seconds.
	pass


@engine.on(Luma.EVENTS.KEYPRESS)
def on_key_press(key):
	if key == Luma.Keyboard.SPACE:
		print("Space pressed")


engine.run()

Run it with:

python main.py

Examples

The repository includes complete examples in the examples directory, including a font demo and a Pong game:

python examples/font.py
python examples/pong.py

Docs

Documentation is available here

Requirements

  • Python 3.10 or newer
  • An SDL3-compatible system

License

Luma Engine is released under the MIT License.

Release files for luma-engine 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for luma-engine 0.2.0
File Size Uploaded
luma_engine-0.2.0.tar.gz 5.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for luma-engine 0.2.0
File Interpreter ABI Platform
luma_engine-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.9 MB

Release files / luma_engine-0.2.0.tar.gz

Download URL luma_engine-0.2.0.tar.gz
Size 5.4 MB
Tags Source
SHA-256 checksum
How to use checksums
57f70e03dd3a7040c5beb2dc06b64ea22cdf108904eb2549c7d8daf97486949f
BLAKE2b-256 checksum
How to use checksums
7d97b580d417e9d8359601cda26657a44c50c0f265055ba113466a3ecbf8cbf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release files / luma_engine-0.2.0-py3-none-any.whl

Download URL luma_engine-0.2.0-py3-none-any.whl
Size 5.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f7c802d694e7ade9c06a621c6b4dfe59fa151f6f5d61b27592c717364e5feaaf
BLAKE2b-256 checksum
How to use checksums
6b9832d472a977f1d730aa5e897d71d489018de47a8884ace4459aabbe366ef9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release history Release notifications | RSS feed

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page