Game engine for 2d games

If I wanted to create an indie 2d game, is there a reasonably high level game engine / library for that purpose?

Reasonably high level.. my list at Haskell games - Joyful Systems mentions a few, but I feel there must be some more. None that we would call heavily used, unfortunately.

Rather low level, but still surprisingly usable if you ask me: Brillo

It also includes an entire collection of games in the examples directory:

What counts for high level? And also, 2d game – what’s in there?
What’s your deployment target?
Give us more details (=

(But Brillo can be a good start.)

Brillo doesn’t have sound though, right? I’d say that’s a missing piece to call it a batteries included 2d game engine.

I messed around with gloss and declarative sound (à la world -> Picture) and rigged up a “diff” based thing. Delta world -> Sound). Since the rising/falling edge is sometimes the sound trigger. I didn’t take it very far but it felt promising.

games/ld/47/src/Engine.hs · 86784db4a45ade0b9cbd8addb1d1b06146be882d · macaroni.dev / mayhem-engine · GitLab Code is here. It’s not very good (very mtl-y) and basically a thin wrapper around ALUT (not super algebraic lol)

I noticed there is sdl2, but not sure how old the thing is. I was searching for something from the old days, like Allegro or SDL (not exactly but similar functionalities).

I have used sdl2 and h-raylib for my haskell gamedev experiments, both were fun and intuitive to use and have a broad interface.

At first I tried rolling my own simple ECS with IntMaps for component lookup but later I also used apecs, which is pretty cool, but I sometimes couldn’t figure out how to do stuff that is beyond the tutorial they have. aztecs looks promising but I haven’t gotten around to trying it.

I haven’t looked at it myself yet, but I just encountered cadence, an apecs (ECS) + SDL2 engine today.

The SDL2 bindings work well, and there’s also SDL3 bindings in-progress: GitHub - klukaszek/sdl3-hs: Haskell bindings for the SDL3 library. · GitHub

There’s a games section on miso · GitHub w/ some advanced 2D games like GitHub - smelc/miso-darkcraw: Card game using Haskell miso · GitHub, can use 2D canvas or SVG graphics (3D canvas support as well).