kota's memex

bevy

Super easy native wayland support:

[dependencies]
bevy = { version = "0.12", features = ["wayland"] }

godot

Currently, there's no native wayland support. It is at least being worked on:
https://github.com/godotengine/godot-proposals/issues/990

It's big and powerful, but I feel a bit shoved into making a certain kind of game. Additionally, the engine itself is c++ and very complex so it'd be quite hard to make any tweaks to any underlying code.

sdl

There is support, but it's not enabled by default and there are a few bugs.

The most notable one I've been running into is that in your basic hello world example, with wayland enabled, the window will open in tiled mode instead of floating like on x11.

Without any flags windows are meant to be non-resizable in SDL, but they seem to have implemented this by simply ignoring resize requests rather than by setting the min/max size. This was apperantly fixed? but it doesn't seem to work on my machine: https://github.com/libsdl-org/SDL/pull/4065

Ultimately though, maybe this isn't a huge deal? I can't think of any case when you'd actually want the program to be non-resizable. The strange thing is, the cursor is blurry when running with native wayland.

If using SDL, I'd need to pick out a language that makes sense:

hare

c

zig

rust

go

love2d

Supports wayland! However, the mouse cursor is blurry and I'd kinda prefer not to write my games in lua at this point in my life.

raylib

Has experimental wayland support, including the go bindings: https://github.com/gen2brain/raylib-go/issues/24 https://github.com/raysan5/raylib/issues/2666

It's similar to SDL in many ways, but with a much smaller community. Reading through the example code definitely gives me a few concerns about the actual code quality of raylib, but admittedly the examples are super helpful and everything works nicely. I would need to pick a language similar to SDL.

ebitengine

Can't figure out how to get it to support wayland. It's also just not a very big project and I have some concerns about investing time into using it long term.

However, it does use go and does so in a garbage collector friendly manner. It feels very "native" using it with go.