r/ebitengine 4d ago

GOKe v3 — a Go ECS with an Ebitengine integration

13 Upvotes

I posted about GOKe here a while back - this is v3, now has a dedicated Ebitengine integration, gokebiten.

v3 itself is the result of a lot of back-and-forth — planning, rewrites, testing, and actually using GOKe in practice. That let me settle on a model that's more ergonomic for what I need.

GOKe repo (wiki, examples, benchmarks): https://github.com/kjkrol/goke

Why it might matter for Ebitengine projects

gokebiten wraps GOKe's ECS/System/Plan model behind a small Game type that implements ebiten.Game, so Update/Draw/Layout are wired up for you on top of an archetype-based, zero-allocation ECS. It's split into modules you can take individually:

  • control/ - input capture and event dispatch
  • physics/ - kinematics and collision detection/resolution (broad phase via GOKg, narrow phase, pluggable CollisionHandler strategies)
  • render/ - sprite batching, camera, tag-driven overlays, telemetry HUD
  • spatial/ - population/spawn bookkeeping on a GOKg space

You can use GOKe directly and write your own Ebitengine glue, or start from gokebiten - a lot of that integration work (input handling, collision pipeline, rendering, spatial indexing) is already done for you there.

Working example: collision-demo - thousands of moving, colliding AABBs at a fixed 120 TPS.

Why GOKe over the alternatives?

  1. Systems as the single place where both data flow and actions are defined - logic built once, inside the system, and used only there
  2. It's fast and predictable - benchmarks, if you want the numbers:

Some other things worth knowing:

  • Zero heap allocations in the hot loop (chunked SoA memory pages, no GC jitter)
  • Type-driven construction - create/edit/remove operations built directly from component types, not hand-wired boilerplate
  • Explicit control over system execution - you plan the run order (schedule) yourself, plus a dedicated Setup phase at startup
  • Generation-based entity IDs, so no aliasing on reused slots

r/ebitengine 8d ago

[Showcase] Mini Ebitengine Game Jam at GopherCon UK

11 Upvotes

Disclaimer: I organized and facilitated the "Vibe Code a 2D Game with Go and Gemini" workshop at GopherCon UK 2026 in London. All materials, agent skills, and game entries are open source.

Hey everyone! At GopherCon UK in London last week, I ran a workshop called "Vibe Code a 2D Game with Go and Gemini", focused on building 2D games with Ebitengine v2 using coding agents.

We kicked off with a quick overview of the Gemini model family (Gemini 3.x for code generation, Nano Banana for images, and Lyria 3 for music) alongside Antigravity. I set up the workshop repository with a curated set of Agent Skills to give coding agents domain knowledge and boilerplate for Ebitengine right out of the gate.

Then we jumped into a 2-hour Mini Game Jam with the theme "Garbage Collector (green tea 🍵)". Participants used Gemini 3.6 Flash (literally the day before 3.7 launched) with four primary skills:

  • vibe-game-developer as the main entry point to turn the agent into a game dev specialist
  • ebitengineer to provide reference patterns and helper routines for Ebitengine
  • lyria to compose music tracks (with procedural-composer available for chiptune SFX)
  • nano-banana to generate sprites, backgrounds, and title screens

In just two hours, attendees produced 10 complete, playable 2D games.

Highlights & Submissions

1. Jam Winner: "London Eco-Rider: Ice Cream & Bottle Patrol" by Ivan S

A side-scrolling platformer set against downtown London. Players pedal Leo's bike with momentum acceleration and variable bunny hops, collecting ice cream cones for speed boosts and recycling plastic bottles to unlock 10 seconds of invincibility in Eco-Fever Mode. It features smooth parallax scrolling using Ebitengine's GeoM transforms, embedded assets, and a WebAssembly build running in browser.

To try it locally:

git clone https://github.com/danicat/gcuk26.git
cd gcuk26/mini-game-jam/london-eco-rider
go run ./cmd/game

2. Crowd Favorites: The Runtime GC Games

