English Amiga Board


Go Back   English Amiga Board > Other Projects > project.Amiga Game Factory

 
 
Thread Tools
Old 22 November 2021, 09:39   #161
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
yes, but often coder (by posting here) implicitly seeks advice. And we're here
jotd is offline  
Old 22 November 2021, 14:21   #162
dlfrsilver
CaptainM68K-SPS France
 
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 46
Posts: 10,412
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by malko View Post
Recently almost all games' thread have had pages filled with OCS/ECS vs AGA arguments.
Dread, Robocop, Double Dragon, etc.

It's up to the coder/team behing the game to decide which machine is the target. Which "sacrifices" will be made to fulfill the goal.
Doing A500 512k games in 2021 is a non-sense.
dlfrsilver is offline  
Old 22 November 2021, 15:19   #163
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
Quote:
Originally Posted by dlfrsilver View Post
Doing A500 512k games in 2021 is a non-sense.

Mrs Pacman runs on 512k


but it's expected: not too many things going on there. Only the sound samples make it big.
jotd is offline  
Old 22 November 2021, 18:32   #164
rothers
Registered User
 
Join Date: Apr 2018
Location: UK
Posts: 487
Quote:
Originally Posted by dlfrsilver View Post
Doing A500 512k games in 2021 is a non-sense.

It's a cool technical challenge but yeah, 1MB is standard, and I'd say represents the generally targeted 'golden age' of the Amiga.
rothers is offline  
Old 22 November 2021, 18:44   #165
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
PREPARING SOUND EFFECTS FOR SCORPION ENGINE WAV TO 8SVX

Mark Day - 21 November 2021


One of the main reasons for this blog is to try to put up useful bits of info that will hopefully help any beginners or indeed intermediates to get things done without too much pain and suffering!

One of those not so obvious things is preparing sound effects so they will work in the Scorpion Engine.

You will need 2 things (which are also free):

Sound Editor - https://www.ocenaudio.com/en/startpage

Converter - https://convertio.co/wav-8svx/

If like me you are using samples from the arcade original, import these into your sound editor and trim if necessary (you want to reduce the file size as much as possible)

Then convert the sample rate down to 22khz (any lower will lose it’s clarity)

Save to WAV format.

Then drop into into the converter listed above, this will output an 8SVX file that you can then use in the Scorpion Editor.
skyzoo73 is offline  
Old 22 November 2021, 19:37   #166
dlfrsilver
CaptainM68K-SPS France
 
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 46
Posts: 10,412
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by rothers View Post
It's a cool technical challenge but yeah, 1MB is standard, and I'd say represents the generally targeted 'golden age' of the Amiga.
Technical challenge ? You mean it's a technical feast to remove graphics or sprite frames exactly like back in the 80's.

We have the chance these days to do or bring better than we could had back in the day (even on A500).
dlfrsilver is offline  
Old 22 November 2021, 19:52   #167
rothers
Registered User
 
Join Date: Apr 2018
Location: UK
Posts: 487
Quote:
Originally Posted by dlfrsilver View Post
Technical challenge ? You mean it's a technical feast to remove graphics or sprite frames exactly like back in the 80's.

Well no, the technical challenge would be to not remove the frames but to use some clever programming/compression/graphics to fit it all in.


It's certainly possible but in this case I'd much prefer it just used 1MB.
rothers is offline  
Old 22 November 2021, 19:52   #168
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
ENEMY AI IN SCORPION ENGINE PART 1

Mark Day 22 November 2021

Over the weekend I completed a first iteration of the enemy moevemnt and attacks. Coding this in the Scorpion Engine is very different from doing it in C, but many of the concepts remain the same.

The whole thing works as one big code loop, so the enemy is always thinking about their next move.

Initilaise

First I initialise the enemy, in here I simply spawn their legs (see previous post about this) and then run the “Idle” code block.

Idle

This is where we return the enemy back to their default settings, in our case we set their Var1 (which controls whether they are attacking, on a ladder, being hit etc..) We set this back to normal which is 0.

