Jump to content
  • entries
    945
  • comments
    4,956
  • views
    1,221,236

Back up!


Guest

1,833 views

So, I've been playing a lot of Juno First lately, since I'll be making sprites for it.If you haven't checked it out in MAME, you should. It's a really challenging and fun game. Although it looks like a standard vertical shooter, there's more to it than that. By controlling forward/reverse movement of your ship, it adds a completely different dimension to the game. For about the first three waves, it doesn't make much of a difference.But then... they break out the homing missiles.These little buggers track you like the Swarmers in Defender. To escape them, you often have to back up - fast - then swing around them, and lose them off the bottom of the screen.While still avoiding all of the rest of the bad guys, and their "normal" shots.Seriously - you have to back up a lot in this game.Sprite-wise, it looks like there will be seven enemy sprites to make, plus the player's ship. It looks like each enemy has four (or five) sizes. It doesn't look like there's much if any animation on the enemy sprites, other than the size changing.junofrst_1.gifWhether or not there are more sprites in the game... I haven't found that out yet.Attract screens like this one (which show all of the enemies) sure make my job a lot easier. Usually, I have to capture a movie of the game, then manually create animated GIFs of all of the sprites for reference. (One of these days, I'll have to find out how to extract sprite data directly from ROMs. I know there's a way to do it, but I have no idea how.)So that brings up the matter of... The list.Here's a list of things that sprite artists need to know, in order to be able to create sprites for an Atari 2600 game. (I'll eventually include this in a "How to" about making sprites.)In general:

  • Number of sprites (preferably with names and/or descriptions). This includes multiple instances of the same character. For example, a running and jumping version would be considered separate. Or a flying ship and an exploding one.
  • Are they conversions of existing sprites, or originals?
  • File format you want the graphics provided in (what I've been doing lately is creating a color animated GIF for previewing, then monochrome .bmp files for conversion)

Then, for each sprite:

  • 1LK or 2LK?
  • Multi-color or Monochrome?
  • Single, Double, or Quad Width?
  • Number of animation frames
  • Number of different sizes (if sprite needs to be scaled)
  • Number of rotation positions (if applicable)
  • Does the sprite need to be animated at the different sizes and/or positions?
  • Maximum Height
  • Maximum Width

Other things to consider:

  • Will the game need a title screen?
  • Will it need fonts?
  • If a sprite is running, can it leave the ground on some frames?
  • Can the colors of each scanline change on a per-frame basis? Or must they remain consistent?
  • Will playfield graphics be needed? If so, what are the requirements for those?
  • Do you want TIA colors indicated? NTSC and/or PAL?

So the sprite list for Ladybug would look something like this:

All sprites are 1LK, monochrome and single-width.Bug sprites must be animated in horizontal and vertical positions. (3 frames each.)| name       | w | h | frames |   rotation--------------------------------------------------------------------------------------Ladybug        8   14    3        yes - h,vLevel 1 bug    8   14    3        yes - h,vLevel 2 bug    8   14    3        yes - h,vLevel 3 bug    8   14    3        yes - h,vLevel 4 bug    8   14    3        yes - h,vLevel 5 bug    8   14    3        yes - h,vLevel 6 bug    8   14    3        yes - h,vLevel 7 bug    8   14    3        yes - h,vLevel 8 bug    8   14    3        yes - h,vSpare ladybug  8   11    1        noCucumber       8   11    1        noEgg Plant      8   11    1        noCarrot         8   11    1        noRadish         8   11    1        noParsley        8   11    1        noTomato         8   11    1        noPumpkin        8   11    1        noBamboo shoot   8   11    1        noJapaneseRadish 8   11    1        noMushroom       8   11    1        noPotato         8   11    1        noOnion          8   11    1        noChineseCabbage 8   11    1        noTurnip         8   11    1        noRed Pepper     8   11    1        noCelery         8   11    1        noSweet Potato   8   11    1        noHorseradish    8   11    1        noLadybug death  8   14    6        no

Also, for the Ladybug death, it needs to tie into both the horizontal and vertical versions of the Ladybug, since there isn't enough ROM space for two different deaths. So things like that are important to note.Related to that, for games with multiple animations for a single character, is to have each animation listed separately.For example:

Louisiana Larry2LK, multicolor, single-width.| action       | w | h | frames-------------------------------Running          8   16    6   Jumping          8   20    4Climbing         6   18    4Swinging sword   8   16    8

Now... the question here is, does 2LK mean that 16 pixels height is really 8 pixels that are 2 scanlines high each?Or, does this mean that it's 16 pixels high, and each pixel is 2 scanlines high (resulting in 32 scanlines on screen)?That's an important distinction.Also, something that came up regarding Stellar Fortress, is that for animated (or rotating) sprites, can the position of the sprite change for each frame in the animation? In the case of Stellar Fortress, this helps to make the ship rotate around the cockpit, which looks much better than rotating around the center of the sprite. This effect could also be used in other animation too, such as someone swinging a sword around, but needing to keep their feet "planted" in one spot.Generally, the more frames and pixels you can give the sprite artist, the better things are going to look. The same applies with colors, too.While working on Reindeer Rescue, Bob was able to change Santa so he could have black boots. This wasn't originally going to happen, but I showed him what it would look like, and he liked it enough to make it happen. As a happy side-effect, the height of the ground sprites also changed from six to nine pixels, allowing for much better looking sprites (especially the milk & cookies).santa6.gifsanta7.gif(Notice Santa also packed on an extra 50 pounds somewhere in there.) :)So, for Juno First, the first step is to identify the sprites. So I had to dig up images of the arcade sprites, and identify them somehow. (Actually, it's probably better for the programmer to do this, since he's the one who has to decide what is going to go into the game.)junolist.gifAssuming that's all of the enemy sprites, the list would go something like this:

| name           | w | h | sizes---------------------------------Player shipAlien 1Alien 2Big AlienSmall UFOLarge UFOSphereAstronautHoming missileTitle screen

And then Chris would fill in all of the necessary information. The "sizes" column indicates how many different sizes of each sprite are needed to give the illusion of them moving towards or away from you. If each size required different dimensions, then those would need to be listed as well. Plus I'd need to know if this was 1LK or 2LK, monochrome or multi-color, and so on.(Meanwhile, while you're waiting for the 2600 version of Juno First ;) , here are some links about the arcade version: )

