Pro Bending – Getting started

I spent Christmas and New Years Eve somewhere in the German country side in my sister’s house. I brought music equipment, writing and painting utensils ready to lock myself in and only get out, once some art was created.
Then I got sick for 5 days and almost missed Christmas. As I recovered, I woke up one night with a game idea and started scribbling notes, which turned into this prototype.

I recently rewatched The Legend Of Korra and played Ron Gilbert’s Death by Scrolling. The game is beautiful pixelart and such a simple, but engaging premise. It has this “anyone could build this, but building it first not anyone can”. It got me thinking of a 2D roguelike based around elemental powers and how the Avatar premise lends itself so well to some interesting gameplay and progression. Having the premise for a (somewhat) open world would be fun, but also way exceeded the scope I could realistically tackle. So as a tech-demo I started looking at the Pro Bending matches from The Legend of Korra instead.

Earliest screenshoft of the game, showing the pro bending arena in simple colors with pixelart characters facing off each other.

I have known DragonRuby for at least 5 years. A game toolkit written in Ruby, that comes with a ton of sample games showing core mechanics. Any previous attempt of getting something started always failed, as DragonRuby has an unfamiliar dialect of Ruby and is written almost functional-programming like – think Elixir or Go. I couldn’t fit my thinking into the given data structures. I was lacking a scaffold that matched my brainwires.

Draco enters the room. Build upon DragonRuby, it is a slim Entity-Component-System, that provided exactly the structure I needed. Small in footprint, easy to get started, but easy scalable. An Entity is build from reusable Components, who store data and state. Systems are called with every frame tick and perform actions on entities being composed from the selected components. It lends itself really well for Ruby. So I got started.

Next iteration with slight shading on the ground. Two players look at each other, lines display their viewing direction.

I spend the last 6 weeks learning more about Entity-Component-Systems, disassembled Draco and wrote extensions and Pull-Requests. Got my prototype started and refactored it twice. My to-do list grew to 100+ items, half of which are done at this point. I spent hours collecting assets from OpenGameArt and Itch.io. I had to get out my old text books from university and learn about traditional game AI (steering behaviors, path finding & decision making). I broke my brain on seemingly simple mechanics and spent way too much time on unimportant stuff like transitions, menus, and ever more elaborate mock-up art.

Current state, with a less saturated color pallete and more details on the arena, like water gutters and earth disc emitters

So am I done? Not yet. The first build slowly gets to a shareable version soon.

‘ll write about the game mechanics another day.