Arkanoid game in Go using Ebiten game engine with ECS.

Arkanoid-go

Arkanoid game in Go using Ebiten game engine with ECS.

You must have Git LFS installed when cloning the repository to download assets.

See config/controls.toml for editing controls.

Screenshot

screenshot

Owner
Python, C/C++, Go, Rust, Javascript, Dart
null
Comments
  • Framerate issues

    Framerate issues

    The framerate is very, very jittery. This makes it hard to even control the panel right. One moment the ball comes flying in fast, then it stops due to a harsh drop in framerate, but I am moving my mouse along with the ball - or so I think - but it "tricks" me and I drop it.

    I am on Windows 10 and found the framerate not to be constant at all. The ball does not move smoothly.

  • Hide Mouse Inside Window

    Hide Mouse Inside Window

    I find it irritating that I have the mouse cursor visible when it is inside the window. I think you want to hide it.

    One thing I want to point out which is great is that you track the mouse position outside the window. This game would not be playable otherwise, so good job!

  • Crash on macOS

    Crash on macOS

    Thank you for using Ebiten! I tested this but found a crash:

    $ go run .
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x4150f4e]
    
    goroutine 5 [running]:
    github.com/hajimehoshi/ebiten.(*Image).isDisposed(...)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/image.go:57
    github.com/hajimehoshi/ebiten.(*Image).Bounds(...)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/image.go:375
    github.com/hajimehoshi/ebiten.(*Image).Size(...)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/image.go:52
    arkanoid/systems/sprite.drawImageWithWrap(0xc000024580, 0xc00000e3e0)
            /Users/hajimehoshi/ebiten-games/arkanoid-go/systems/sprite/render.go:51 +0x6e
    arkanoid/systems/sprite.RenderSystem(0xc00006c360, 0xc000012a50, 0xc000010088, 0xc000024580)
            /Users/hajimehoshi/ebiten-games/arkanoid-go/systems/sprite/render.go:42 +0x2a8
    main.game.Update(0xc00006c360, 0xc000012a50, 0xc000010088, 0xc000024580, 0x20, 0x30)
            /Users/hajimehoshi/ebiten-games/arkanoid-go/main.go:36 +0x95
    github.com/hajimehoshi/ebiten.(*imageDumper).update(0xc000254080, 0xc000024580, 0x0, 0x0)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/imagedumper_desktop.go:106 +0x4e
    github.com/hajimehoshi/ebiten.(*imageDumperGame).Update(0xc00000e500, 0xc000024580, 0x468a960, 0x0)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/run.go:180 +0x44
    github.com/hajimehoshi/ebiten.(*uiContext).update(0x466cb40, 0xc0001d6140, 0x0, 0x0)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/uicontext.go:262 +0x150
    github.com/hajimehoshi/ebiten.(*uiContext).Update(0x466cb40, 0xc0001d6140, 0x0, 0x0)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/uicontext.go:239 +0xb4
    github.com/hajimehoshi/ebiten/internal/uidriver/glfw.(*UserInterface).update(0x4667f20, 0x441a0a0, 0x466cb40, 0xc0001d0001, 0xc000048668)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/internal/uidriver/glfw/ui.go:751 +0x1d9
    github.com/hajimehoshi/ebiten/internal/uidriver/glfw.(*UserInterface).loop(0x4667f20, 0x441a0a0, 0x466cb40, 0x0, 0x0)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/internal/uidriver/glfw/ui.go:797 +0xec
    github.com/hajimehoshi/ebiten/internal/uidriver/glfw.(*UserInterface).run(0x4667f20, 0x441a0a0, 0x466cb40, 0x0, 0x0)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/internal/uidriver/glfw/ui.go:669 +0x232
    github.com/hajimehoshi/ebiten/internal/uidriver/glfw.(*UserInterface).Run.func1(0xc000012ac0, 0xc00006c3c0, 0x4667f20, 0x441a0a0, 0x466cb40)
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/internal/uidriver/glfw/ui.go:535 +0xbc
    created by github.com/hajimehoshi/ebiten/internal/uidriver/glfw.(*UserInterface).Run
            /Users/hajimehoshi/go/pkg/mod/github.com/hajimehoshi/[email protected]/internal/uidriver/glfw/ui.go:532 +0x154
    exit status 2
    
    
  • Menu does not Always React to Keyboard

    Menu does not Always React to Keyboard

    In the main menu I can press UP/DOWN but only half of the time will this change the option. Are you not reacting to key events but instead rely on the key state during the frame?

  • Horizontal Ball Movement

    Horizontal Ball Movement

    I find that depending on how the ball bounces off blocks it flies nearly horizontally sometimes. This means it takes ages to come back down to the bottom. You should probably have some margin of vertical movement always. It seems to me that it would be possible that we have a perfectly horizontal ball that never does anything anymore after deleting its line of blocks. This might lead to an infinite game.

Simple 2D game to teach myself various things about game development and ECS, etc

