English Amiga Board

English Amiga Board (http://eab.abime.net/index.php)
-   Amiga scene (http://eab.abime.net/forumdisplay.php?f=2)
-   -   Beats of Fire (http://eab.abime.net/showthread.php?t=66639)

leathered 14 November 2012 16:04

Beats of Fire
FFAGA – Alpha demo.

The latest version of the game engine over 2 levels, one of which is a boss fight. Haggar is the only character available but has all his moves intact and almost working!
Music has been changed since the last videos to something which consumes less memory and the graphics have been re-vamped almost entirely.
Gameplay wise this still needs a lot of tweaking, and some work remains in getting all the moves and various animation frames working fluently together, there just wasn't time to fix all of it before the intended 'deadline' without breaking it altogether. Hopefully after some more playtesting it will arrive at something that works without the little eccentricities you will see the enemy goons occasionally doing when you hit them!

The goons are incredibly cheap and will only attack if they have a chance at hitting you.
For the demo you may need to learn some fairly cheap stuff yourself to survive, after which it should be easy!
The balance of attack/recovery is quicker than the arcade – this may change but as far as the engine goes I'm having it performing as evilly as possible at this early stage - it might not be exactly fair!

Quick players guide.

You need a 2 button stick. Button 1 for attack, button 2 for jumps. Both buttons will trigger the invincible lariat.
ESC quits to workbench while a stage is running.

Standard attack.
2 low punches culminating in an overhead strike which topples the goons
To use repeatedly jab the attack button.

Recovery time.
The time taken for Haggar/ goons to recover from a strike.
Once hit there is enough time to respond and connect with an attack of your own, but only if the attacker is too slow with their next attack. If you are getting mashed, a lariat will get you out of trouble.
In FFAGA this is different from the arcade -
recovery time and attacking animations are faster for all characters.
A toppled character is invulnerable until they get back on their feet.
Read on for more invulnerable animations.

A spinning attack hitting on all sides during which Haggar is invulnerable.
The lariat will use a small amount of Haggar's energy.
If Haggar's energy is too low then the lariat is not available.
To use: Press attack and jump buttons simultaneously.

Airborne strikes.

Drop kick.
Only one kick can be performed during a single jump.
Can connect with multiple goons.
To use: Press attack button whilst jumping.

The attack can connect with multiple goons.
The attack will stun the enemy without toppling them,
but will topple an enemy making an airborne attack.
Can be used to start a combo.
To use: Press down + attack during a jump

Backward jump.
Press jump and then immediately to the reverse side.

To grab – walk into the enemy from any angle

Head/ shoulder butt.
Can score up to 3 hits.
Can combo into other moves.
To use: Press attack while grabbing the enemy.

Back drop.
Can slam grabbed goon into others.
Haggar is invulnerable whilst performing this move.
To use: Press to either side and attack while grabbing.

Pile driver.
Can connect with other goons during this move.
Haggar is invulnerable during the descent of the piledriver.
To use: While grabbing an enemy, press jump and then attack.

Notes on characters/ bugs
There are some adaptations which make the gameplay differ from the arcade. Some of the changes are down to just trying things out (because we can), and making the most of a limited amount of animation frames. Some of that is also down to bugs and under development. All of it is up for consideration!

Twop. Fast movement, punches will repeatedly connect without toppling your character.

Jake. 3 hit combo topples your character. Jump kick is also a toppler.

Slash. 3 hit toppler combo. Can defend strikes, is vulnerable to being thrown after defending.
Cannot defend against the pipe.

Hollywood. 3 hit toppler attack. Slide attack and somersault attack will topple.
Special features (bugs):
Dim Mak chi strike – will walk into and knock you down, seemingly with no effort.

Sodom. Shoulder charge will stun, can combo into Chop Suey technique.
Charging Slash – shoulder charge culminates in a sword slash.
Chop Suey – Sodom's standard attack as a hundred sword slash! Can cause multiple hits without toppling the character.

Splash move has been added though not working as it should, combo's into other moves from it will not always work as a standing enemy is sometimes toppled as opposed to being stunned. This is especially noticeable vs Sodom, who is toppled during a charging move.nemy is sometimes toppled as opposed to being stunned. This is especially noticeable vs Sodom, who is toppled during a charging move.

Latest version:

Download old engine:
ADF here http://www.lostinthefens.com/final_f...ga_preview.adf
HD here including source

Retro1234 14 November 2012 17:08

So far so good:)
I only had a quick look on my A1200@40 and bit of flickering with all 8 - I try do some more testing :)

Akira 14 November 2012 17:24


frikilokooo 14 November 2012 18:09

The speed is more than reasonable on my A1200/030 .The truth is that I was impressed
with the control response and the enemies intelligence well achieved,good job:great.

However still there are many bugs to be polished: the fall when hit in the air,grab an enemy instead of falling to the ground after a blow,small flickering,weird shadow color in the player,weird colors in the background,etc.

Personally I wish it was an original game rather than a conversion.There are people here who could help you make the graphics I think.:)

