CBC is a frenzied action sports game for one or more players. You can play against bots or other players, and two players can share a keyboard and play against each other. You control robots with only one wheel that can run fairly fast, but the one wheel makes it somewhat difficult to navigate precisely, which makes it even more fun. In the game you score points by throwing a metal ball through the other team’s goal. The robots carry the ball with a magnet on their chest.
But there’s more …
CBC doesn’t really exist. Not anymore, that is. It shoulda, coulda, woulda. And it’s a shame, because it’s a really funny game. It started out as a student project and was later supposed to be one of the main projects of my company, The Engine. But The Engine was more about learning how not to get anything done than making games. However, I’ve never given up on the idea of the game—and I intend to make it real once again in the not too distant future.
Read on to learn more about the background and the possible future of ClashBall Championship.
A Student Project
While studying at Kantrinebjerg in (Aarhus University, Multimedia, Game, Audio, AI design, and whatnot) in 2005-6 we had a major assignment in which we were to make a project. Four of us banded together to make a game. Rune Skovbo Johansen (genius programmer), Lasse Sandgård Pallesen (became a great 3D artist later, but didn’t make the graphics for CBC, rather he made most of the documentation), Peter Bjerregaard Vahlstrup (another great programmer), and myself (designer and 2D/3D artist for CBC).
CBC was originally called Crazy Balls. It was very important that it was CRAZY! We found out in an earlier assignment that functionality and common sense didn’t matter at all, so we spend a lot of time coming up with a stupid name. In the first assignment my group designed a smart busstop—however, who wants smart busstops that tell you where the bus is and when to expect it? No-one apparently (according to our professor the task was to GO CRAZY!1!). So we designed a useless and stupid/crazy busstop instead.
The idea for Crazy Balls came to us over lunch. We decided on a sports game with action elements and that it had to be crazy (of course). Many of the action elements were never actually added, because one of the ideas turned out to be so big a part of the gameplay that all the power ups and weapons became redundant.
Boxes! Big, square boxes! You pick them up and throw them. Their size make them change the layout of the playing field! We decided on two different types of boxes: a standard box that just makes use of the general physics and knocks the ball out of your magnet and pushes you aside etc., and a crazy dangerous box that makes something like a pressure wave that throws anyone like so many ants in a hurricane. The last box wasn’t actually in the demo, so it hasn’t been tested. It may be a bit too much.
Immediately when we tested the game with the boxes it changed everything! The boxes made it so much fun to play!
Design and Technology
Designing the game was quite organic because ideas were tested and introduced on the fly. I was tasked with designing the first level, the robots, and everything else. As soon as I had made the first level, I decided on adding platforms to have more than one height in the game. It’s usually a good idea when you’re designing multiplayer shooters, so I gathered that it would be fun in an action sports game as well. It was.
When you look at the pictures of the platforms, you may be able to see that they are only “terminators” of platforms. In the picture below you can see that the “terminator” platform on the right is used to make a dead end to jump off of, and it defines the game space as well1It actually defines the game space in several ways—can you find them all?. In the action picture you actually see several platform parts: a terminator, a ramp, a T-junction, a corner and several straight parts. I quickly decided that the levels should be made up of parts that could be used again and again for different level designs—and was backed up by the team on this.
So I made a txt-file with coordinates of all the parts for the level. In that way we could design the game so you only had to share txt-files in multiplayer games because you had all the parts client-side. In 2005-6 it was still important to keep your internet traffic at a fairly low level to make it efficient.
The path finding was supposed to work in two different ways: a “rain down” system that calculated path finding dynamically from above, and a system that made the bots “see” the level, so they could see the different obstacles etc. in their immediate path. The last part was never introduced due to the short time we had making the game. And the”rain down” system had some shortcomings as it followed a grid layout that sometimes allowed obstacles etc. fall just in between the “rain drops”. Also, it could calculate height differences but couldn’t “see” a surface under another surface (i.e. going under a bridge) as the higher surface sheltered the lower surface. The other path finding system would have solved the first shortcoming, of course, as was also the point of it—to make it more dynamic.
For the demo the txt-file was loaded and the parts placed accordingly, but the path finding wasn’t finished, so it was still only possible to make this one level. It was because the size of the grid that the “rain down” system followed was predetermined. However, that was a minor challenge that could have been solved with a little more time. Everything was supposed to be in the txt-file, so you could make new games in an editor and save and share them easily—both on PC, Playstation, etc. That’s for the next version 😉 But the demo was still playable and very fun to play!
There’s much more to say about the design and technology, but the above are probably the most important points. I would have loved, though, to have pictures of our early tests with our decision tree AI, when all the bots teamed up two and two and danced! But, alas, I don’t think anyone took any screenshots. Also, when the bots ran away from the goals instead of guarding them when an attacker closed in with the ball, because they constantly miscalculated the timing of speed and distance. (Some words about our professor could also have been interesting, as he certainly wanted more craziness; bots changing teams without reason mid-game and other game breaking and horrible ideas.)
The project became the best project ever when turned in. However, the examination/our defense was a little strange. Sometimes it seems like examinators say something just to say something … We discussed colour choices and I talked about blue and red as almost expected on opposing teams, but that was apparently a weird idea (at the time blue vs. red was the most often used combination for opposing teams). My point was that when you see two teams wearing red and blue, you already know they are playing against each other. Not a big and interesting point, but whatever … It probably wasn’t crazy enough. But all in all we were happy with the result.
Then shortly after I started The Engine. We had CBC but chose to begin another project instead. Our plan was to make the perfect project—especially when it came to hunting for investors etc. Our idea was Sofie and the Werewolf2Read about that here.. A great idea. But it was also beyond stupid! We should have finished CBC and released it. We could have finished a more polished demo with all the functionality we had planned within a couple of months, but, oh no, we wanted to be special, and clever, and … Sorry, got off on a tangent there. Later it became very clear that we should have focused on CBC, but it’s always easy to say that afterwards.
After The Engine
But what about ClashBall Championship now? I don’t rightly know, but I want to do something about it in a not too distant future. Perhaps in Unity? We did work a bit in UrealEd back in the day of The Engine (when we realised—too late—that CBC was the way) and the new version is certainly a possibility! The original version of CBC was made in Ogre and that is probably beyond my skill level, but Unity and UnrealEd is definitely a possibility.
I strongly believe that ClashBall Championship would be as fun to play today, as it was more than ten years ago! It has just the right amount of innovation in a well known gameplay that it’s easy to play for someone familiar with action and sport games, and sufficiently different compared to other games in the genres. I think of Rocket League as a good example of doing something well known but also with its very own style of gameplay. That is what CBC is: well known with a twist. The best possible recipe for success.