In other sprite news:John has released another work-in-progress build of Ladybug. He's making remarkable progress on the game. There are a couple of bug sprites I may go back in and re-work, but I think other than the title screen, the game is pretty much done, graphics-wise.Also, Manuel has released a build of Colony 7, that shows everything blowing up. :D It also shows all of the game sprites flying around, and you get to shoot them down. Well, until your cannons get destroyed.Both games are coming along great, and already look like they're going to be a lot of fun. One interesting side-effect of creating sprites (at least for arcade ports) is that I end up playing the original games in MacMAME a lot. It's easy to see why the programmers chose these games (I'm still hoping for Bosconian someday, personally ;) ).Also, Chris posted a build of PoP that's really amazing. After some of my other projects are out of the way, I may take another look at the sprites for this one.Label fun:I started sketching out the Four-Play label this weekend. I'm still trying to figure out where to go with it, but at least I'm putting some ideas down. :)Finally:The Seahawks lost. They started out really well, but just couldn't take advantage of enough opportunities. Plus, there were a couple of really bad calls in there, but in the end, it wouldn't have made much of a difference. They had their fair share of chances, and blew it. It's too bad, because the Steelers really didn't play all that great either. The Seahawks only had to play a little bit better than they did to win. Or perhaps, play the way they did at the beginning, for a longer period of time.Oh well.Say... isn't it about time for spring training to begin?