EDIT: I've been comparing it with the conversion ocs/ecs and I've noticed that you've reduced the size sprites from the original.The gameplay yours is closer to the arcade than the ocs/ecs version although it doesn't fit in some details.Your version has music, more sounds,more speed and more animation frames I think.

Bamiga2002 14 November 2012 18:28

Wow! Can't wait to test :). One of my favorite miggy beatemups even if the difference vs. arcade conversion was a bit steep.

s2325 14 November 2012 20:07

Thank you. 4 enemies, A500 speed: http://www.youtube.com/watch?v=75S6JHCiVEs Close to Final Fight from Gameboy Advance or SNES.

frikilokooo 14 November 2012 21:23


Originally Posted by s2325 (Post 850703)
Thank you. 4 enemies, A500 speed: http://www.youtube.com/watch?v=75S6JHCiVEs Close to Final Fight from Gameboy Advance or SNES.

I have a configuration issue because the sky looks of different colors on my A1200 with ClassicWB,however the color of the shadow of the player remains rare in the video.

leathered 15 November 2012 02:27

Thanks to everyone for taking the time to check this and respond! You helped make a rough day @work disappear.:spin

A bit more information I think:

This project was started with the intention of creating a decent side scrolling beat-em-up for the Amiga. There have been some notable attempts but for me there was always something missing! Final Fight was one of my fave arcades of the era and after plugging away in Amos Pro for a couple of weeks I switched to Blitz Basic2. So I'm not an amazing programmer and this is my first attempt using BB2.
I haven't posted before now as I'd hate for this to become another one of those projects that just runs out of steam. I think now that even if Final Fight becomes out of reach there's enough here to begin creating something decent for the Miggy. I'm definitely interested in making another game either after this or as soon as it becomes too much. Bearing this in mind, If someone wants to help with graphics or improving the code then that would be great.
I'm sticking with FF for now... Good learning curve!

Technical stuff that should help explain some of the issues:

Dual playfield display - one for bobs (the baddies) and one for the background. 2 Palettes of 15 colours (minus colour 0 in each case)
Player is a 64px wide sprite sharing its palette with the parallax background.
The parallax layer is made of 3 colour sprites and sits behind both playfields. The player sprite is displayed either in front or below the bobs playfield to add the illusion of depth. The remaining bob priority is controlled by selective blitting - which I've made as fast as I can whilst sacrificing a bit of accuracy.

It aint perfect!

@Boo Boo. If I push the number beyond 6 I get the same thing. I'll check older versions, but of course, there has to be a limit! It could be the style of blitting I've gone for!

@ frikilokooo. The colour in the shadow is due to me messing with the colour of the parallax background layer. I reduced a lovely 16 colour scene to 3 colours but ATM I'm using the wrong registers.
I also get the weird background colours sometimes, it's just something you press on with when your program is 'young' and you're fed up of messing with the graphics! But will be fixed. As to the other bugs, they are numerous and I appreciate them being pointed out.

@s2325. Thanks for posting that! Looks the same as mine albeit a baddy or 2. Is this 020? It's encouraging if that's the case.

s2325 15 November 2012 02:38

Yes, 020.

Codetapper 15 November 2012 05:31

Firstly, nice work on getting it to this stage.

I'm wondering if your screenmode selection is the best choice for the game though. At the moment it's 8 bitplanes to draw each frame and you're a bit limited by the colour palette (Hagar and the backgrounds having to share colours etc).

I wonder what the game would look like if you switched to 32 colour mode (or maybe 64) with this setup instead:

Use 4 sprites for the parallax layer, but attached so 15 (unique) colours. Have a copperlist that repeats the sprites across the screen so you would have a 128 pixel wide background across the entire screen. This would eliminate the gaps that appear in certain places.

If you wanted to keep the scrolling parallax, you'd probably have to shift the sprite data (although on 68020+ this isn't such a problem with the CPU). Especially if it scrolls at a maximum of 1 pixel per frame. You could also use another couple of sprites (repeated) as clouds or something high above the buildings that would add another layer.

This would mean you can have the remaining 31 (or 63) colours for the game, and so your sprites could look more like the arcade. I reckon in 6 bitplane mode, it'd be hard to tell Amiga graphics from the arcade. With a nice palette selection, even 5 bitplanes would look great!

Keep a clean copy of the level background graphics in memory so you can restore backgrounds behind bobs with one blit.

