Tank 1943

Run and Gun tank shooting game set in 1943. Use your skills to dodge and destroy enemy tanks and reach your goal!

Technologies: Stencyl, Adobe Flash CS3
Link: http://www.newgrounds.com/portal/view/624384

Unlike other portfolio entry, I would like to write about this project a little more than just giving the introduction and the link to the project. Khai and I began this project in the second year of our high school and it was a great journey full of bittersweet memories. There were many moments of great aspiration and productive, but also times we thought about actually giving it up. And I would like to share that journey so that readers can not just learn about the process of designing and producing a video game, but also some of the great emotional moments that we have been through together in producing this video game.

The storyline

It was at the end of our summer classes and we were just outside waiting for our parents to pick us home. The waiting time can be up to one hour so we decided to spend this amount of time enjoying some cheese sticks and chatting about world politics. But the topic at that day was not world politics, but about a very cool game design engine called Stencyl that allowed you to code a game using very graphical and intuitive blocks. We were immediately excited about its potential and spent that entire day brainstorming the game of our dream. We imagined an epic adventure in which our hero battled his way out of multiple enemies to reach an end goal. But we also wanted elements of realism in the game as well. Combining the two factors and we got a wonderful story of a reluctant hero set in World War II.

Our hero lives in the little town of Leuven, Belgium. It was in the midst of brutal Nazi conquest of Europe, yet Leuven remained peaceful because Belgium had remained neutral. One day, some Allies force asked the villagers of the town if they can stay there for a few days. They wanted to go to Netherlands and was in need of a place to stay and the villagers gladly accepted. A few days later, a Nazi tank division came and slaughter the entire town. Seeing overwhelming destruction of his hometown, our hero has no choice but to escape. He found an Allies tank nearby and made his way our of Nazi’s siege.

Losing his hometown and discovering his talent in tank maneuvering, our hero decided to join a mercenary training camp. He was full of rage towards the Nazi, but also questioned why the Allies was there in the first place. One day, he got access to confidential documents about the war. He discovered that the Allies force intentionally stayed in his town to trick the Nazi into attack his hometown instead of a nearby weapon arsenals that the Allies wanted protected. The time has finally come for him to decide which side to join. Will he join the Allies to stop the reign of terror by the Nazi? Or will he side with the Nazi to avenge the death of his family?

Step 1: Building the graphics

If you read any Game Design books, they will all say that game play is the most important part of the video game experience. But at the time, we were suckers of good graphics and hey, it felt good to look at a beautiful graphic and imagine our game even though we still have no idea how to code it right? So instead of actually drafting the design of our gameplay, we went on to sketch our graphics of our game and try to make them as polished as possible.

The first version of the concept graphic was heavily inspired by Battle City, which was a very popular SNES cartridges game of our childhood.

Initial game concept

But we will found some problem with this design. For one, Stencyl became very slow if a very large map is loaded at the same time and nobody likes to play a slow Flash game online. I will also have to make every custom map myself which is very time consuming and, there is no way Khai can help me with that process. Thus, we decided to switch to Tile map, in which each map is constructed by a grid of different types of tiles. Because the same type of tile has the same 64 x 64 bitmap, the entire map which loads much faster. Furthermore, it is very to construct a tile map and Khai can now use the tile set to make map using Stencyl tool. I merely have to design tile set and it will be up to our imagination to design any kind of map that we wanted.

We end up producing 10 maps for our game and they all look so radically different despite using the same tile set.

Some maps we designed for the game. The central image with Nazi-like layout is the map of the final stage at Berlin where Hitler made his last stand.

Step 2: Tank movement

Because of our initially mock-up, we initially went on to build the tank that moves and act exactly like it would do in a battle city game. But it looked very weird to us. Our map is very wide in terms of space but our tank can only shoot in 4 directions Up, Down, Left, Right, which certainly works in a narrow corridor game like Battle City but looks very strange when the road is very wide in the case of our map. If you are just off by one tile, it is suddenly impossible to shoot the enemy team!

Frame by frame graphics of our tank sprites. Looks pretty cool right?

We decided to break the turret and the base of the tank into two independent halves. The base will be responsible for moving the tank, which is controled by WASD, and the turret can be aimed in different directions.

With this separation, the controlling feels incredibly fun and natural! But there comes another problem. Because the base is control by WASD, it can only aim at 8 directions. Because the base doesn’t rotate, it feels weird and gimmick to have its direction immediately aim at where it wants to go. Thus, we decided to add rotation to our base. We also modified so that WASD will only control the rotation of the tank and the tank will always move in the direction it is aiming at.

Tank movement was an intensively debated issue between Khai and I. I was personally a perfectionist and adding so many components to perfect Tank movement adds a lot of strain for Khai, who was mainly responsible for the tank movement and didn’t want to spend so much time in the part. But our effort was very worth it. The result tank movement feels both fun and realistic.

