Discussion
Loading...

Post

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Dahie
Dahie
@Dahie@www.unmedial.de  ·  activity timestamp 5 days ago

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.

#games #Kreativ
6 media
Earliest screenshoft of the game, showing the pro bending arena in simple colors with pixelart characters facing off each other.
Earliest screenshoft of the game, showing the pro bending arena in simple colors with pixelart characters facing off each other.
Earliest screenshoft of the game, showing the pro bending arena in simple colors with pixelart characters facing off each other.
Next iteration with slight shading on the ground. Two players look at each other, lines display their viewing direction.
Next iteration with slight shading on the ground. Two players look at each other, lines display their viewing direction.
Next iteration with slight shading on the ground. Two players look at each other, lines display their viewing direction.
Current state, with a less saturated color pallete and more details on the arena, like water gutters and earth disc emitters
Current state, with a less saturated color pallete and more details on the arena, like water gutters and earth disc emitters
Current state, with a less saturated color pallete and more details on the arena, like water gutters and earth disc emitters
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Internet Archive

Artificial intelligence for games : Millington, Ian : Free Download, Borrow, and Streaming : Internet Archive

xxiii, 870 p. : 25 cm
Codeberg.org

draco-delegations

A plugin adding delegations to Components and Entities for the Draco ECS library. This allows to delegate functions from the component to selected attributes.
GitHub

GitHub - guitsaru/draco: An Entity Component System for DragonRuby GTK

An Entity Component System for DragonRuby GTK. Contribute to guitsaru/draco development by creating an account on GitHub.

OpenStreetMap

OpenStreetMap is a map of the world, created by people like you and free to use under an open license.
  • Copy link
  • Flag this post
  • Block

Kakapo Social

Kakapo Social: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.2-alpha.34 no JS en
Automatic federation enabled
Log in
Instance logo
  • Explore
  • About
  • Members
  • Code of Conduct