English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Nostalgia & memories (https://eab.abime.net/forumdisplay.php?f=18)
-   -   Sprites are the weakest part of the Amiga specification (https://eab.abime.net/showthread.php?t=100356)

sandruzzo 13 August 2022 05:32

Shadow of the beast sprites usage wasn't so bad after all.. Maybe we need flip x-y


https://codetapper.com/amiga/sprite-...-of-the-beast/

Tsak 13 August 2022 14:30

1 Attachment(s)
Quote:

Originally Posted by DanScott (Post 1559243)
Anyone care to also post fairly decent use of sprites ?

Here, level 2 in Metro Siege is made (almost) entirely out of sprites and copper (except for the player and the collumn with the poster) :)

http://eab.abime.net/attachment.php?...1&d=1660392937

In general while I'd 100% agree with the versatility points and pushing creativity, it needs to be mentioned that sprites might be one of the main reasons Amiga is struggling with 50fps as a 16bit system (without major compromises). The blitter is fine but clearly not enough to push plenty objects on screen, especially when scrolling is involved and with games that require objects with more colors than 3.

mcgeezer 13 August 2022 15:19

2 Attachment(s)
In the screen shot attachment here's how I use them in Devil's Temple.

Banks Spr0/1 is Green, Spr2/3 is Blue, Spr4/5 is Yellow and Spr6/7 is Red.

You'll notice on the player that I use the last three banks to allow for a 48 pixel wide sprite, there are however some instances when the sprite is larger as I'm showing here with the nunchucks... in that case I call on the blitter to extend the sprite by 32pixels (light grey). The reason I use the latter three banks is because when the player is hit I use the first sprite bank to show the hit point and because of the way the priorities work, this has to be in spr0/1.


The other image is a sprite sheet of the main player from Devil's Temple, as you can imagine if the Amiga sprite hardware had any x/y flipping capabilities I would have saved on half the memory here. As the sprite sheet is so big I ended up building the hardware sprites from 9 tiles every frame via the CPU if the sheet is in fast ram or the blitter in chip ram, the tiles are deduplicated to save on ram... so the sprite sheet is 373kb but when in tiles it goes down to 148kb.

Sure the hardware sprites are flexible, but where this took me quite a while to do, I would imagine the job on say a Megadrive or a SNES would be 10 times easier and faster simply due to the more flexible sprites they have.

Tigerskunk 13 August 2022 18:42

Quote:

Originally Posted by Tsak (Post 1559351)
The blitter is fine but clearly not enough to push plenty objects on screen, especially when scrolling is involved and with games that require objects with more colors than 3.

True.

With 50fps, you usually cannot get enough stuff on the screen in one frame to have a proper arcade game on a vanilla A500/600/1000/2000.

Samurai_Crow 13 August 2022 19:15

Quote:

Originally Posted by sandruzzo (Post 1559294)
Shadow of the beast sprites usage wasn't so bad after all.. Maybe we need flip x-y





https://codetapper.com/amiga/sprite-...-of-the-beast/

If the source is external to the sprite, the blitter can use a negative modulo to y-flip the image already. X-flip is not presently possible though.

sandruzzo 14 August 2022 01:42

Quote:

Originally Posted by Samurai_Crow (Post 1559414)
If the source is external to the sprite, the blitter can use a negative modulo to y-flip the image already. X-flip is not presently possible though.

Yes, but here the name of the game is "sprites". Even though there weren't "perfect" with have to think this: copper, blitter, paula and sprites of course

redblade 14 August 2022 02:45

Quote:

Originally Posted by Tsak (Post 1559351)
Here, level 2 in Metro Siege is made (almost) entirely out of sprites and copper (except for the player and the collumn with the poster) :)

http://eab.abime.net/attachment.php?...1&d=1660392937

Nice, so the front pavement that the player is walking on and the back pavement are both sprites?

So the reason for the distance of the background sprites is for the COPPER to have enough time to update the sprite pointers?

Daytona675x 14 August 2022 09:17

Sprite usage in "Souverän Soccer":

* Sprite 0
- ball if flying higher than adboard
- player- and passto-markers for team A
- free-kick line-marker for dots above adboard

* Sprite 1
- corner flags
- player- and passto-markers for team B
- free-kick line-marker for dots above adboard

* Sprites 2,3,4
- text infos
- goals
- corner flags

Sprites are 64 pixel wide, a wild mixture of automatic and manual mode, also with quite some on-the-fly sprite-playfield-priority and sprite-color changes.
Yes, Amiga sprites are very unflexible and limited but well, I understand why they were made the way they are. And if you use them wisely they can be very helpful.

pink^abyss 14 August 2022 10:08

Quote:

Originally Posted by Tigerskunk (Post 1559405)
True.

With 50fps, you usually cannot get enough stuff on the screen in one frame to have a proper arcade game on a vanilla A500/600/1000/2000.


At least for single screeners you can come close to arcade titles of mid 80ties
(with 50fps, 32 colors)

https://www.youtube.com/watch?t=262&...ature=youtu.be

roondar 14 August 2022 11:56