And then we trigger the AI codeblock.

AI

In here we first check that we are in a state to make an AI move (eg. if the enemy is being hit they do not need to run this code)

We then check the distance on the X axis to the target (the player).

Check Distance X

First we check if the enemy is standing too close and should reposition.

If not, then we check if the enemy is outside of the attack range, if so we move the enemy using “Approach”.

And if they are in the perfect attack range we then “Check Distance Y”

Check Distance Y

If they are too far away we let the enemy “Approach”.

Else the enemy is within range on both X and Y axis, meaning they have a chance to attack.

Attack Chance

We now grab a random value, in Scorpion it’s called rolling the dice. If it lands on 1 I say we can “Attack”, otherwise the enemy is told to wait 10 frames (0.2 seconds) before being sent back to the “AI” codeblock above.

Attack

Here we can tell the nemy to select an attack type, again we can do a probablity roll of the dice to determine whether they should prefer one attack over another.

Approach

As mentioned above sometimes the enemy is asked to “Approach”, we can use the Scorpions inbuilt “move_atplayer” which looks really good.

We then ask the enemy to go back to “AI” after 5 frames (0.1 seconds).

To Conclude

So by returning to “AI” the enemy is constantly reassesing it’s choices, which makes for some nice AI. This iteration is not perfect, but it get’s us pretty close to an enjoyable game fairly quickly.

Tings to do next will be to get the enemies to consider which side they want to attack as right now they choose the nearest side. And if approaching from below they always place themselves ontop before moving to the attack range, so this will need fixing too.

[ Show youtube player ]

http://www.electriccafe.xyz/double-d...-engine-part-1
skyzoo73 is offline  
Old 22 November 2021, 20:14   #169
dlfrsilver
CaptainM68K-SPS France
 
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 46
Posts: 10,412
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by rothers View Post
Well no, the technical challenge would be to not remove the frames but to use some clever programming/compression/graphics to fit it all in.


It's certainly possible but in this case I'd much prefer it just used 1MB.
That's what Richard Aplin did in 1988/9.
dlfrsilver is offline  
Old 22 November 2021, 20:17   #170
acidbottle
Registered User
 
acidbottle's Avatar
 
Join Date: Jul 2018
Location: Scotland
Posts: 821
This blog is awesome skyzoo, really helpful for reference. Going to rethink how I do my sfx as yours sound nice and crisp, for whatever reasons I cannot trigger mine if activated in quick succession.

On the whole this is shaping up to be an outstanding port tho
acidbottle is offline  
Old 22 November 2021, 20:34   #171
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
Quote:
Originally Posted by acidbottle View Post
This blog is awesome skyzoo, really helpful for reference. Going to rethink how I do my sfx as yours sound nice and crisp, for whatever reasons I cannot trigger mine if activated in quick succession.

On the whole this is shaping up to be an outstanding port tho

I'm not the developer, I just lend a hand just to share updates from the blog and test the game.
Behind Double Dragon for the Amiga is the commitment of Mark Day (ElectricCafe).

http://www.electriccafe.xyz/
skyzoo73 is offline  
Old 23 November 2021, 12:35   #172
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
FROM SCORPION TO FLOPPY DISK

Mark Day - 23 November 2021



One of the great joys of using the Scorpion Engine so far has been the ability to quickly create a working disk image (ADF) that I can copy to floppy disk (using a Gotek) and load up on my Amiga 500. For those not so technically minded on the hardware side (like me) this is just fantastic.



Double Dragon looking glorious on skyzoo73’s Amiga 500



In fact when it comes to physcial media I am very romantic in that I love everything about the whole ritual of looking at the box artwork, putting the disk in the drive and the sound of the floppy drive booting up. Then there is the anticipation of waiting for the music and Title Screen, and sometimes we were even treated to some insanely good demo music. Every element feeds into creating a much greater experience.

You cannot get this feeling from a digital file being loaded into WinUAE, so what I’m saying is I like to take the time to appreciate the craftmanship from the artists involved.

