Implementation of a popular graphics benchmark written on Ebiten.

ebiten-bunny-mark Ebiten Bunny Mark

This is an implementation of the popular graphics benchmark written on Ebiten.

The initial benchmark was created by Ian Lobb (code) and Amanda Lobb (art)

Contents

Preview

Running

To run the benchmark from ready binary, visit the latest releases page.

To run the benchmark from sources do the following command:

go run github.com/sedyh/ebiten-bunny-mark@master

Please remember that @master only works since Go 17.

Instructions

  • Close all other programs for more accurate results.
  • Press the left mouse button to add some amount of gophers.
  • Adjust the number of gophers that appear at a time with the mouse wheel.
  • Increase the number of gophers until the FPS starts dropping below 60 to find out your result.
  • To understand that the drop in performance is not a one-off - use the graphs on the right, they show TPS, FPS and the number of objects over a certain time.
  • Press the right mouse button to color the gophers, this will greatly increase the load, but keep in mind that all measurements were taken without coloring.

Perfomance

Software Hardware Ebiten Version Resolution Maximum number of objects at stable 60 fps
Native, MacOS Big Sur 11.1 M1 2020 2.2.3 800x600 65400
Native, Windows 10 Pro 19.0 i7 3770, GTX 1050 TI 2.2.3 800x600 39000
Native, Linux Mint 20.2 Cinnamon R5 4600, RX 5700 XT 2.2.3 800x600 36000
Wasm, Linux Mint 20.2 Cinnamon, Chrome 96.0 R5 4600, RX 5700 XT 2.2.3 800x600 8150
Wasm, MacOS Big Sur 11.1, Safari 14.0 M1 2020 2.2.3 800x600 8100
Wasm, Linux Mint 20.2 Cinnamon, Firefox 95.0 R5 4600, RX 5700 XT 2.2.3 800x600 6200
Wasm, Windows 10 Pro 19.0, Chrome 96.0 i7 3770, GTX 1050 TI 2.2.3 800x600 5700
Wasm, Windows 10 Pro 19.0, Firefox 95.0 i7 3770, GTX 1050 TI 2.2.3 800x600 4700
Wasm, iPadOS 14.6, Safari 605.1 A10X 2.2.3 800x600 3200

Contributing

To add, remove, or change things on the perfomance table: send a message in this issue.

To add new functionality or fix something: submit a pull request.

Owner
Artem Sedykh
I'm 22 years old Russian backend/ml developer. Programming in Go, Java, C# and Python. Please check my gists: https://gist.github.com/sedyh.
Artem Sedykh
Similar Resources

WordleSolver - A solver for the popular word game Wordle

WordleSolver This is a solver for the popular word game Wordle. How to use the s

Jan 28, 2022

Go implementation of the A* search algorithm

go-astar A* pathfinding implementation for Go The A* pathfinding algorithm is a pathfinding algorithm noted for its performance and accuracy and is co

Dec 29, 2022

An open source re-implementation of Diablo 2

An open source re-implementation of Diablo 2

OpenDiablo2 Join us on Discord! Development Live stream Support us on Patreon We are also working on a toolset: https://github.com/OpenDiablo2/HellSpa

Jan 8, 2023

⛏ 🐹 Minecraft Protocol implementation in Go

⛏ 🐹 Minecraft Protocol implementation in Go

illustration by @talentlessguy Install Go 1.16.x is required to use this library go get github.com/BRA1L0R/go-mcproto Opening a connection client := m

Sep 20, 2022

An open-source re-implementation of Pokémon Red

An open-source re-implementation of Pokémon Red

This project is open source re-implementation of Pokémon Red.

Dec 6, 2022

This project is designed to be an open source implementation for streaming desktop games using WebRTC

This project is designed to be an open source implementation for streaming desktop games using WebRTC

The aim of this project is develop a WebRTC screenshare designed for streaming video games and accepting remote inputs. There will be ansible instruct

Oct 6, 2022

A go implementation of Conway's game of life

go-life A go implementation of Conway's game of life. The program takes input from stdin. It's recommended to use it as cat input.txt | go-life with i

Oct 20, 2021

Go implementation of 2048 game

Go implementation of 2048 game

Oct 21, 2021

snake game implementation using 2d array in Go

snake game implementation using 2d array in Go

Snake Game Implementation Snake game implementation in Go using a 2-dimensional array. Demo Install download the package git clone https://github.com/

May 14, 2022
Comments
  • Fix panic in GpuInfo

    Fix panic in GpuInfo

    On my PC it finds 5 graphic cards and some of them contain "nil" DeviceInfo. That's why we need find first graphics card which doesn't have a "nil" DeviceInfo to correctly determine the GPU name.

  • User measurements

    User measurements

    You can report here about the measurements made instead of creating PR. They will be added to the table shortly.

    Please use the following format:

    Software:

    Native or Wasm, OS name and version

    Hardware:

    CPU name, GPU name

    Maximum number of objects at stable 60 fps:

    Amount of objects

An implementation of the popular game Codenames created with Go and React.

OpenCodenames A real-time implementation of Codenames created with React/TypeScript and Golang. You can play the game here! Installation Stack: React

Aug 8, 2021
TCG - terminal cell graphics library
TCG - terminal cell graphics library

TCG - terminal cell graphics Go Graphics library for use in a text terminal. Only 1bit graphics can be used with two colors. Used unicode block symbol

Dec 14, 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
Arkanoid game in Go using Ebiten game engine with ECS.
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

Oct 9, 2022
A simple game that I created with Ebiten game library as a way to teach myself Go. Enjoy!
A simple game that I created with Ebiten game library as a way to teach myself Go. Enjoy!

galactic-asteroid-belt Overview A simple game that I created with Ebiten game library as a way to teach myself Go. Enjoy! Run To run, you will need Go

Dec 2, 2021
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
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
Simple 2D-grid game made with Ebiten
Simple 2D-grid game made with Ebiten

Simple 2D-grid game made with Ebiten

Mar 15, 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
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