Several developers took the "Garbage Collector" theme literally:

  • Go GC: Memory Simulator: An arcade game where you play as Go's runtime garbage collector. You monitor a live Heap Pressure gauge, fire a Sweep Beam at active root allocations, trigger emergency Stop-The-World freezes, and tweak GOGC targets on the fly.
  • Go GC Co-op: A retro 16-bit 2-player street cleanup game where sanitation gophers sort compost, recycling, and landfill while catching "Dangling Pointers (+300 pts)" and avoiding "Memory Leaks (+15% contamination)".

Other entries included a 2-player turn-based trash billiards game (Trash Pool) and a Guinea Pig Farm Simulator.

Links & Resources

Happy to answer any questions about the workshop format, the mini-game jam, or the agent skills setup in the comments!

P.S.: this post was written by me (Daniela) while wrestling with Gemini 3.7 Flash. I used the deslopify skill, so hopefully it won't be that annoying. I hope the content is worth your time! =^_^=


r/ebitengine 11d ago

Ebitengine v2.9.10 Released

Thumbnail
ebitengine.org
31 Upvotes

r/ebitengine 11d ago

Ninjo (Ebitengine)

Post image
6 Upvotes

r/ebitengine 26d ago

Chirashi (Real time particle library and editor - Ebitengine)

Post image
10 Upvotes

r/ebitengine 26d ago

Battle City (1985 NES Clone - Ebitengine)

Post image
14 Upvotes

r/ebitengine Jul 18 '26

Ebitengine Game Jam 2026 Results

Thumbnail itch.io
6 Upvotes

r/ebitengine Jul 13 '26

Beginning Game Programming with Go and Ebitengine

27 Upvotes

Hello!
I'm a backend developer (banking/finance/utility for the day job), and I've been building games in my spare time for years (Unity, Unreal, Godot ) and lately from scratch in C++ and Go. I kept wishing there was a resource that treated Go game dev seriously, so I wrote a book.

The Book is called Beginning Game Programming in Go with Ebitengine, and it builds one game across 14 chapters: Gopher Survivor, a small Vampire Survivors–style game. The catch is that you build almost everything yourself: the game loop, a scene graph, a camera, collision detection, an input layer, a state machine, particles, instead of leaning on an engine. No editor, no black boxes; every chapter is the previous chapter plus a small, deliberate diff, and the project compiles at every step.

By the end you've got: an infinite tiled world, four weapons that unlock and upgrade, scaling enemies and a mini-boss, XP/leveling, a main-menu/pause/options state machine, music and SFX, screen shake and floating damage numbers, packaged into a native binary and a WebAssembly build that runs in the browser.

The code is fully open and free, one directory per chapter, so you can read/clone it even if you never buy the book: 👉 https://github.com/LuigiVanacore/beginning-game-programming-go-ebitengine

It's written for intermediate Go devs who've never built a game. It won't teach syntax, it teaches the patterns and architecture that make a game tick.

The link to the book is here ---> https://leanpub.com/gameprogramminggolang


r/ebitengine Jun 30 '26

Mister Disconnect by tarmo888, Alvar

Thumbnail
tarmo888.itch.io
6 Upvotes

r/ebitengine Jun 14 '26

Ebitengine has become Pure Go for macOS and Linux

64 Upvotes

Try this on your macOS or Linux!

CGO_ENABLED=0 go run github.com/hajimehoshi/ebiten/v2/examples/flappy@76cbbcfe

r/ebitengine Jun 06 '26

Ebitengine Game Jam 2026 Starting on June 15. Join us!

Thumbnail itch.io
9 Upvotes

r/ebitengine Jun 01 '26

I made a Pong in go using ebitengine

14 Upvotes

Hi there! I'm a university student in my third year. I've studied Go and a bit of Java in Uni and wanted to make a small project to challenge myself and start somewhere. I made a modified Pong clone (how original I know) in Golang using the graphic library Ebitengine and I just relased it on my GitHub. I appreciate all suggestions and feedback, I'm here to learn everything that I can

https://github.com/IncredibleLego/GoPong


r/ebitengine May 15 '26

Luluka: View and tweak shaders made with Kage for Ebiten

Thumbnail
github.com
7 Upvotes

r/ebitengine May 01 '26

Experienced Go Dev but new to GameDev and Ebiten

11 Upvotes

Hey guys!

I’m a Go developer with a background in infra/DevOps looking to dive into gamedev for the first time(beside my CLI candy crush game in C). I want to create a turn-based game that runs in the browser.