This is also why I insist on my physical disks displaying the original artwork. I hope my version of Double Dragon will join these very soon.




And on a final point about being romantic, I know there have been discussions on EAB regarding making the game for higher spec Amigas, but this is not what the project is about.

The main reason I started this project was as a tribute to my late father who bought me and my brothers the Amiga 500 (that still sits next to me everyday). I still remember waking up Christmas morning and opening the wrapping paper on the Batman pack before spending all day playing Xenon 2, Super Hang-on, Altered Beast and many others. Easily the best Christmas ever!

So the game is being made for this legendary machine.


http://www.electriccafe.xyz/double-d...to-floppy-disk

http://www.electriccafe.xyz/
skyzoo73 is offline  
Old 23 November 2021, 17:52   #173
Silverstreak
Registered User
 
Silverstreak's Avatar
 
Join Date: Mar 2017
Location: London
Posts: 124
It looks awesome, nice shots too.
Silverstreak is offline  
Old 23 November 2021, 18:14   #174
TjLaZer
Registered User
 
TjLaZer's Avatar
 
Join Date: Sep 2004
Location: Tacoma, WA USA
Age: 52
Posts: 1,915
Excellent, thanks for making this run on a lowly A500!
TjLaZer is offline  
Old 23 November 2021, 19:25   #175
nikosidis
Registered User
 
Join Date: Jan 2020
Location: oslo/norway
Posts: 1,607
Yes, A500 rules!!
Looking fantastic this conversion.
nikosidis is offline  
Old 23 November 2021, 20:31   #176
vulture
Registered User
 
Join Date: Oct 2007
Location: Athens , Greece
Posts: 1,840
Sticking with the classic A500 is totally fine ;-)

…but not with only 512Kb Chip RAM.

512Kb Chip & 512Kb Slow RAM was definitely the standard / most common for an A500.
vulture is offline  
Old 24 November 2021, 22:45   #177
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
KNOCKING DOWN ENEMIES

Mark Day - 24 November 2021



In Double Dragon, the players and enemies walk around on a pseudo 3D map, so there isn’t really a floor or platform they walk on.

So to get them to fall down was alo trickier than it first looked. I mean this engine is designed for platformers so has jumping and falling built in but on our pseudo 3D map we don’t really have a floor so we need to do something else.

Change Actor Type

When the enemy receives a hit in the stunned position I switch to new actor that just has the fall animations. This actor has to be set up in a certain way otherwise we won’t be able to move it freely.

We have to ensure there is no collision detection on the Y axis, set the movement type to CPU and then most importantly set teh speed to 0. This now overrides the Scorpions inbuilt movement code.

Initiate Fall

We then start the movement code, first setting Var1 to the current Y position, then Var5 to 6, we will use Var5 as a Y vector to move the actor up and down, decreasing it from 6 until it becomes minus.

Move Actor Position

Here we use a “While” statement to move the actor up from a starting point (Var1) into the air and back down again to the same point.

Each frame we decrease the Var5 value by 1, eventually it becomes a minus number so the actor will come ack down again.

When the actor reaches the starting point (Var1) we then end the “While” statement.

Change Actor Type Back Again

Now the actor has reached the “floor” I change the type back to the main type and then change it’s animation to the Floor/Get Up animation.

Death

If the enemies health is 0 or below I play the Death animation instead.

And this is what it looks like…


[ Show youtube player ]


http://www.electriccafe.xyz/double-d...g-down-enemies

http://www.electriccafe.xyz/
skyzoo73 is offline  
Old 25 November 2021, 01:12   #178
redblade
Zone Friend
 
redblade's Avatar
 
Join Date: Mar 2004
Location: Middle Earth
Age: 40
Posts: 2,127
As long as they keep in the elbow bug . I just wished that when they did the re-release on the Amiga, they used the DDII engine with updated gfx. Obviously publishers were greedy.
redblade is offline  
Old 25 November 2021, 09:14   #179
Havie
Registered User
 
Havie's Avatar
 