I would personally forget about having the player as a sprite. If you sort all your graphics in ascending Y position (with the hotspot being the player's position on the ground), then you draw them in that order and they will always correctly obscure each other.

Well done no matter what you decide (including ignoring me completely!) BTW did you rip all the sprites yourself or take them from various versions on the spriters resource website?

leathered 15 November 2012 11:30

Thanks for taking a look Codetapper. I spent a long time on your website researching ways to approach the hardware; it's one of the best resources out there.
I wanted to go down the same road as 'Risky Woods' which is I believe very similar to what you suggesting. If I knew I could achieve that and keep the speed respectable then I'd go that way for sure. This is more about my abilities than the Amiga hardware!
As you can imagine I've tried different combinations of screenmodes:-
The backgrounds look ace done even with 31 colours and 15 colours is all that's needed for the parallax layer (not achieved both of these at once, only 31col ,6 bpl and 15/15, 8 bpl). What would be interesting is to go back now there's something of a game engine and take a look at the speed using the player as a bob.

What I found during those early tests was that the speed was far below what I was expecting - in the panic I switched to using a sprite and had to use 8 bitplanes just to simulate any sort of 3d effect vs the bobs, which I was very reluctant to do! The offshoot of that was I didn't have to redraw the background under the bobs which now sit on a transparent layer.
Which leaves the parallax layer. For the first level it's easy to hide the gaps behind the buildings, but that won't be the case in later levels. I was thinking I'd have to lose the parallax for some sections, again negating the speed advantage using a sprite vs amount of colours.

The sprites were all taken from the spriters resource and similar websites, inevitably there were still a few frames missing that were not difficult to acquire using MAME. They are as Frikilokoo stated reduced slightly from the arcade versions and need a bit of nursing afterwards. The backgrounds were ripped using MAME and taking screenshots etc. It's the re-colouring that's the real pig!

I'm going to re-visit the screenmodes and maybe I'll post the results if they're any good.

viddi 15 November 2012 13:01

Great project! :great
Please keep up the good work and the parallax layer. ;)

Codetapper 15 November 2012 13:16

The Risky Woods method is overkill in your case as if you are restricting the game to AGA machines then you can use 64 bit wide sprites. All copper DMA time was used in Risky Woods just to reposition the 8 sprites to get 64 pixels repeating! Hence the bland palette as there was no time to do palette changes.

I thought one of the Dizzy games used 8 attached AGA sprites as a background, repeating the first one at the right edge to give a full 320 pixel wide background layer, but maybe I'm thinking of another game. I don't believe you can change the graphics data on the fly like you can with OCS/ECS sprites, but I don't think you need to. I'd just have a smaller repeating section.

You should gain a fair bit of speed having less bitplanes too.

The other trick you could do is scroll the screen at 50 frames per second but only update the characters at 25 frames. If you're scrolling 2 pixels between one update and the next, move the characters by 2 pixels when they are updated, but scroll the screen 1 pixel for 2 frames. That'll make it look silky smooth!

Hopefully Blitz Basic allows you to do some of these tricks...

viddi 15 November 2012 13:21


Originally Posted by Codetapper (Post 850818)
The other trick you could do is scroll the screen at 50 frames per second but only update the characters at 25 frames. If you're scrolling 2 pixels between one update and the next, move the characters by 2 pixels when they are updated, but scroll the screen 1 pixel for 2 frames. That'll make it look silky smooth!

Very interesting. :agree

leathered 15 November 2012 13:56

Blitz is relatively unrestrictive but I found very little documentation regarding sprite re-use. You end up digging into the HRM and work it into the blitz commands. Otherwise there's always the in-line assembler.
It's certainly doable, I'm sure. As for the 50 frames trick - that's an excellent idea...
Currently the graphics update in 2 vbl (25fps) to keep the frame rate constant as the number of enemies increases. Updating the med player with the remaining time keeps the playback smooth, I've always thought there was a bit too much 'headroom' though.

Bamiga2002 15 November 2012 14:54

I couldn't find any executable file on the ADF, just pics etc. Do I need to boot the ADF or how can I just run it from Workbench?

leathered 15 November 2012 15:05

Should be run from workbench, unsure if it would work otherwise.
The executable is named final_fight_4tierblit. I'm uploading an HD version now - check the first post :)

s2325 15 November 2012 15:06

There is executable file without any extension. No startup-sequence so you need to use WorkBench or CLI but you need to know filename.

Bamiga2002 15 November 2012 23:05

When I select the amount of enemies and press fire the game just throws me back to WB. Same with no S-S. :confused

lesta_smsc 15 November 2012 23:08

Great work! Lots of potential! You could even create your own characters! :D

All times are GMT +2. The time now is 17:40.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.

Page generated in 0.06027 seconds with 11 queries