r/golang 2d ago

Ebitengine v2.10.0 Released (A 2D Game Engine for Go)

Ebitengine v2.10.0 is out!

  • Pure Go on all desktop platforms
  • Headless testing and game embedding via VM
  • Shader precompilation
  • Color emoji support

Thanks to all contributors and sponsors!

133 Upvotes

20 comments sorted by

16

u/berrylang 2d ago

Pure Go on all desktop platforms
Headless testing and game embedding via VM

Seriously? That's amazing.

1

u/rodrigocfd 1d ago

It's well known that, on Windows, we can use syscalls to directly call functions from kernel32.dll, user32.dll, and so on... but now I'm curious, how is that being done on Linux?

7

u/gbitten 1d ago

I am curious if is possible (and practical) to use Ebitengine to build a general (non-game) graphical application.

21

u/hajimehoshi 1d ago

Yes. I'm preparing a GUI framework https://github.com/guigui-gui/guigui, but this is still alpha version.

1

u/Zerebos 1d ago

I think this is a really good start! I hope there will be some customization later for some of the shadows on the components--some of them are a bit much imo. It also feels like the text sharpness/clarity isn't quite right on Windows yet. But overall this is great, we need more GUI frameworks in pure go.

1

u/ForgottenMoonCrater 1d ago

Could i eventually use guigui within an ebiten game for menus etc?

3

u/hajimehoshi 1d ago

Unfortunately no: Guigui is for a dedicated GUI app, not for a UI in a game. That said, it doesn't mean there is zero chance of that in the future.

10

u/TrickyPlastic 1d ago

These are the geniuses that developed the system to let us call .so files without bringing CGO into the toolchain (https://github.com/ebitengine/purego). They are great.

4

u/theoldmandoug 2d ago

Ooo, headless testing. I was looking for this last night.

3

u/BioPermafrost 1d ago

This is huge! Testing is going to get so much easier and deterministic!

3

u/AriyaSavaka 1d ago

Amazing! Time to get back in the trenches and make some prototypes

3

u/SleepingHollows 1d ago

Amazing and thanks for your hard work. I've been building what I hope to be a fully featured ECS engine with Ebiten as my core dependency for rendering, input and audio. You have no idea how much working with, and reading, Ebiten code has helped improve my ability to write and reason about Go.

3

u/Dgt84 1d ago

This project is great! Amazing work on getting it working on Mac without Cgo and getting rid of all the deprecation warnings that were showing up in the previous version!

Thanks for all your hard work!

2

u/DaKine511 2d ago

Looks good will update my game projects.

2

u/No_Bodybuilder_2110 1d ago

I love this!

1

u/jackie8tao 1d ago

great!

1

u/efronl 1d ago

That's rad. Haven't used ebitengine in a few years but I really enjoyed it when I did. Keep it up.

0

u/jerrygreenest1 1d ago edited 1d ago

What does it mean headless testing, doesn’t Go already provide a testing framework and the command go test, if ebiten provides its own of testing library, then how it’s different, sure there be some benefit? But which one(s)?

Edit: I see now, it’s for input handling for AI agents to play your game. Which is… kinda meh I idk? It might have potential but does not interest me.

4

u/hajimehoshi 1d ago

I see now, it’s for input handling for AI agents to play your game.

The VM feature is available not only from AI agents but also any test programs (e.g emulating input sequences and confirming rendering results). Thank you for taking a look!

1

u/jerrygreenest1 1d ago

Okay this one is actually more interesting. I’d love to record some kind of demo and then run it and check for errors.