The end of the war

Battle Eagle is finished and sent off a day before the ABBUC competition deadline! For those who haven’t read the previous posts, Battle Eagle is a vertically scrolling shoot ’em up that uses the Atari 8-bit’s 80×192 pixel sixteen shades of one hue graphics mode and hardware sprites which are horizontally expanded to make them fit in a bit more cleanly. Here’s a short video of the title page (with some of the music composed by Sascha “Der Luchs” Lubenow) and some of the first level:

Here are some “interesting” facts about Battle Eagle just because I’ve remembered how to do bullet points today:

  • It has 50FPS smooth scrolling using a character-based screen mode.
  • There are 60 screens of scrolling background constructed from 3,620 4×4 character tiles.
  • Up to four independently controlled enemies, all generated with just two hardware sprites.
  • There’s 106 frames of animation for the explosion, player ship and enemies in there.

At some point I’ll try to do another post mortem like the one written for Callisto last year but for the moment here are a couple of screenshots and the game itself will be released onto the Cosine website as soon as the nice ABBUC people give the okay.

The battle continues

A bit more work has been done to Battle Eagle so there are three level maps installed and pretty much populated now and a handful of enemy animations have also been added so here’s a picture of one in it’s natural environment:

The four enemies currently handled by the engine are managed on an object-by-object basis so each can be a different base colour and definition. At this point the idea is that there will be about six stages which alternate between two graphical styles and, hopefully, have a bespoke enemy definition as well as access to a general pool for things like the now grey space mines but the final numbers pretty much depend on available RAM.

Part of me wants to keep everything to a single 48K load because it wants to write for a stock, tape-based machine (which for the Atari 8-bit would be a 48K GTIA-equipped 800 since that’s what most 1980s budget games wanted) but there’s another area of my psyche insisting on unrolling loops for speed and the two really don’t get on and if the latter wins the three of us will be aiming for 64K. As it stands the entire project takes a smidgeon over 40K when executing but there’s a generous gap where the music will be going, some work spaces that can be moved or optimised and the sprite and tile data have some “dead air” at the end which will be clawed back soon.

Do it yourself space station

Battle Eagle has been rewritten a little since the last update, so here’s a newly-grabbed screenshot…

…to demonstrate the newly-implemented colour-per-object extension to the sprite rendering engine. Previously there needed to be a gap between waves when a colour transition was to take place, but that’s been scrapped in favour enemies and their explosions being able to select a base colour when it spawns. The only trade offs are that the background colour change for the main playfield has to happen a scanline early (and finishes a scanline late just to keep everything symmetrical) and the extra CPU load for the object colours has finally tipped things over the edge so I might need to drop the in-game music option; the test tune is causing things to very occasionally overrun and drop a frame and I just don’t feel happy with that happening even when it’s infrequent.

A couple of bugs have also been knocked out of the engine including one that completely spannered the enemy movement timings – it went unnoticed until now because the test data had accidentally been masking the issue!