Join Date: Mar 2012
Location: UK
Posts: 1,893
Quote:
Originally Posted by skyzoo73 View Post
ENEMY AI IN SCORPION ENGINE PART 1

Mark Day 22 November 2021

Over the weekend I completed a first iteration of the enemy moevemnt and attacks. Coding this in the Scorpion Engine is very different from doing it in C, but many of the concepts remain the same.

The whole thing works as one big code loop, so the enemy is always thinking about their next move.

Initilaise

First I initialise the enemy, in here I simply spawn their legs (see previous post about this) and then run the “Idle” code block.

Idle

This is where we return the enemy back to their default settings, in our case we set their Var1 (which controls whether they are attacking, on a ladder, being hit etc..) We set this back to normal which is 0.

And then we trigger the AI codeblock.

AI

In here we first check that we are in a state to make an AI move (eg. if the enemy is being hit they do not need to run this code)

We then check the distance on the X axis to the target (the player).

Check Distance X

First we check if the enemy is standing too close and should reposition.

If not, then we check if the enemy is outside of the attack range, if so we move the enemy using “Approach”.

And if they are in the perfect attack range we then “Check Distance Y”

Check Distance Y

If they are too far away we let the enemy “Approach”.

Else the enemy is within range on both X and Y axis, meaning they have a chance to attack.

Attack Chance

We now grab a random value, in Scorpion it’s called rolling the dice. If it lands on 1 I say we can “Attack”, otherwise the enemy is told to wait 10 frames (0.2 seconds) before being sent back to the “AI” codeblock above.

Attack

Here we can tell the nemy to select an attack type, again we can do a probablity roll of the dice to determine whether they should prefer one attack over another.

Approach

As mentioned above sometimes the enemy is asked to “Approach”, we can use the Scorpions inbuilt “move_atplayer” which looks really good.

We then ask the enemy to go back to “AI” after 5 frames (0.1 seconds).

To Conclude

So by returning to “AI” the enemy is constantly reassesing it’s choices, which makes for some nice AI. This iteration is not perfect, but it get’s us pretty close to an enjoyable game fairly quickly.

Tings to do next will be to get the enemies to consider which side they want to attack as right now they choose the nearest side. And if approaching from below they always place themselves ontop before moving to the attack range, so this will need fixing too.

[ Show youtube player ]

http://www.electriccafe.xyz/double-d...-engine-part-1
This is interesting as I am currently working on the AI in Target Renegade.

With regards to attacking - I am currently working on the principle that as soon as the baddie is in position to attack the player then they will initiate an attack. I am currently not thinking of making it random (may do so to increase difficulty as the game goes on) as the player has a window of opportunity to attack the baddie before he/she gets into position. Haven't got to this stage yet so may change my mind when coded.

I am currently finding bugs in the code that works out which baddie goes where - sort of works. I aim to have 1 either side of the player and one above or below the player ready to move in when one of the side ones is knocked down. That way there is a constant flow of attacks on the player.

Keep up the good work!
Havie is offline  
Old 25 November 2021, 17:14   #180
gimbal
cheeky scoundrel
 
gimbal's Avatar
 
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,908
Quote:
Originally Posted by dlfrsilver View Post
Doing A500 512k games in 2021 is a non-sense.
I don't know. It is part of history that games were made to run in 512k even though 1mb was very common. If you want to place yourself in the shoes of the devs in those days and learn what they had to do to get the job done... it's not nonsense.

Nostalgia is not only about playing the games, I can imagine that for quite some folks it's also the development part of it that makes them relive the golden days.
gimbal is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
DOUBLE DRAGON II vs DOUBLE DRAGON 3 AMIGA TITLE MUSIC ZEUSDAZ Retrogaming General Discussion 20 16 January 2021 13:29
Double Dragon 2 The Master project.WHDLoad 2 04 June 2006 19:20
Double Dragon 2 Whdload? fryguy request.Old Rare Games 2 17 November 2005 01:31
Double Dragon 2 HD-Install Konrad support.Games 3 08 October 2002 23:04

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 01:32.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.12488 seconds with 14 queries