17 Comments


Recommended Comments

Something I neglected to mention: the animations for the Ladybug sprites are actually four frames long each. But only three of the frames are unique. The same kind of thing can be done with Pac-Man. You only need to animate his mouth opening, then play the frames in reverese to shut it. So you might mention this to the person working on your sprites when there's an opportunity to re-use frames.

Link to comment

The Seahawks...that was a painful game to watch. I'd blame the officials (and they'd deserve it, too), but two missed field goals, all the dropped passes...the Seahawks could have won if they'd played better or got better officiating. But without either, they walked out losers. ;)

Link to comment
One of these days, I'll have to find out how to extract sprite data directly from ROMs. I know there's a way to do it, but I have no idea how.

There's no one-size fits all way to store sprite data. It depends on the game's GPU (and to a lesser extent, the CPU). Consider the on the 2600 the sprites are typically stored as upside-down byte wide monochrome bitmaps in sequential address locations. The color info is buried elsewhere in the code. But on the 7800 the sprites are stored right side up, may be 1-32 bytes wide, with 1-4 bits per pixel (and some very strange bit to pixel mapping), and each line is stored on a separate page! Heck, I remember 16 color EGA/VGA graphics which have each bit-plane stored separately.

 

... then monochrome .bmp files for conversion

For Leprechaun, I converted the BMP files to ascii PGM (portable grey map), which then gives me a text file to do mass search & replace on.

Link to comment
The Seahawks...that was a painful game to watch.  I'd blame the officials (and they'd deserve it, too), but two missed field goals, all the dropped passes...the Seahawks could have won if they'd played better or got better officiating.  But they without either, they walked out losers.  ;)

I was pretty disappointed by the whole game. The Steelers where just the less worse (or more lucky) team with an awful playing QB.

 

The halftime show of Stones was IMO by far the best part, even though they had to censor their songs.

Link to comment

