Time Tank – the distraction.

I was plugging along on this Grocery Store game just fine, when all of the sudden, a GMC Jam jumped out in front of me and made me pay it more attention.  Now that the Jam is over, I still have this thing called “Time Tank” distracting me and demanding my attention.  I can’t seem to shake it

Wow, I never noticed before now. “Time Tank” is such a fitting name.  It truly is tanking all of my time.

But, fortunately, it’s not all for naught.  I’ve learned a few things while making Time Tank that will actually help me out with Smalltown Grocery.  Turns out, I CAN use a larger object with a smaller grid size.  I just have to use an mp_grid and use ‘precise’ checking.  Actually, no.  Now that I think about it, I don’t think that will quite work.  Anyway, that’s subject matter for a different post.  Let’s talk about Time Tank!

Here’s the quick and dirty logo I made for it (complete with the wrong tank sprite – it’s using an enemy tank instead of the player’s “time tank” –smh lol–)… and an early mock-up we made of the game…

  

And our tagline:

Travel back in time to defeat the fascist onslaught of WWII in order to shape a better future. Beware – your success may trap you in an unforgiving time loop of unintended consequences.​

Basically, it plays the same level over and over again, but with tougher enemies each time.  The premise was that you were sent back in time to defeat Hitler’s Nazi army before the holocaust could happen (don’t worry about all the time travel paradoxes and timeline changes…  Trust me, it doesn’t apply.  lol)  However, by defeating the Nazi army, it makes way for a different army to take it’s place in history — Hitler’s SS army!  Remember, this is World War II, so after that, it goes:  Japanese army, Russian army, then one we made up — the Plumpf army.  If you make it through all 5 levels to the end defeating the Plumpf army (the 5th level), you save the world and win the game.

Deep, eh?  /sarcasm, in case you missed it.

So, yeah — the story could use some work, but the game was pretty fun to work on.  Before I get too deep into this, I need to mention that I recruited Rusty from the GMC as my Jam partner to be the main “Art Guy”.  He and I had decided on the game’s direction and design before the jam started.  I suggested something in the vein of “Ikari Warriors” and he suggested “Tanks”.  Rusty threw out a quick story line (basically what I already wrote above — we didn’t even try to improve it – lol), and we both got to work.  Rusty got busy spriting and I got busy coding.

What we ended up with for the Jam was a half-baked, vertical-scrolling, plain shooter with failed retro limitations (weapon aiming locked to 45 degree angles), and a very lackluster AI.  Here’s a little gif…

Rusty didn’t like the fact that it was unfinished, but that it seemed close to being there.  He wanted to keep working on it and “mop it up”, as he put it.  I agreed that we could give it another week and try to wrap it up.  That was about a week ago.  I’m still working on it because… well…  it’s got my goat and I want it back.

Here’s the fixed up Jam Version of the game if you’re interested:  Time Tank — Jam Version

I say “fixed up” because it took two extra hours to get it to this ‘not buggy’ state.  The ‘on-time’ submitted version didn’t advance levels correctly, plus it had a few other non-game-breaking bugs/glitches/annoyances that I can’t remember right off hand, now (It was a mad rush to get as much done as fast as possible).  Anyway, here are some quotes from the “rave” reviews the game received:

“Game was quite fun at first, but tedious after a bit. Your levels were so long I started just running through them…”

“Ultimately I ended up just rushing past most of the enemies to reach the next level.”

“At some point I just started driving past everything and using leftmouse for flags I couldn’t drive over and ignore all tanks.”

“This was another mouse aim top down. With the game in a window, I was constantly clicking the game out of focus.”

“…overall the game dragged on a bit. shorter levels and skipping the second level would improve the experience…”

I think I see a recurring theme.  Uhh… perhaps the levels need to be longer?  /more sarcasm, in case you missed it again.

Now that that’s out of the way, here’s what’s happening with it now.  I’ve given the enemy tanks a grid with which to pathfind, along with either an attack state or a defensive state upon creation.  Defensive tanks will try to maintain a distance ahead of the player while continuing to shoot.  I’ve also incorporated a checkpoint system that breaks the levels down into 4 sections.  When you come upon a checkpoint, your ability to progress is halted until all enemies on screen are cleared.  Now, the player cannot just rush past the enemy to the end of the level.  Rusty wasn’t entirely sold on this idea, as he wanted to use a constant auto-scroll to force the player to the end of the level, but I nixed his idea (we tried it out) because it felt like it took away too much control from the player.  But he had some nice ideas to implement to the checkpoints, so I think he’s fine with it now.

I threw out the 45 degree angle aiming and shooting (with Rusty’s blessing) and implemented accurate point-to-point aiming and shooting and it was amazing (to me, at least) how much it improved the gameplay!  Rusty had already given enemy infantry this ability (along with some better AI for the infantry), and so I gave accurate shooting to the enemy tanks as well.  Rusty’s Infantry AI was pretty good, but since I had a grid, I wanted to give the infantry pathfinding too.  I used Rusty’s AI conditions, but implemented them to the grid pathfinding.

Also since the jam, I’ve added some more particle effects.  I beefed up the blood spatter so you can actually see it now, and added damage hits and tank explosions.  I’m working on smoke right now to signify a tank being on the brink of destruction.

I still want to add some more effects; stuff with shooting and bullets, screen shake from explosions, visual feedback with some of the scoring, with picking up power-ups, and with checkpoints.  I want to make the power-ups more noticeable in the game because right now they are easily confused with their icon counterparts of the GUI.  I also want to pretty-up the GUI and maybe replace the health point’s number text into a bar/meter instead (or also).  And I can’t stand little hearts signifying lives (though they’re kinda funny in a tank game), so those will probably get replaced as well.

So what’s left?  AI to code for two more infantry types (using the same infantry AI code with some adjusting should suffice), some audio fx for audio feedback with explosions, dying infantry, and enemy shooting in general, perhaps some more music, maybe level-end bosses, and then there’s a game menu, game intro, splash screens, and maybe cutscenes.

Sorry, Smalltown Grocery… We may be here a while.

Leave a Reply