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

Lean Poker

I had a lot of fun attending a Lean Poker event last weekend!

Me at Lean Poker

Me at Lean Poker

It’s a type of event where programmers get together, form teams and spend the day writing code competitively, to see who can write the best automated online-poker player. We don’t play for money but for pride, and the main aim is to practise writing beautiful code and lean principles. That said, given the time constraint of a single day, the focus is usually on Deliver as fast as possible and by the end I’m flurrying around to keep errors out of the code. We try to get quick feedback during the day (more on that later) but I thought I’d do a write up about the event to give people who haven’t attended one of these before an idea of what it’s like!

Continue reading

Steam available in Arch Linux repositories

This news is at least a few days old by now, but it seems the official Steam client for GNU/Linux is now out of Beta and ready for use! Ubuntu users could already download the deb package from the steam website. However, if you’re an Arch Linux user, like me, then you’ll find that since the 26th of February, the steam client is already in the official Arch repositories and can be installed with a simple:

# pacman -S steam

Of course as soon as it’s installed it’s time for Steam to start its slow, perpetual update process, but except for that I think this is fantastic!

A Game With No Pictures

You can look down on the idea of it all you want but command-line games have their place. Not only are there situations where you need them but in a way, not having any graphics sometimes allows them to focus on other aspects of gameplay that makes them better. I was installing a new operating system on my computer today but I messed up somewhere and ended up with no Desktop Environment. Imagine turning on your computer one day and where you usually get:

“Hi, welcome to your computer [insert lots of fancy graphics and stuff], please pick who you want to log in as and I’ll give you a desktop with buttons and icons that will show you programs in little windows and let you click on things to do stuff.”

you now instead get this: Continue reading