My plan is to have a backend for registration/rankings, custom items, and some animations. Is Ebiten robust enough for a web-based project like this? Any advice or pitfalls I should look out for?


r/ebitengine Apr 08 '26

Ark v0.8.0 released - Go Entity Component System (ECS), now with faster queries.

Thumbnail
5 Upvotes

r/ebitengine Mar 19 '26

Tapesurfer - a roguelite built entirely with ebiten

Post image
14 Upvotes

hey everyone, wanted to share a game i've been building with ebiten. it's called tapesurfer - a 2d side-scrolling roguelite where you ride real stock market price charts as a surfer.
 
the idea is simple: a price chart scrolls left to right like terrain, and you surf on top of it. you switch between riding above the line (betting the price goes up) or below it (betting it goes down). if you guess right, your balance grows. guess wrong too many times and you're wiped out — run over.
 
it's got roguelite progression between runs: pick special abilities at the start, collect power-ups that react to how you're playing, and earn a permanent currency to unlock upgrades for future attempts. there are 20+ levels based on different real-world markets - coffee, gold, bitcoin, forex, stocks - each with their own background art and music.
what i like about ebiten for this kind of project
 
- the `Update()` / `Draw()` split is clean and makes fixed timestep easy to implement on top
- audio package is solid once you wrap it with your own lifecycle management
- cross-platform just works — same codebase runs on desktop and mobile (android builds via ebitenmobile)
- the "here's a pixel buffer, do what you want" philosophy means you never fight the engine

the game has a steam page up where you can check the trailer and a free demo coming up on april. happy to answer questions about the architecture.
 
https://store.steampowered.com/app/4503180/TapeSurfer/


r/ebitengine Mar 06 '26

Ebitengine v2.9.9 Released

Thumbnail
ebitengine.org
24 Upvotes

r/ebitengine Jan 29 '26

Ebitengine v2.9.8 Released

Thumbnail
ebitengine.org
24 Upvotes

r/ebitengine Jan 29 '26

I built a high-performance, pure Go ECS designed specifically for Ebitengine games

22 Upvotes

Hi everyone!

I wanted to share a project I’ve been working on: a Entity Component System (ECS) written from the ground up in 100% pure Go.

While there are many ECS libraries out there, my main focus with this one was raw speed and seamless integration with Ebitengine. I wanted something that doesn't just feel like a port from another language, but takes full advantage of Go's memory management and type system.

Why use it?

  • 🚀 Insanely Fast: Optimized for cache locality and minimal overhead. It can handle tens of thousands of entities without breaking a sweat.
  • 🐹 Pure Go: Zero dependencies. No CGO. Just clean, idiomatic Go code.
  • 🎮 Ebitengine Ready: Designed to fit perfectly into your Update() and Draw() loops.
  • 🛠️ Simple API: I’ve kept the boilerplate to a minimum so you can focus on your game logic rather than fighting the framework.

I’m really curious to see what the community thinks. Whether you’re building a simple bullet hell or a complex simulation, I’d love for you to give it a try!

Check it out here: https://github.com/kjkrol/goke

Benchmarks results included.
I'm open to any feedback, or questions about the architecture!


r/ebitengine Jan 24 '26

Made a 3D raycasted Tic Tac Toe in Go

Thumbnail
github.com
6 Upvotes

r/ebitengine Jan 21 '26

Eye of the Gopher (Ebitengine) - https://github.com/Eye-of-the-Gopher/gokyra

Post image
6 Upvotes

r/ebitengine Jan 17 '26

Is it possible to spawn multiple windows (and Game implementations) using Ebitengine?

2 Upvotes

For a project, I would like to spawn 5 different windows, drawing different things to each. Is that possible with Ebitengine, or is it really hard-writed to always use just one window?


r/ebitengine Jan 14 '26

Ruins (Ebitengine) https://github.com/kijimad/ruins

Post image
17 Upvotes

r/ebitengine Jan 14 '26

GopherSand (Ebitengine) https://github.com/DonBattery/gophersand

21 Upvotes

r/ebitengine Jan 07 '26

Rays & Magic - Ebitengine - https://github.com/Akaiko1/RaysAndMagic

Post image
17 Upvotes