Step 3: Game Design

After 14 months of perfecting our map and our tank movement, we finally came to the most important part, which is to actually design the game experience for the players.

Our initial design was a very realistic style of game that features the cruelty of World War II. It should be slow moving and tries to replicate the atmosphere of the game as realistic as possible. Many effects were considered to support this vision:

  • Tanks will be slow moving and the aiming turret will be very slow to rotate to emulate the real battle scene.
  • There will be many soldiers in the battle scene and whenever each soldier die, their corpses will remain in the battle for the rest of the battle.
  • When ever a tank shoots, destroys another tanks or steps on the corpse of the soldiers, it will leaves different kinds of bullet marks or blood marks on the scene.
Our original vision of the game was very much similar to the realism of the Endless War flash game series. Corpses, craters, smoke, fizzle and many other effects were created and the traces of which remain until the end of the game.

Khai was initially persuaded by this vision of the game, but over time, he realized that this vision cannot come to fruition. There were many technical constraints that would limit the feasibility of this vision. For one, each soldier needs to have its own AI to control and that have to be processed real-time. Stencyl can barely handle 100 objects at the same time and already having about 70 soldiers in the field already adds a significant overhead. And this logic overhead will be further added to the graphical processing overhead, which only gets bigger once the corpses of the soldiers and the tank traces start to add further and further.

Khai proposed a leaner version of the game which doesn’t include soldiers and, instead, focuses on intense live action by having a lot of tanks for the users to deal with. All traces and marks will be eventually removed to speed up the game processing. Tanks will also aim immediately to reduce processing and increase the pace of the game. I initially disagree with this vision and intensely debate with Khai for 2 months. Eventually, I conceded that this game play is not only more fun, but also the only way to make it feasible to produce the game. The faster pace feels very active and intense, which is in stark contrast to the slow moving, reactive old style that will eventually lag out due to intense graphical processing of unnecessary items.

This also gives more us more room to add other components in the game. We no longer feel that realism is necessary and that the game will be more rewarding if we add more customization so that the player feels some incentives to stick around and progress to the end of the story. Our collection of weapon culminated in a fictional weapon called Homing Eagle, which is a rocket that has wings to track enemy tank! The rocket with the wing looks hilarious, as if the enemy tanks are slowly waiting for its own death!

By the time we completed all elements of the game, it was 18 months into the process and we felt incredibly burnt out. We also had to eventually worry about our college application and decided that this would be the good time to end the production and go on to distribute the game to the public.

Step 4: Package and distribute the game

Yet, this distribution process isn’t actually simple, and we have learnt the hard way that even a hard-working project might never get played if it doesn’t have a good publishing platform. There were many good platforms for publishing Flash game such as newgrounds.com, armorgames.com, but they only publish new games on their front page for the first few days unless the game gets high rated and becomes popular.

We also found out that when the game is actually online to the public, its processing is much different (and usually slower) than when we test it in the internal Stencyl engine. A lot of things have to be toned down for the online experience. Many bugs were also discovered during the testing process, but we feel that most of them are small enough to be ignored. The entire debugging and packaging process takes an additional 2 months to complete.

Our results

We published our game in Flash format to newgrounds.com and Kongregate and at this point, it was played [5680 times] in both platforms. Over time, the game was copied over to many other publishers such as:

We were very happy to received a rating of 3.44 stars on newgrounds, but learnt that players eventually caught many small bugs that could have been resolved if we have a beta testing period. At that time, we completely ran out of any kind of energy to debug it further and decided that any project should have an end.

Our game generated 35 cents advertising revenue in Kongregate.com, which converts to one single cheese stick! That was the best and most well-worth cheese stick we ever ate!

So instead, we decided to have a small party to celebrate the project. Our views on Kongregate helped us make 35 cents due to advertising! It merely translates to one cheesestick, but was the first kind of money that we made from game design (or any kind of activity). That was the most rewarding cheese stick that we ever ate!

What we learnt

Needless to say, despite the long and hard process, we were happy to have gone through it. Producing an actual game brought so much knowledge and emotion that we otherwise wouldn’t learn if we had just sticked to a game design book. We learnt about always having to adapt to the circumstances (in this case to the capability of Stencyl), as well as the importance of initially designing the gameplay. We also learnt that beta testing is a serious process to be included in any game if the team wants to ensure high quality and experience for the players. But most importantly, we learnt that building a game of our own is not only a feasible process, but also a rewarding one for us to strive for. Tank 1943 will always be a great piece of memory for us and a reminder that any idea is possible to build if we aspire to create, commit to the process, dare to challenge ourselves and constantly adapt to new situation.

Not so long later, we created LevelUp!, which we regarded as a sequel. If you are interested in learning more about the Flow aspect of LevelUp! please visit this portfolio entry and enjoy our game!