Friday 26 June 2020

Turbo Tomato: Making Enemies

The previous devlog was an adventure in choosing a new palette for the game.

Now, I get to deal with the consequences of that decision and make some enemies along the way.

Turbo Tomato is quite a straightforward game. There are good guys, weapons, and progress through the game requires the aforementioned good guys' effective use of the aforementioned weapons on the aforementioned bad guys. Genuinely old school, I know.

After settling last time on one palette to rule them all, the existing bad guy graphics were next on the list for attention. TT has around fifty enemy types in total, split roughly evenly between "normal" and "special forces". Fifty. Fifty! What was I thinking?!

Some of the bad guys you may face (not final!)

Normal bad guys are fruit and vegetable themed characters that chase Turbo around the levels trying to sauce him by throwing bombs in his direction (more or less - square roots aren't cheap on a 68k). They all have puntastic names like Wimpea or Strawbaddy and a short bio that's displayed before each level if you haven't seen them before. It's mostly nonsense, but it sets the scene.

Special Operator Mr. Flamer

Special bad guys are, well, special. They do special things like drop mines, chase the player around with a flamethrower, block off parts of the level with slime, poison clouds or lasers, or explode in a cloud of bees - bees! - that chase the player before exploding themselves. TT has a lot of exploding, it has to be said.

New content for 2020!

I remapped the bad guy graphics to the new palette and applied some light manual retouching afterwards. I also took the opportunity, encouraged by the new palette, to replace a couple of not-entirely-great sprite sets with fresh new enemies that looked much better. Welcome, Crusha Grape.

The bad guy data files used by the game contain, as well as graphics, metadata like the enemy's speed, strength, name and so on. The special bad guys can also have a second data file containing extra graphics and sounds. Something has to create these data files, so yet another asset pipeline Python script was required.

I find it very easy to make enemies

Two, actually, fairly complex, and the special bad guys were all so different their converter was really 25 converters in one, so that comes to a total of ... let's see ... about a week's work. All, of course, tied in to the main makefile, which offers me endless pun opportunites around making enemies.

I've been using Grafx2 GIF mode to support layers when editing 2D pixel art, and in writing the bad guy pipeline tools I ran in to a little idiosyncrasy with this format. The actual art is held in the topmost layer of the saved file, but when I tried to extract just the top layer with PIL it was often offset and a different (smaller) size than the whole image, as if a "trim transparent pixels" operation had been applied. I wondered if perhaps this was a side effect of Grafx2 saving a layered image as a GIF animation. IN any case, I managed to work around it with a bit of hackery and placing pixels at the corners of the art layer. The fix is probably a little fragile, but it'll do.

As a check, and a refresher course, I took the time to test each special bad guy in turn to see what they actually played like. Some are good, some aren't so good, like a lot of the things I added to the game more or less randomly back in the day. Mr. Flamer in particular is tough enough to be a mini-boss; nerf plz.

At some stage I plan to draw up a map, and maybe even a spreadsheet, of each world, annotated with the bad guy types on each level, their numbers, strengths and so on, to let me balance and tune the difficulty progression. I expect that not all the special bad guys will survive this process, so I've held off on working on any of their graphics or sounds beyond the basic palette remap. I've cut some of them already, in fact, and another because the source graphics were mysteriously missing.

I also managed to squeeze in another pipeline for miscellaneous graphics like the different sets of explosion sprites. Again with the exploding.

World 2 Introduction

In other turbo-thoughts, I may change the world introductions from static pictures to a comic-book like sequence of images and text, to bring more of the "story" into the game. This one needs a bit more mulling yet.

Finally, for this devlog, I'll say that, budget allowing, I'm hoping to get a pixel artist on board to improve the tile graphics and maybe some other bits like the updated world introduction sequences. I'm happy enough with the general tile backgroundage, but there are many "set piece" tiles that could use a skilled mouse to bring them up to scratch.

I will certainly be happy when I get beyond this drawn out (and dull) period of work on the asset pipeline tools and palette reworks. I know I'm making progress and improving the game, but it sure doesn't feel like it. It'll be good to start ticking items off that pesky TODO list that's been building up.

Speaking of which, I still haven't got around to implementing those power-up texts. Ah well, maybe next time.

Until then, Turbofans.

1 comment:

  1. Las Vegas Hotel and Casino | JtmHub
    Las Vegas Hotel 김제 출장샵 and Casino is situated 제주도 출장샵 in the Las Vegas Strip 거제 출장안마 and 원주 출장샵 offers 용인 출장안마 luxury accommodation on the East side of the Strip from MGM Grand and Bellagio.