itch.io is community of indie game creators and players

Devlogs

Catball Bash! Postmortem

Catball Bash!
A downloadable game for Windows

The Game

Catball Bash! A fast-paced, physics-based arcade game where you bounce balls off walls and try to make your opponent miss. 

Play it here: https://damstudio.itch.io/catball-bash

Background

I’m Paulo DAM, a generalist artist with a background in design and animation. I’ve worked as a web designer and as an artist in a game studio — but never really as a programmer.

Learning to code was something I tried multiple times. ActionScript, JavaScript, PHP… every time I started, I eventually dropped it. It never fully clicked.

This game started with a simple goal:
I needed a project to finally learn how to code.

I had almost no real programming knowledge — just some YouTube tutorials.

Catball Bash! became my “I’m actually going to finish this” project.

Tooling

The game was made in Unity.

Other than that, I tried to keep the entire pipeline free or open-source whenever possible:

  • Blender – 3D models and animations
  • Krita – Concept art and 2D assets
  • Audacity – Sound editing
  • Adobe XD – UI mockups 
  • Inkscape – Vector graphics
  • MeisterTask – Project management

Most of the work happened inside Blender, Krita and Unity.

Process

This was supposed to be a small project.
Something manageable.
Something I wouldn’t abandon halfway through.

I brainstormed ideas, made mind maps, and chose something that felt simple enough to finish.

At the time… I believed it was small.

Prototype First

The very first step was building a prototype. I needed to confirm that:

  • I could control a character
  • The character could jump
  • The ball could be hit
  • The ball would bounce properly
  • The walls worked
  • The core mechanic was actually fun

Only after validating the prototype did I decide:

  • What the game should look like
  • What features it would include
  • What tasks were required to finish it

Then I created a backlog and defined a workflow pipeline.

What Went Well

The Art

Choosing a low-poly art style with a single shared texture was a great decision.

It:

  • Reduced production time
  • Simplified asset creation
  • Kept visual consistency
  • Fit the arcade gameplay perfectly

Creating new environments and assets was always fun, and I’m genuinely happy with how the game looks.

Project Management

From the brainstorming phase, I started organizing tasks and tracking progress.

This helped massively.

Even in a solo project, not having to guess “what should I do next?” saves mental energy. There were lots of bumps and unexpected problems, but having everything mapped out kept the project alive during hard moments.

The software helped — though I might try something different next time.

What Didn’t Go Well

Scope 

I scoped it too big.

At first it didn’t feel big. But once I started calculating how long everything would take… yeah.

Did I really need 12 levels? No.

Fewer levels would have achieved the learning goal just fine. My main objective was to learn programming, not to build a massive content-heavy project.

The extra levels were fun to make — but they extended development time unnecessarily.

Time

The project took much longer than expected.

In the beginning, progress was steady. Then life happened.

There were small pauses — days, weeks — and one major hiatus that lasted months.

Momentum is fragile in solo development.

Every long break increases the mental cost of returning to the project.

The Code

Coding actually went better than I expected — but it’s also where I have the most room to grow.

I did my best to write clean code, but since I was learning, I’m sure there are architectural mistakes and inefficiencies.

The project was limited by my coding ability, and because of that, some features had to be cut.

Still, compared to where I started? Huge progress, the fact that it works is something I’m proud of.

What’s Next

I’ll probably revisit this project in the future.

When I do, I want to:

  • Refactor parts of the code
  • Improve structure
  • Add features I couldn’t implement at the time

But for now, I’m moving on.

The next project will be smaller.

Much smaller.

While I decide what my next “big” idea should be.

Final Thoughts

Finishing this project means more to me than releasing it.

At the beginning, I had huge plans:

  • Multiple store releases
  • Online multiplayer
  • Achievements
  • Expanded features

But those were extras.

The real goal was finishing a game and learning to code.

And I did.

That alone makes this a successful project in my eyes.

I learned a lot — not just about programming, but about scope, consistency, and finishing what you start.

Next time, I’ll do better.

Download Catball Bash!
Leave a comment