Ebiten 2D Game Development Live Stream - Procedural and Randomly Generated

Ebiten 2D Game Development Live Stream - Procedural and Randomly Generated
Coding a procedural and random 2D game in Ebiten

My latest obsession is Ebiten.  It's a great framework for developing games in Go.  I have always wanted to write and design a game, but every time I have tried, I fell short until I started working with Ebiten.

There are so many components to a game and pieces of software to learn, that it was always too overwhelming.  On top of that, unless you're fluent in C, there's a lot of work to do to get your game on multiple platforms.  And of course, every time I try to learn C, I just get no where.

So when I finally found Ebiten and realized it could port games to iOS and Nintendo Switch, I was hooked.  Since I was already writing Go at work everyday anyway, it was a perfect segue.

Within the span of about two weeks, my game had made good progress.  I'll show that below in picture form:

Randomly generated stars, but there were 300,000 of them, each as an individual tile and performance was horrible as the screen was drawn every second
Random stars with better performance. Random planets, but they only appeared in this descending pattern

Random stars and planets all spread out nicely.

I started out my game from the examples found in ebiten/examples, and built off of that.  I was following the advice of the Game Makers Toolkit, which is a series I have been watching for some time.  I decided I would learn the bare-minimum skills needed to start creating a game--could I:

  • generate and use a sprite sheet or tileset?
  • add a static asset to the screen?
  • add an animated asset to the screen?
  • position the assets where I want?
  • move the camera?
  • enable touch and keyboard controls?

After these short weeks, I can answer yes to all of the above.  I don't realy know what my game is yet, but I do know I have the foundational skills to progress exponentioally.  This is largely in part due to Ebiten's "dead simplicity."  It's very user-friendly and the community on the Ebiten Discord is helpful and engaging.  Most of the time, I haven't even needed to reach out for help since the documentation for Ebiten is very good and it's easy to find what you need and learn the basics just by reading through that.

Livestreaming My Progress

You'll find the very first of my progress below.  I plan to stream more as I work on it.  If you're interested, subscribe to the channel and you can get notified when I go live.  

There's no audio or anything in this stream, it's just my editor and me fumbling around to get the game to do stuff.  I'll add commentary at some point in future streams, but for now--with a new baby in the house--I need to work in the quiet.

Feel free to send me feedback or things that you'd like to see.