English Amiga Board


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

 
 
Thread Tools
Old 25 November 2021, 19:18   #181
Havie
Registered User
 
Havie's Avatar
 
Join Date: Mar 2012
Location: UK
Posts: 1,893
Quote:
Originally Posted by gimbal View Post
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.
And there is the whole, if we knew what we know now - how much better could the games have been then. Plainly some could have been a lot better as they were just poorly programmed but programming techniques have evolved and our understanding of the Amiga architecture is way beyond what they knew back in the day (there was obviously the odd programmer who understood it better but look at how many games make very poor use of the Amiga graphics hardware).

If only...
Havie is offline  
Old 25 November 2021, 21:08   #182
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,161
Not to mention killer development tools.
jotd is offline  
Old 25 November 2021, 22:32   #183
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
SQUEEZING THE MUSIC INTO MEMORY

Mark Day - 25 November 2021



In a previous post I mentioned my original 65kb mods would be too big to load into memory and this is still very much the case - I have budgeted about 12kb maximum for music.

So this had led me to explore different options - first using very low memory chip instrumentation - which as previously stated would give it a different feel - but would also require a major rewrite to adapt the tracks to those sounds.

So instead I tried working with the current instruments to see if I could reduce their size without losing the feel. This is what I came up with:

https://t.co/iRDceO8PQe?amp=1

I worked out I can do all the original instruments for about 7kb (down from 53kb) by using a combination of upsampling and loops combined with tracker hex fades. Each protracker pattern takes up about 1kb so I have also reduced these to 5kb (down from 12kb).

I have also explored a no percussion version which works just as well in game and saves another 4-5kb, so I could end up doing it this way.

How I load / unload tracks will also need looking at but it’s encouraging to know we can achieve very close to the original sound for much less memory!

http://www.electriccafe.xyz/double-d...ic-into-memory

http://www.electriccafe.xyz/
skyzoo73 is offline  
Old 25 November 2021, 22:33   #184
Havie
Registered User
 
Havie's Avatar
 
Join Date: Mar 2012
Location: UK
Posts: 1,893
Quote:
Originally Posted by jotd View Post
Not to mention killer development tools.
Exactly. Amigas boot quickly but using WinUae, I can crash the system and be up and running again in seconds. And us PC convert samples, graphics etc. And speed of compilation...
Havie is offline  
Old 27 November 2021, 21:03   #185
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
SPEED TESTS

Mark Day - 27 November 2021


I’ve been testing adding the barrel to the scene and it has revealed something I suspected - the more actors on screen (despite their image size) the slower the game will run.

I thought the game was running a bit quicker before I started to paste the legs onto the body, but couldn’t be completely sure as I had also added alot of code.

But it is quite obvious, that once the barrel is added that it is like adding another enemy to the scene, the player alone becomes 3 actors. See how the game really slows down as more and more actors are on screen at once:

[ Show youtube player ]

So put simply, the game will run quicker if the legs are not seperate actors, as having 1 player and 2 enemies means 6 actors. When I did speed tests at the start I could do 4 - 5 enemies without any visible slowdown, so I will explore going back to using the full walking frames.

Weapons will still use the parent lock movement system that Earok implemented.


http://www.electriccafe.xyz/double-d...27/speed-tests

http://www.electriccafe.xyz/
skyzoo73 is offline  
Old 28 November 2021, 16:18   #186
pink^abyss
Registered User
 
Join Date: Aug 2018
Location: Untergrund/Germany
Posts: 408
Quote:
Originally Posted by skyzoo73 View Post
I worked out I can do all the original instruments for about 7kb (down from 53kb) by using a combination of upsampling and loops combined with tracker hex fades. Each protracker pattern takes up about 1kb so I have also reduced these to 5kb (down from 12kb).

Sounds quite good for just 7kb samples! I like the short bass sample.
pink^abyss is offline  
Old 01 December 2021, 12:37   #187
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
MEMORY CALCULATIONS AND PLANNING

Mark Day - 1 December 2021


In my quest to squeeze as much of the arcade Double Dragon into the Amiga 500 + 512kb slow ram, I am now carefully planning how much memory each little bit is taking up. To reiterate we have 512kb of chipram to load everythng we need at any one time (Slow ram is only useful for swapping things in and out without having to do any disk loading). So here is some info I have gathered along with help from Earok and EAB members:

