Ebiten 1.11 Release Notes

v1.11.0

Issues for v1.11.0

New features

Game interface and RunGame

Game interface and RunGame function are introduced. These are new API to run a game.

Run function is not deprecated and will remain for a while, but it is recommended to use Game interface and RunGame function for new usages.

These are ncessary to make the window resizable instead of Run (Issue 943).

Resizable window

For more details about a resizable window, see the blog article.

type Game struct{}

func (g *Game) Update(screen *ebiten.Image) error {
    // Update the game state
    return nil
}

func (g *Game) Draw(screen *ebiten.Image) {
    // Draw the current game state
}

func (g *Game) Layout(outsideWidth, outsideHeight int)
    (screenWidth, screenHeight int) {
    // Accepts the outside size (e.g., window size), and
    // returns the game screen size.
    // The game screen scale is automatically adjusted.
    return 320, 240
}

func main() {
    g := &Game{}
    if err := ebiten.RunGame(g); err != nil {
        panic(err)
    }
}

Window position

Transparent screen

Floating window

You can develop a desktop mascot application with these API. See the mascot example.

Capturing cursor

Misc.

Performance improvement

Deprecated API

Bug fix

v1.11.1

Issues for v1.11.1

Bug fix

v1.11.2

Issues for v1.11.2

Bug fix

v1.11.3

Issues for v1.11.3

Bug fix

v1.11.4

Issues for v1.11.4

Bug fix

v1.11.5

Issues for v1.11.5

Bug fix

v1.11.6

Issues for v1.11.6

Bug fix

v1.11.7

Issues for v1.11.7

Bug fix

v1.11.8

Issues for v1.11.8

Bug fix

v1.11.9

Issues for v1.11.9

Bug fix