The Stones were entertaining, and better, probably than any Superbowl halftime show I've ever seen, though I haven't seen (or don't remember) many.

 

But I've never been a fan of the Rolling Stones, and the show just confirmed why. Of the three songs, only Satisfaction is a good song - the others are/were propped up by their strutting, sexuality, and generally enthusiastic performing. ;)

 

And Satisfaction isn't even *that* good of a song.

Link to comment

Hi Nathan,

 

Thanks for the sprite guide, and thanks also for agreeing to produce the sprites for Juno First! I was going to send you this by PM, but I don't see any reason not to post it here instead. The in-game sprites should be drawn to 1LK, single width, and can be coloured with the usual 1 colour per line restriction. I have completed the table from your message below:

 

| name           | w | h | sizes | frames
-----------------------------------------
Player ship      8    24    1    2
Alien 1          8    8     4    2
Alien 2          8    8     4    2
Big Alien        8    8     4    2
Small UFO        8    8     4    2
Large UFO        8    8     4    2
Sphere           8    8     4    2
Astronaut        8    8     4    2
Homing missile   8    4     1    2
Title logo      48    ?     1    1

 

The table above doesn't quite tell the full story. The sizes that I have listed are the maximum sizes (though there is some flexibility in the heights). Basically each sprite (except the player ship) should be drawn in four different sizes. The heights of 2, 4, 6, and 8 pixels for each of these sizes seemed to work well in the mockup. The smallest size is when the ship is off the top of the grid - this seems to be just a solid blob in the game, so it is really just 3 different sizes that are required. The title logo is not important for now, but it would be cool if something like the one in the Arcade could be produced eventually - this might be better done using the PF though.

 

I think that the animation of the sprites is minimal, so either a basic 2-step animation, or just a single frame will be fine. If you think that animations are appropriate, then it would also be good if the colours could be kept the same on each frame if possible. The player ship is a bit odd as it has a flame effect that appears in front or behind the ship depending on the direction. The 24pixel height is intended to include this flame effect. The only other sprites that I can think of are an explosion effect and a warp effect (could be the same animation), which should be 8x8 pixels and as many frames as appropriate.

 

I think that covers everything, but let me know if I have fogotten something. I have pasted the example sprites form my mockup below which might be useful as a starting point. There is no rush for the sprites as I am rather busy at work at the moment.

 

Many thanks,

Chris

 

Alien0
       .byte #%00111000;--
       .byte #%00111000;--
Alien1
       .byte #%00101000;--
       .byte #%00010000;--
       .byte #%00111000;--
       .byte #%00010000;--
Alien2
       .byte #%00010000;--
       .byte #%01010100;--
       .byte #%00111000;--
       .byte #%01010100;--
       .byte #%00111000;--
       .byte #%00010000;--
Alien3
       .byte #%00010000;--
       .byte #%10010010;--
       .byte #%01010100;--
       .byte #%00111000;--
       .byte #%01010100;--
       .byte #%11010110;--
       .byte #%01111100;--
       .byte #%00010000;--
ShipFwd
       .byte #%00010000;--
       .byte #%00010000;--
       .byte #%00101000;--
       .byte #%00101000;--
       .byte #%01000100;--
       .byte #%01000100;--
       .byte #%00101000;--
       .byte #%01111100;--
       .byte #%11111110;--
       .byte #%11010110;--
       .byte #%11000110;--
       .byte #%01010100;--
       .byte #%01111100;--
       .byte #%01101100;--
       .byte #%00101000;--
       .byte #%00101000;--
       .byte #%00111000;--
       .byte #%00010000;--
       .byte #%00010000;--
       .byte #%00000000;--
       .byte #%00000000;--
       .byte #%00000000;--
       .byte #%00000000;--
       .byte #%00000000;--
ShipBwd
       .byte #%00000000;--
       .byte #%00000000;--
       .byte #%00000000;--
       .byte #%00000000;--
       .byte #%00000000;--
       .byte #%00000000;--
       .byte #%00101000;--
       .byte #%01111100;--
       .byte #%11111110;--
       .byte #%11010110;--
       .byte #%11000110;--
       .byte #%01010100;--
       .byte #%01111100;--
       .byte #%01101100;--
       .byte #%00101000;--
       .byte #%00101000;--
       .byte #%00111000;--
       .byte #%00010000;--
       .byte #%01010100;--
       .byte #%01000100;--
       .byte #%01000100;--
       .byte #%01101100;--
       .byte #%00101000;--
       .byte #%00101000;--

Link to comment
Of the three songs, only Satisfaction is a good song - the others are/were propped up by their strutting, sexuality, and generally enthusiastic performing.  ;)

 

So the other two were Brown Sugar and Honky Tonk Woman? ;)

Link to comment
So, did you try some rounds of Water Ski already? ;)

 

Nope, but after your message I did. It's a pretty good game. I think the guy driving the boat is trying to kill me, though. ;)

 

The Stones were entertaining, and better, probably than any Superbowl halftime show I've ever seen, though I haven't seen (or don't remember) many.

 

I'd much rather see a straightforward mini-concert like that, than most of the overblown garbage they usually have for the halftime show.

 

And I wouldn't mind being in as good of shape as Mick is in, when I'm his age, either. ;)

 

The title logo is not important for now, but it would be cool if something like the one in the Arcade could be produced eventually

 

I have an idea for how to do that, but I'm not sure if it'll work or not.

 

Could you flicker between this:

jfirst_1.gif

 

And this:

jfirst_2.gif

 

To get this?

jfirst_3.gif

 

(This is just a rough pass at a 48 pixel version.)

 

The player ship is a bit odd as it has a flame effect that appears in front or behind the ship depending on the direction.  The 24pixel height is intended to include this flame effect.  The only other sprites that I can think of are an explosion effect and a warp effect (could be the same animation), which should be 8x8 pixels and as many frames as appropriate.

 

