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.
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.
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.
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!
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
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?
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.
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
Space Shooter This is a port to go of the pygame Space Shooter (https://github.c
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
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
Simple 2D-grid game made with 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
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
Ebiten Bunny Mark This is an implementation of the popular graphics benchmark written on Ebiten. The initial benchmark was created by Ian Lobb (code)
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
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
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
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
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
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.
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
Engo A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. Engo is currently compilable for
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
GoWorld Scalable Distributed Game Server Engine with Hot Reload in Golang Features Architecture Introduction Get GoWorld Manage GoWorld Servers Demos
Oak A pure Go game engine Table of Contents Installation Motivation Features Support Quick Start Implementation and Examples Finished Games Installati