Overheads

Kickstart 1.3 takes up 40kb

The Display (5 bitplanes x2 buffers) = 115,200kb

So before we even start to load any graphics that is 145,200kb of our 512kb chip ram used up.

I have also worked out the following from looking at the buld.log output from Scorpion and then adding a new tile and a new frame:

1 x 16x16 pixel tile is 160 bytes

1 x frame of animation for Player or enemy avg is 2.48kb

Bolo’s frames approx 3kb as he is bigger

Also 1 frame of Bolo punching is approx 4kb as it is wider

1 x 16x256 pixel panel image is 8kb

So we can start to plan how we use up the memory and also prioritise the things that are most important. For example I now know that the cat on the bin took up nearly 1kb as it was 6 tiles big. But let’s add up what I currently have:

Kickstart = 40kb

Display = 115.2kb

Map tiles x297 = 47kb

Top and bottom panels = 16kb

Billy frames x25 approx = 62kb

Roper frames x13 approx = 32kb

Bolo frames x13 approx = 41kb

Music 12kb

Sfx 30kb

In addition the following is loaded into slow ram:

Code 8kb

Metadata 40kb

So the current total being loaded into chip ram is 395kb, which you would think leaves enough room for at least another enemy? Not so..

Something I was not considering was that all the animation frames get X flipped and those versions are saved into chip ram separately!

In fact Billy’s frames total 104kb, Roper 64kb and Bolo 82kb. This explains why I’m running out of memory.

The actual total I am unsuccessfully loading in is 530kb - so we will need to do some more thinking about how we display the player and enemies without affecting performace and reducing the memory.



http://www.electriccafe.xyz/double-d...s-and-planning

Last edited by skyzoo73; 01 December 2021 at 12:46.
skyzoo73 is offline  
Old 01 December 2021, 12:40   #188
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
ENEMY AI IN SCORPION ENGINE PART 2

Mark Day - 1 December 2021



In this iteration of the AI I have improved the enemies ability to approach and also change sides correctly.

In this video you will see the enemy now tries to position themselves correctly on the Y axis as a priority, if they are too close on the X but too far away on the Y then they make diagonal movements around the player before trying to position themselves for an attack.

[ Show youtube player ]

Apart from a slight animation bug when moving diagonally this looks really nice and almost completes this part of the AI which I call the “Engage” state. The last thing to do for this state would be to ensure they consider if an enemy is already attacking from one side, so they would choose the other.

In addition to this “Engage” state, next we will compliment it with a “Patrol” state. In the “Patrol” state the enemy will be coded to keep a distance and make less movements, possibly changing sides.

It’s likely this “Patrol” state will only be used if 2 enemies are already engaged with a player.

We can track this by giving the Player “slots”, if front and back slots are filled then the enemy can remain in “Patrol”, if a slot becomes free then they will switch to “Engage”.
skyzoo73 is offline  
Old 01 December 2021, 23:43   #189
Mixel
Registered User
 
Mixel's Avatar
 
Join Date: Jun 2020
Location: Leeds, UK
Posts: 770
Wow that’s looking and sounding great! Enemy AI breaks my brain so it’s interesting to see how people approach it, too!
Mixel is offline  
Old 02 December 2021, 01:25   #190
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
Quote:
Originally Posted by Mixel View Post
Wow that’s looking and sounding great! Enemy AI breaks my brain so it’s interesting to see how people approach it, too!
Recreating the arcade-like AI I think is the most complicated part, and the most important for a port faithful to the original. The music is temporary, it will be replaced later.
skyzoo73 is offline  
Old 02 December 2021, 06:04   #191
earok
Registered User
 
