capsule image

YUT YUT

YUT YUT is a game about TANKS containing TANKS in which many TANKS die.
Play Now

About

This was the first proper game I ever made. In my first year of university, as I exposed to the wonders of programming, I started to make random little games in a little program called Processing, an IDE and graphics library for Java. You could find worse ways to make a game. The thought of remaking Wii Tanks snowballed with more and more zany and sadistic ideas into a year long project and eventual steam release.

I worked with a classmate who provided ideas and made all the levels while I made the game part with tools to speed up the level design process. The levels were made in order, with each intended to be difficult, by someone who had continual practice with the game and increasing standard for difficulty as it went on.

The game is genuinely evil.

There are 19 different types of enemy tank including predictive shots, mortars, moles that cannot be hurt when burrowing beneath the ground, and the final type that will clear the entire screen with a massive laser if you spend more than three seconds in their line of sight. To (slightly) compensate for this there are 7 different player tanks, some of which are arguably a disadvantage, to which each level is assigned only one option.

It is the foundation of my development philosophy and a treasured gem of my artistic output.

It will be remade.

What I Learned

This project is largely how I learned to program, being naturally introduced to many of the fundamental and advanced concepts and patterns of software engineering. I genuinely feel like I skipped two years of my degree with this project, learning in class the name for ideas I was already familiar with. As such, the code is filled with beautiful and horrifying growing pains.

All the UI is custom written and hardcoded. Every level in the game is declared explicitly in two-dimensional integer arrays in files thousands of lines long, one for walls and one for tanks. The game is saved to separate CSVs in the local directory, so when I wanted to fix a game breaking resource issue by switching audio libraries on the steam build, the only thing I could do was reset every player’s save file.

The impact on my technical development is too great to properly express.

Roles: programming, design, coordination

Tools: Processing