Ebiten vs PyGame

The following is a copy of a response I wrote to a university student asking in the Ebiten Discord server whether they should use Ebiten or PyGame for their first time making a game:

Having used both I can say that PyGame provides much more out of the box but that this is not just a pro but also a con. For example in pygame there is a concept of “sprite” that has movement and you can tell it move left, move right etc. In Ebiten it surprised me to find that there is no such thing but it’s nice for two reasons:

  • implementing movement is trivial and maybe you don’t want your sprite to move like that, e.g. my first game with Ebiten had moons orbiting, not moving left-right etc.
  • Ebiten is much simpler to understand

When I was using PyGame I’d say I spent roughly 80% of the time reading the docs and trying to understand how to use correctly what is already there and only 20% working on the game, whereas with Ebiten it was the other way around, 80% of time programming my game.

And then my last point for Ebiten is that it makes it easy for you to build a single binary that you can ship to any popular platform. Ironically just yesterday I closed the last outstanding issue on my awful PyGame game that has been open for 3 years: To bundle the game into a runnable .exe file, I failed, it was too hard for me, but with an Ebiten game, Go’s build tools do the job for you.

Maybe a bit of a long, opinionated rant but I wanted to share the experience:

  • PyGame makes it easy to get into gamedev if you have zero experience because its framework provides rich existing general features for a game but don’t expect others to be able to play your game (if everyone in your class is already using Python and have it installed then this is not an issue)
  • Ebiten is by design simple to the core, so easy to understand, it is less a framework and more a strong library, you may have to implement some of details yourself but if you’re already familiar with Go programming then this could be fun and not so challenging, and it will be easier to share your game with others as .exe or for web etc

There are surely many more pros/cons for both, but these are the two that stood out the most for me. I don’t regret using PyGame for my first competition entry, it was a good introduction, but I won’t use it again.

Launched a new game: Cr1ckt

Direct link to game: https://sinisterstuf.itch.io/cr1ckt

On the 1st of December Tristan, Rowan and I released the first version of Cr1ckt, a tricky platformer where you need to jump to avoid water and get to the fruit. It’s our submission for the GitHub Game Off 2021 game jam, an annual challenge to make a game based on a secret theme within the month of November. The theme this year is “BUG” so apart from playing as a cricket it also has some fun, intentional bugs.

It’s got downloads for major desktop platforms Windows, Linux & Mac, as well as Android. They’re quite small so you should be able to download and play quite fast. You can get the downloads or play online in your browser on the game page at sinisterstuf.itch.io/cr1ckt.

As hobbyist game developers in our free time this is one of the Continue reading

3D-printed caps for protruding bolts

When I attached our children’s swing to the ground there was still a significant piece of sharp-ish threaded metal sticking out above the bolt head and I was worried about them falling on it. Grinding the end off might still leave some sharp parts, so I thought it safer to print plastic covers for them.

I designed the caps with OpenSCAD, using the ScrewsMetric library for the bolt-shaped inset.

You can see the source code for Continue reading

3D modelling replacement knobs for back massager

small wooden knob

small wooden knob

There’s this fantastic device we have at home that I’m fairly sure is for giving back rubs, or maybe massages in general, like on your legs or something. I’ve tried it a few times but mostly the kids play with it. However it bothers me that there’s holes in it where the little knobs are supposed to be, so it doesn’t roll properly. I think the kids pulled them out, but maybe Continue reading

Social content


I’m imagining how much more full of interesting content, like photos or stories or ideas, this blog could be. What if every time I had posted something to a closed system, like Facebook, I had published that here instead?

Sawing wood in the forest


This week we went wood chopping in the forest not far from the village. My family in-law use a boiler powered by a wood furnace to heat their house. That’s why it’s important to collect enough wood in advance, so that it can dry out enough to be used for firewood in years to come. They own part of some land covered in trees and with the foresters permission they collect some every year.

A small group of us drove out in the morning and cut down trees in teams of two: One person saws down the tree and Continue reading