A lot has to do with object size. Keep the objects small and the Amiga can throw plenty of them around. IIRC you can manage something like 45-50 objects @16x16/50Hz in 4 bitplanes with the Blitter (if you're just blitting, not with game logic etc). And if your objects are 16x16, even the HW Sprites can display quite a few of them.

It's almost as if the Amiga was designed when game objects tended to be small. Say around 1983/1984 ;)

aros-sg 14 August 2022 13:32

Quote:

Originally Posted by roondar (Post 1559524)
A lot has to do with object size. Keep the objects small and the Amiga can throw plenty of them around.


I wonder how ugly ~"fake bobs" (no mask, x position locked to multiple of 8 or 16, maybe cpu-blitted) would look for certain things (like bullets) in certain games. Similiar to how games on c64 or other systems use chars/tiles sometimes for moving objects (mostly bullets). Would be a lot faster. You could try to minimize ugliness with some tricks like having a few ~"prerendered" versions of the gfx depending on the background gfx over which it ends up being blitted.

Tigerskunk 14 August 2022 13:51

True, but I need big shit on screen... :D

roondar 14 August 2022 14:08

Quote:

Originally Posted by aros-sg (Post 1559537)
I wonder how ugly ~"fake bobs" (no mask, x position locked to multiple of 8 or 16, maybe cpu-blitted) would look for certain things (like bullets) in certain games. Similiar to how games on c64 or other systems use chars/tiles sometimes for moving objects (mostly bullets). Would be a lot faster. You could try to minimize ugliness with some tricks like having a few ~"prerendered" versions of the gfx depending on the background gfx over which it ends up being blitted.

It might work in some cases, though obviously if you use the Blitter the minimum width is going to be 16 pixels, which might not be optimal.
Quote:

Originally Posted by Tigerskunk (Post 1559539)
True, but I need big shit on screen...

Ahh, yes.. Well, errr.. Dual Playfield? :p

Tsak 14 August 2022 16:03

Quote:

Originally Posted by redblade (Post 1559484)
Nice, so the front pavement that the player is walking on and the back pavement are both sprites?

Yup, the back and front pavement are sprites. So is the big foreground collumn, the floor litter (newspaper and soda-can), the small collumn-heads within the gap (between the platforms) and the back trashcans, posters and collumns. I.e. (as I mentioned) everything except the player and the mid-collumn with the white paper.

One interesting detail in this level is in regards to tiles. We actually use them for the passing trains instead of having them as a static background. :)

Quote:

Originally Posted by redblade (Post 1559484)
So the reason for the distance of the background sprites is for the COPPER to have enough time to update the sprite pointers?

No, this is just how the level is designed. Basically the problem we have here are DMA slots. If it wasn't for that we'd be able to add more sprite detail.

Tigerskunk 15 August 2022 08:20

I imagine Alex throwing curses at Michael Parent all night through while having to code a different engine for each and every level in Metro Siege, though... :D

But damn, does it look mighty impressive for an OCS game.

Torti-the-Smurf 15 August 2022 15:29

Let put it in this way ...

Thats like saying " The 1Mhz CPU in the C64 is his weakest part" ... Yeah; so what ?

People did (and still do) amazing thing with it.

All things build by Human hand have Strong and Weakpoints; even us Humans.
(also; no Smurf is perfect)

Thats called "character" ;something where you really excel at and somethings where you not as good as maybe "others".

That make you, me and everything "unique" . Thats natural !
Thats actually what i really enjoy about those "things" ; they are pretty Unique.

A SNES and Mega-Drive are so different. (Sure, both let you play games)
But you really can tell what is truly an SNES game and what is an MD game (and what is an port ....)
Those "old" Consoles and computers had so much character.

It still amazes me what people did (and still do) with the Amiga and to think that is actually hardware from 1985/92 is just mindblowing.

We all have our "weaker" points, nobody is perfect, but we have always try to overcome those "short comings" and to make the best out of it. There is always a way; mostly.

Limitation boost creativity is also an old saying.

Nothing is perfect. Not you, not me, not the Amiga; nothing ; besides , maybe the Universe

Sorry; but i had the feeling like i had to defend an old friend :bowdown
(i love the Amiga so much, always did)

Feels better now ;)

gimbal 15 August 2022 15:54

"shortcummings"? Where's your mind at friend.

Tsak 15 August 2022 16:13

Quote:

Originally Posted by Tigerskunk (Post 1559650)
I imagine Alex throwing curses at Michael Parent all night through while having to code a different engine for each and every level in Metro Siege, though... :D

Lol, indeed :laughing
Then again, after Worthy he was all up for a real 'next-level' challenge, which is exactly why I reached out to Mike and pushed this coop. ;)

Anyhow, back to on-topic, if I had one criticism for Amiga sprites that would be AGA ones rather than OCS. I mean, I get it, OCS sprites were actually pretty fine for the time they were implemented. What's the excuse for AGA ones though? 64px wide is a nice improvement and the seperate palette is also a nice little touch. However at 1993 it was just too little, too late. With all the console sprite powerhouses already on the market for several years and a1200 carrying the same, old blitter, how did they expect the machine to compete? And of course it didn't. Just look at the a1200 Aladdin port vs the Genesis one f.e.

https://www.youtube.com/watch?v=9G4EMgQgUz0

The 2 versions are pretty comparable, however the Genesis still pushes more stuff and eye candy on screen and also has a bigger in-game viewport . And that's from a machine that came 5 years earlier...

Torti-the-Smurf 15 August 2022 18:08

Quote:

Originally Posted by gimbal (Post 1559717)
"shortcummings"? Where's your mind at friend.

:shocked............................:shocked

:laughing What a great typo. :laughing


Yeah, thats a "shortcoming" of mine...:laughing i type pretty sloppy :laughing OR did think of Sexy Time with Ms. Smurfette :spin

vulture 16 August 2022 12:54

@Tsak

Not necessarily a fair comparison. I remember reading an amiga mag back then when Aladdin was released and the engine is the one used for Cool Spot, just updated for AGA. Not a great base to build upon imo.


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

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

Page generated in 0.06247 seconds with 11 queries