Cho Dan Bo is a game I started with far more ambition than skill. Deciding to seriously attempt learning game development, I devised a project that I thought was a simple idea — but it turned out to be far more advanced than I had bargained for.

Cho Dan Bo is a term used in Taekwondo. It varies between styles, but in the school where I trained it was the name given to the final trials before grading to 1st Dan black belt, symbolised by a red and black striped belt.

I never made it past Blue III belt before moving on to other things. However, during my time training, I had designed a character called “Cho” and drawn a comic about his disdain for learning the foundations. He was always daydreaming about becoming a highly skilled practitioner — jumping high into the air and performing incredible feats of martial arts.

Kind of fitting, really.

Cho Dan Bo - The Importance of Basics - The Comic
Cho Dan Bo - The Importance of Basics - The Comic

The comic (above), apart from being enormous (over 1m wide), shows Cho drilling punches. He falls into a daydream and imagines all kinds of advanced techniques, only to be rudely awakened by his teacher and sent back to drills.

The game was going to follow that exact structure. The opening menu would show Cho running through drills on the page. When you pressed any key, the menu would animate into a dream bubble. Once selected, you would enter his dream — and the game would begin.

Cho Dan Bo - Mini Game Level Select Screen Example
Cho Dan Bo - Mini Game Level Select Screen Example

The entire game was going to be hand-drawn and scanned. Every background. Every animation frame. All pencil-coloured, like the comic itself. The idea was to make it feel like you were playing inside Cho’s notebook, exploring his daydreams.

ChoDanBo - The Game - UI Flowchart
Cho Dan Bo - The Game - UI Flowchart

Initially, there would be only one mini-game: a basic endless fighting game of skill. Cho would stand in the middle of the screen while enemies (his classmates) approached from both sides. As he defeated them with simple kicks, they would fall to the floor and begin piling up behind him. Once that worked, the plan was to expand it to four selectable mini-games. Each would gradually increase in speed and difficulty until defeat, with a high-score system encouraging replayability.

Nice and simple.

Or so I thought.

Cho Dan Bo - The Game - Original Concept
Cho Dan Bo - The Game - Original Concept

The gameplay sounded simple. The execution was not — and it was definitely not a good idea for a first solo game. Not only was the concept more difficult than expected, but the idea of hand-drawing everything was wildly unrealistic. And what makes it even more laughable — I gave myself three months to complete it while working full time. 🤣...😐

That didn’t stop me from trying.

I had already been experimenting with interactive elements in Unreal Engine, so that felt like a logical place to begin. I created a game design document outlining the concept, character and level ideas, audio notes, gameplay thoughts, and control systems. I saved that as a reference point, then began a second working document so I could experiment without drifting too far from the original idea.

First prototype running in Unreal Engine
First prototype running in Unreal Engine

I built a basic background and a controllable placeholder character — essentially a simple frame with a foot that could perform six-direction kicks and a jump. I reused the same sprite for enemies. They moved toward the player and were destroyed when hit.

Progress.

But this is where things began to unravel.

Bugs stacked up quickly. I didn’t like the control system. The enemy AI needed far more specific behaviour. I was using Unreal’s Blueprint visual scripting, and it was beginning to feel overwhelming and messy.

Around this time, I read something that stuck with me: visual scripting is powerful, but eventually you will hit a point where understanding real code becomes essential — and you’re often better off learning it from the start.

"HELL NO!"

However, I knew I wanted to move the project to a different engine. When I looked at how large the compiled Unreal project would be, I couldn’t help thinking about old Commodore Amiga games fitting onto a single floppy disk — tightly programmed and optimised.

So I experimented.

Cho Dan Bo overlaid on the IK+ background on Amiga 500. Markup for mobile version
Cho Dan Bo overlaid on the IK+ background on Amiga 500. Markup for mobile version

I moved the project to GameMaker. It also offered visual scripting, but it didn’t quite click. I tried Unity — again, it didn’t feel right. After a lot of reading, testing, and deliberation, I decided to bite the bullet and learn Godot properly, which meant learning to code. 😮‍💨

Talk about down the rabbit hole.

It didn’t take long to fall in love with Godot’s interface and structure. Having direct control over code felt surprisingly clean compared to bulky visual systems, even though the learning curve was steeper.

It took weeks to rebuild in Godot what I had originally assembled in Unreal.

By this point, I had already abandoned the fully hand-drawn approach and shifted to using colour. It simply looked better and was more manageable. But once again, I hit the limits of my skill.

Just like Cho dreaming of skipping the foundations of Taekwondo, I had skipped the coding fundamentals. I’m good at problem-solving and troubleshooting — but without foundational knowledge, there was nothing solid to troubleshoot from.

I mentioned rabbit hole right?

Before long, I was deep into Harvard’s CS50 course, learning computer science fundamentals. I was studying different programming paradigms and continuing to learn GDScript through GDQuest. But life intervened, and the project slowed. Other creative commitments took priority.

Months later, around December 2025, I finally recognised what had been happening.

I had designed a game that required advanced coding techniques.

I was effectively switching off the built-in physics engine — the very thing that makes engines like Godot so powerful — and attempting to recreate movement systems from scratch. I constantly fought gravity, disabled physics in certain states, tried to prevent sideways bumps, and battled strange wobbling behaviour.

0:00
/0:12

Cho Dan Bo - Godot Physics Bug Out Fail - (Background borrowed from the interwebs)

It was only then that I realised just how advanced this type of game actually was — and that it was absolutely not the right choice for a first project.

Cho Dan Bo isn’t lost or forgotten. I still love the concept, and even the rough prototype was surprisingly fun to play. For now, though, it’s going into the vault.

Instead, I’m starting simpler.

A square character.
Add collision.
Make it move.

One system at a time, starting from scratch for every iteration, without tutorials.

I’ve also developed a structured process for learning code properly, which I’ll explain in a future article.

So far, it’s working. I’m learning — slower than I initially imagined, but steadily.

Just like Cho.

Never underestimate the importance of fundamentals. Understanding the basics will carry you further than any tutorial out there on the interwebs.

'Cho' - Cho Dan Bo - The Game
'Cho' - Cho Dan Bo - The Game

Everything on this site is free for everyone.
No ads. No popups. No paywalls.

Subscribe to receive the free monthly newsletter, and you’ll be able to comment on posts.
If you’d like to help keep this project sustainable, there are Supporter and Sponsor tiers available - Totally optional.

Share this article

Share to Facebook
Share to X
Share to LinkedIn

Written by

Damien K Quick
Damien K Quick
Obsessive, Compulsive, Creative Tinker-Thinker. Founder: House of Normal

Join the conversation