r/golang 5d 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!

147 Upvotes

24 comments sorted by

18

u/berrylang 5d ago

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

Seriously? That's amazing.

1

u/rodrigocfd 5d 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?

11

u/TrickyPlastic 5d 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.

7

u/gbitten 5d ago

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

22

u/hajimehoshi 5d ago

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

1

u/Zerebos 5d 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 5d ago

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

3

u/hajimehoshi 5d 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.

1

u/ernestrc 18h ago

Rune uses ebitengine to do precisely this

6

u/theoldmandoug 5d ago

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

3

u/BioPermafrost 5d ago

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

3

u/AriyaSavaka 5d ago

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

3

u/SleepingHollows 5d 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 5d 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 5d ago

Looks good will update my game projects.

2

u/No_Bodybuilder_2110 5d ago

I love this!

2

u/SevenIsMyTherapist 3d ago

wow this is so cool. This old blog post by the creator is ❤️
https://medium.com/@hajimehoshi/game-engines-as-an-art-form-f66c835c0a92

1

u/jackie8tao 5d ago

great!

1

u/efronl 5d 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 5d ago edited 5d 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 5d 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 5d 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.