go-sdl2 VS Ebiten

Compare go-sdl2 vs Ebiten and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
go-sdl2 Ebiten
3 53
2,124 9,805
1.3% -
6.9 9.8
2 days ago about 21 hours ago
C Go
BSD 3-clause "New" or "Revised" License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

go-sdl2

Posts with mentions or reviews of go-sdl2. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-05.

Ebiten

Posts with mentions or reviews of Ebiten. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-24.
  • Making Games in Go for Absolute Beginners
    17 projects | news.ycombinator.com | 24 Nov 2023
    I love Go, yet I've never thought of it as a language with usable game engines. I'm extremely happy to find I was very wrong about that!

    I'm woefully behind the curve on compiling to WASM, though, and I've yet to experiment much with tinygo so I have no idea how far I would get in creating a game people could enjoy in a browser without having to download a big bundle of assets. It's reassuring to see WASM mentioned explicitly as a compilation target [1] by Ebitengine though.

    [1] https://github.com/hajimehoshi/ebiten

  • Ho did/do you remove cgo?
    1 project | /r/ebitengine | 18 Jun 2023
    For other OSes, see https://github.com/hajimehoshi/ebiten/issues/1162
  • Is there a love2d for c++?
    3 projects | /r/gamedev | 25 May 2023
    What about learning Go with Ebiten? Or Rust with Bevy?
  • What would be the closest thing to Unity/Unreal C#/C++ for Go to create games/animations/visual work?
    5 projects | /r/golang | 19 Apr 2023
    Actually, there is a game engine in Go. Ebiten(gine) is actually really popular and has already been used for a few games in production
  • How complex/big can I make games in Go?
    1 project | /r/golang | 9 Apr 2023
    Check out this thread, some of the linked repositories might be of help. https://github.com/hajimehoshi/ebiten/discussions/1527
  • Spaceshooter in Go
    1 project | dev.to | 13 Mar 2023
    // consider having a laser type to deal with orientation, etc // basic information to draw sprites, track position and update position type Body struct { // positions x float64 y float64 // velocities vx float64 vy float64 // get height and width from sheet.xml using sp width int height int } type Enemy struct { Body sp int health int } type Laser struct { Body sp int } type Mode int const ( ModeTitle Mode = iota ModeGame ModeGameOver ) var ( arcadeFont font.Face smallArcadeFont font.Face ) // fonts and sizes func init() { tt, err := truetype.Parse(fonts.ArcadeN_ttf) if err != nil { log.Fatal(err) } const dpi = 72 arcadeFont = truetype.NewFace(tt, &truetype.Options{ Size: fontSize, DPI: dpi, Hinting: font.HintingFull, }) smallArcadeFont = truetype.NewFace(tt, &truetype.Options{ Size: smallFontSize, DPI: dpi, Hinting: font.HintingFull, }) } // in the future have a laser type struct, spriteImgNum, and number of animations type Game struct { mode Mode level int // tracks location of player and maybe health Player struct { Body health int laserType int canShoot bool sp int // consider adding in height and width of player object // all of the sprites seem to be the same // TODO set global width } PLasers []*Laser Enemies []*Enemy ELasers []*Laser gameoverCount int } // load images func init() { // sprites img, _, err := image.Decode(bytes.NewReader(resources.Sprites_png)) if err != nil { log.Fatal(err) } gameImages, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault) // backgrounds img, _, err = image.Decode(bytes.NewReader(resources.Starfieldreal_jpg)) if err != nil { log.Fatal(err) } bgImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault) } // background image logic from // # https://github.com/hajimehoshi/ebiten/blob/master/examples/infinitescroll/main.go var ( theViewport = &viewport{} ) type viewport struct { x16 int y16 int } func (p *viewport) Move() { w, h := bgImage.Size() maxX16 := w * 16 maxY16 := h * 16 p.x16 += w / 32 p.y16 += h / 32 p.x16 %= maxX16 p.y16 %= maxY16 }
  • Mac + opengl
    2 projects | /r/GraphicsProgramming | 24 Jan 2023
    I noticed a similar issue when I got my MBP with the framebuffer not matching the window size and this has to do with the DPI settings. This GitHub link helped me understand the issue better and I hope it can be of assistance to you https://github.com/hajimehoshi/ebiten/pull/1811
  • crten - a small tool to view your pixel art with a CRT screen effect
    2 projects | /r/gamedev | 15 Nov 2022
    This program also demonstrates how great Ebitengine is and how you can port GLSL shaders to it almost 1 to 1.
  • Sharing Saturday #439
    3 projects | /r/roguelikedev | 4 Nov 2022
    Basic gist: built in Go with ebitengine, medieval fantasy, pixel art
  • Sharing Saturday #438
    4 projects | /r/roguelikedev | 28 Oct 2022
    Hey guys, first post here. I'm working on a roguelike written in Go using ebitengine. It's very early on, I don't wanna show too much in its current state, and of course everything is currently in flux, but I've made some progress and a few decisions.

What are some alternatives?

When comparing go-sdl2 and Ebiten you can also consider the following projects:

raylib-go - Go bindings for raylib, a simple and easy-to-use library to enjoy videogames programming.

Pixel - A hand-crafted 2D game library in Go

Pygame - 🐍🎮 pygame (the library) is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL.

engo - Engo is an open-source 2D game engine written in Go.

d3d9 - Direct3D9 wrapper for Go.

resolv - A Simple 2D Golang collision detection and resolution library for games

go-collada - Go package for working with the Collada file format.

Oak - A pure Go game engine

g3n - Go 3D Game Engine (http://g3n.rocks)

fyne - Cross platform GUI toolkit in Go inspired by Material Design