Do you mean the warp at the beginning of the wave? Or the hyperspace effect? (I don't think the game really needs hyperspace... it's pretty useless since it always drops you back off in the same place.)

 

Do you want a different explosion for the aliens and the player?

 

Also, something I didn't realize before. The ship will auto-fire five shots in a row when you hold down the fire button. That's a nice feature.

 

Anyway, I'll start in on these once I get the Four-Play label done. Plus I want to re-work a couple of bug sprites.

Link to comment
The title logo is not important for now, but it would be cool if something like the one in the Arcade could be produced eventually

I have an idea for how to do that, but I'm not sure if it'll work or not.

Could you flicker between this:

jfirst_1.gif

And this:

jfirst_2.gif

To get this?

jfirst_3.gif

(This is just a rough pass at a 48 pixel version.)

 

Thanks - this looks like it would work nicely - I will code up a quick version later and let you know.

 

The player ship is a bit odd as it has a flame effect that appears in front or behind the ship depending on the direction.  The 24pixel height is intended to include this flame effect.  The only other sprites that I can think of are an explosion effect and a warp effect (could be the same animation), which should be 8x8 pixels and as many frames as appropriate.

Do you mean the warp at the beginning of the wave? Or the hyperspace effect? (I don't think the game really needs hyperspace... it's pretty useless since it always drops you back off in the same place.)

 

I was meaning the warp at the beginning of the wave (or during), when new aliens appear on the screen. The hyperspace is more useful than it initially appears - if you are being chased by a lot of homing missiles then the hyperspace will get rid of them.

 

Do you want a different explosion for the aliens and the player?

 

I liked the explosions that you did for Colony 7 (a kind of rez effect) - something similar for the aliens would be great. The player could probably use a different kind of explosion, but only if you have time.

 

Many thanks,

Chris

Link to comment
The hyperspace is more useful than it initially appears - if you are being chased by a lot of homing missiles then the hyperspace will get rid of them.

 

I hadn't noticed that before. That's very handy. I almost broke 100,000. ;)

 

I liked the explosions that you did for Colony 7 (a kind of rez effect) - something similar for the aliens would be great.  The player could probably use a different kind of explosion, but only if you have time.

 

No problem. I like destroying things. ;)

Link to comment
No problem. I like destroying things. ;)

 

Great ;) I just posted a quick version of the logo in my blog - it looks good with the flicker effect! It is just a pity that there isn't an easy way to do double width and multiple copies of the sprites at the same time ...

 

Chris

Link to comment
I just posted a quick version of the logo in my blog - it looks good with the flicker effect!  It is just a pity that there isn't an easy way to do double width and multiple copies of the sprites at the same time ...

 

That looks like it'll work fine. I'll go through and make a cleaner version once the game sprites are done. And yeah, double-width would be nice so you could have a bigger logo on there. ;)

Link to comment
The title logo is not important for now, but it would be cool if something like the one in the Arcade could be produced eventually

I have an idea for how to do that, but I'm not sure if it'll work or not.

Could you flicker between this:

jfirst_1.gif

And this:

jfirst_2.gif

To get this?

jfirst_3.gif

(This is just a rough pass at a 48 pixel version.)

Could the 48 pixel sprite on top of the PF achieve the effect without flickering?

Link to comment
I think the PF resolution would be too low to make it look decent.

 

The playfield can be used to color-enhance logos (later Activision games, e.g.) but I would think it would be hard to use it effectively as a drop shadow.

 

Flicker-blinds might improve the appearance of the logo as compared with full-frame flicker. I'd suggest giving that a try and seeing how it looks.

Link to comment

Referring back to the halftime show, if Keith Richards was actually playing that guitar then I'm Charlie Watts. He stopped at least two times to cough, and somehow I could still hear two guitar parts.

 

...the Stones were amazing from 1969 to 1973 or so, but... before and after that I could care less about their work.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...