Join Date: Dec 2013
Location: Auckland
Posts: 3,539
Quote:
Originally Posted by skyzoo73 View Post
Something I was not considering was that all the animation frames get X flipped and those versions are saved into chip ram separately!
I was talking about this with ElectricCafe earlier, I believe that the blitter can't flip a bob on the X axis, hence that X flipped copies of all bobs do need to be stored in memory (hence why you can't jump over enemies in Rise of the Robots) but I'd love to be proven wrong if there is actually a trick for it.
earok is offline  
Old 02 December 2021, 10:05   #192
roondar
Registered User
 
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
Quote:
Originally Posted by earok View Post
I was talking about this with ElectricCafe earlier, I believe that the blitter can't flip a bob on the X axis, hence that X flipped copies of all bobs do need to be stored in memory (hence why you can't jump over enemies in Rise of the Robots) but I'd love to be proven wrong if there is actually a trick for it.
AFAIK, the 'fastest' way to do real-time X-flipping* is storing the bobs with 50% of them facing one side and 50% facing the other side (usually done top vs bottom) and then when you need to draw the object you blit the part which is facing the correct way directly and use the CPU and a table lookup (usually byte based to save on storage size) to soft-blit the other half. This last phase can also be done in two steps, which may be faster: make a lookup-based copy into a temp area via CPU, then use blitter to draw to screen from the temp area.

*) i.e. not simply having pre-flipped version of everything stored
roondar is offline  
Old 02 December 2021, 22:53   #193
redblade
Zone Friend
 
redblade's Avatar
 
Join Date: Mar 2004
Location: Middle Earth
Age: 40
Posts: 2,127
wow, it looks so beautiful can't wait to see that on the A500
redblade is offline  
Old 03 December 2021, 15:13   #194
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
GAMEPLAY FOOTAGE

Mark Day - 3 December 2021


Here’s some extended gameplay footage from a recent build, it has a few bugs and is obviously missing moves but it's really coming together fast!

A few new things it shows off are the Top and Bottom panels, so we now have functioning health bars, scores and a countdown timer.

Also you can see the palette swapping working with the Roper enemy being recoloured just before the level loads in.

Note: This video shows Linda but as I previously mentioned we will need some clever memory swapping to achieve this on Amiga 500.


[ Show youtube player ]


Coming up next will be throws, jumps and knees to the head, expanding the moveset.. and I need to sort out the Z layering.


http://www.electriccafe.xyz/double-d...meplay-footage

http://www.electriccafe.xyz/
skyzoo73 is offline  
Old 03 December 2021, 17:19   #195
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,161
this looks and sounds very good. I've completed the game in the arcades and really, really it's excellent.

don't forget that the character(s) can climb ladders too.
jotd is offline  
Old 03 December 2021, 20:07   #196
rothers
Registered User
 
Join Date: Apr 2018
Location: UK
Posts: 487
Absolutely superb!
rothers is offline  
Old 04 December 2021, 12:45   #197
Guyver4
Registered User
 
Join Date: Dec 2021
Location: Uk
Posts: 3
This is an amazing project!

I know this is not being vanilla A500, but once it is finished could we have a CD/iso version that runs on CDTV/CD32 that just replaces the music with CD music using the arcade tunes?
Guyver4 is offline  
Old 05 December 2021, 15:43   #198
skyzoo73
Registered User
 
skyzoo73's Avatar
 
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 292
BATTLE ZONES

Mark Day - 5 December 2021


One of the features of most beat’em ups is the camera stopping at certain points to allow for a battle before it will let the player move on.

In Scorpion we can achieve this using “Blocks”.

In the video you will see the blocks are placed along the floor and when the player collides the camera is stopped (they will be invisible in the final game).

At this point we also generate collision blocks either side of the screen (to stop the player walking out of the zone)

To control the battle zone I keep an enemy count (a debug display can be seen next to the player 1 health bar).

Once this count reaches 0, the collision blocks are removed, the camera is told to follow the player again and we pop up a little “Go” hand to tell the player they can continue.

[ Show youtube player ]

http://www.electriccafe.xyz/double-d...5/battle-zones


skyzoo73 is offline  
Old 05 December 2021, 19:24   #199
malko
Ex nihilo nihil
 
malko's Avatar
 
Join Date: Oct 2017
Location: CH
Posts: 4,856
^
malko is offline  
Old 05 December 2021, 23:07   #200
nikosidis
Registered User
 
Join Date: Jan 2020
Location: oslo/norway
Posts: 1,607
I remember this game very well from the arcades. This seams to come together very nice
Keep on the great work.
nikosidis 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 19:38.

Top

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