Ebitengine 2.3 Release Notes

Ebiten was renamed to Ebitengine on May 25, 2022.

v2.3.0

Issues for v2.3.0

DirectX on Windows

(#1007)

Ebitengine now supports DirectX on Windows. This is a preparation to support more environments like Arm Windows by Ebitengine.

Native compile for Nintendo Switch™

(#1900)

In the previous version, Ebitengine supported Nintendo Switch by go2cpp by converting Go program to C++ via the WebAssembly format. This was a portable and simple solution. However, an application was single-threaded and not performant due to the WebAssembly restriction. Compiling time for bunch of C++ files was also problematic.

In order to resolve these problems, Ebitengine now supports a native compiling for Nintendo Switch by Hitsumabushi, which replaces system calls in the Go runtime with C function calls. For more technical details, see a blog article about Hitsumabushi.

In order to support this, Ebitengine introduced a new build tag ebitencbackend.

An environment variable EBITEN_GRAPHICS_LIBRARY

You can specify an underlying graphics library for Ebitengine by an environment variable EBITEN_GRAPHICS_LIBRARY.

A build tag ebitengl was removed.

A build tag ebitenexternaldll

(#1832)

Ebitengine embeds DLL files for a Windows executable, and the executable extracts them on the fly. However, this can be problematic as the application might be unexpectdly recognized as a virus by some virus checkers.

A new build tag ebitenexternaldll stops embedding DLL file in a Windows executable. The executable will require a DLL file at the working directory. Copy them from Ebitengine repository's internal/glfw directory:

This is not a perfect solution yet, but should mitigate the false positives.

Vibration

(#1452)

Ebitengine introduced new APIs to vibrate mobile devices, browsers, and game controllers:

Window-resizing mode

(#1819)

Ebitengine introduced new APIs for various modes of resizing a window:

ebiten.IsWindowResizable and ebiten.SetWindowResizable was now deprecated.

Real-time PCM

(#2026)

Ebitengine introduced a new API for real-time PCM by adjusting an audio player's buffer size:

For an actual usage, see the new example realtimepcm.

Other new features

Bug fix

This release includes all the bug fixes in v2.2.x.

Performance

v2.3.1

Issues for v2.3.1

Bug fix

v2.3.2

Issues for v2.3.2

Bug fix

v2.3.3

Issues for v2.3.3

Bug fix

v2.3.4

Issues for v2.3.4

Bug fix

v2.3.5

Issues for v2.3.5

Bug fix

v2.3.6

Issues for v2.3.6

Bug fix

v2.3.7

Issues for v2.3.7

Bug fix

v2.3.8

Issues for v2.3.8

Bug fix