2d-grass-game I really don't know what to name this game. Its a big grass field, and its in 2d so....2D Grass game This is a simple 2D game to teach m

Jan 17, 2022
Spaceshooter - A port to go of the pygame Space Shooter game using the ebiten library
Spaceshooter - A port to go of the pygame Space Shooter game using the ebiten library

Space Shooter This is a port to go of the pygame Space Shooter (https://github.c

Sep 29, 2022
Minimal polymorphic solitaire engine in Go, ebiten

Gilbert Oddstream's Minimal Polymorphic Solitaire 5 There's a live WASM version here. Towards a polymorphic solitaire engine in Go+Ebiten, with help f

Dec 14, 2022
A simple breakout game made in Ebiten
A simple breakout game made in Ebiten

Ebiten Breakout Play online on itch.io A simple breakout game made in Ebiten. This is my first game made with Ebiten - a nice simple engine which allo

Nov 23, 2022
Simple 2D-grid game made with Ebiten
Simple 2D-grid game made with Ebiten

Simple 2D-grid game made with Ebiten

Mar 15, 2022
Helper library to transform TMX tile maps into a simpler format for Ebiten

Ebitmx Ebitmx is a super simple parser to help render TMX maps when using Ebiten for your games. Right now is super limited to XML and CSV data struct

Nov 16, 2022
Tetra3D is a 3D software renderer written in Go and Ebiten and made for games.
Tetra3D is a 3D software renderer written in Go and Ebiten and made for games.

Tetra3D Tetra3D Docs Support If you want to support development, feel free to check out my itch.io / Steam / Patreon. I also have a Discord server her

Dec 20, 2022
Implementation of a popular graphics benchmark written on Ebiten.
Implementation of a popular graphics benchmark written on Ebiten.

Ebiten Bunny Mark This is an implementation of the popular graphics benchmark written on Ebiten. The initial benchmark was created by Ian Lobb (code)

Dec 7, 2022
Donburi is just another Entity Component System library for Ebiten inspired by legion.
Donburi is just another Entity Component System library for Ebiten inspired by legion.

Donburi Donburi is just another Entity Component System library for Ebiten inspired by legion. It aims to be a feature rich and high performance ECS L

Dec 15, 2022
AircraftWar - a game powered by Go+ spx game engine
AircraftWar - a game powered by Go+ spx game engine

AircraftWar - a game powered by Go+ spx game engine How to run Download Go+ and build it. See https://github.com/goplus/gop#how-to-build. Download thi

Jan 5, 2022
FlappyCalf - a game powered by Go+ spx game engine
FlappyCalf - a game powered by Go+ spx game engine

FlappyCalf - a game powered by Go+ spx game engine How to run Download Go+ and build it. See https://github.com/goplus/gop#how-to-build. Download this

Nov 6, 2022
FlappyCalf - a game powered by Go+ spx game engine
FlappyCalf - a game powered by Go+ spx game engine

FlappyCalf - a game powered by Go+ spx game engine How to run Download Go+ and build it. See https://github.com/goplus/gop#how-to-build. Download this

Nov 6, 2022
MazePlay - a game powered by Go+ spx game engine
MazePlay - a game powered by Go+ spx game engine

MazePlay - a game powered by Go+ spx game engine How to run Download Go+ and build it. See https://github.com/goplus/gop#how-to-build. Download this g

Dec 16, 2021
A small fantasy game engine in WASM using GoLang
A small fantasy game engine in WASM using GoLang

The GoLang Fantasy Engine (GoLF Engine) is a retro game engine. It draws inspiration from fantasy console projects like pico-8, tic-80, and pyxle. Like those projects it is designed to be a retro-feeling game creation/playing tool. Unlike those projects GoLF is more minimal in scope and only provides an API and a small set of tools to help you create your games. Tools like an image editor and code editor are not built in. Despite this minimalism creating games in GoLF is still easy and should still maintain the retro game feel.

Jul 16, 2022
Go Game Engine using SDL for fun

nMage nMage is a (hopefully!) high performance 3D Game Engine written in Go being developed live, with recordings posted on YouTube. This project is b

Nov 30, 2022
Engo is an open-source 2D game engine written in Go.

Engo A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. Engo is currently compilable for

Dec 26, 2022
Go 3D Game Engine
Go 3D Game Engine

G3N - Go 3D Game Engine G3N (pronounced "gen") is an OpenGL 3D Game Engine written in Go. It can be used to write cross-platform Go applications that

Jan 9, 2023
Scalable Distributed Game Server Engine with Hot Swapping in Golang
Scalable Distributed Game Server Engine with Hot Swapping in Golang

GoWorld Scalable Distributed Game Server Engine with Hot Reload in Golang Features Architecture Introduction Get GoWorld Manage GoWorld Servers Demos

Dec 25, 2022
A pure Go game engine
A pure Go game engine

Oak A pure Go game engine Table of Contents Installation Motivation Features Support Quick Start Implementation and Examples Finished Games Installati

Jan 8, 2023